aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: 7826664865dabb5885c297db58ace43cc69a9ae5 (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 35 34 33 34 33 34 37 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 54343478);.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 e4 72 00 00 87 01 00 00 11 00 00 00 01 00 0d 00 COMPILER();.?>...r..............
03e0 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..composer.phar....+...src/Compo
0400 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2e 70 ser/Autoload/AutoloadGenerator.p
0420 68 70 a3 52 00 00 36 6b 60 56 a3 52 00 00 33 33 9f 73 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 hp.R..6k`V.R..33.s........+...sr
0440 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 4d 61 70 47 65 6e 65 c/Composer/Autoload/ClassMapGene
0460 72 61 74 6f 72 2e 70 68 70 13 0f 00 00 36 6b 60 56 13 0f 00 00 4a 4d 41 e9 b6 01 00 00 00 00 00 rator.php....6k`V....JMA........
0480 00 16 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 61 63 68 65 2e 70 68 70 56 12 00 00 36 .....src/Composer/Cache.phpV...6
04a0 6b 60 56 56 12 00 00 7d 15 c8 29 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`VV...}..)........%...src/Compo
04c0 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 bc 02 00 00 ser/Command/AboutCommand.php....
04e0 36 6b 60 56 bc 02 00 00 5a 46 8f 87 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6k`V....ZF..........'...src/Comp
0500 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 df oser/Command/ArchiveCommand.php.
0520 12 00 00 36 6b 60 56 df 12 00 00 cf e3 df 01 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 ...6k`V................*...src/C
0540 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6c 65 61 72 43 61 63 68 65 43 6f 6d 6d 61 6e omposer/Command/ClearCacheComman
0560 64 2e 70 68 70 5a 05 00 00 36 6b 60 56 5a 05 00 00 89 ec 17 3e b6 01 00 00 00 00 00 00 20 00 00 d.phpZ...6k`VZ......>...........
0580 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 .src/Composer/Command/Command.ph
05a0 70 89 06 00 00 36 6b 60 56 89 06 00 00 b5 0c 76 4a b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 p....6k`V......vJ........&...src
05c0 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.
05e0 70 68 70 50 37 00 00 36 6b 60 56 50 37 00 00 35 3b 1b f9 b6 01 00 00 00 00 00 00 2d 00 00 00 73 phpP7..6k`VP7..5;..........-...s
0600 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 72 65 61 74 65 50 72 6f 6a 65 63 rc/Composer/Command/CreateProjec
0620 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 74 33 00 00 36 6b 60 56 74 33 00 00 f9 c6 bc 8e b6 01 00 00 tCommand.phpt3..6k`Vt3..........
0640 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 65 70 ....'...src/Composer/Command/Dep
0660 65 6e 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 76 0b 00 00 36 6b 60 56 76 0b 00 00 a7 20 27 6a b6 endsCommand.phpv...6k`Vv.....'j.
0680 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......(...src/Composer/Command/
06a0 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 18 39 00 00 36 6b 60 56 18 39 00 00 fc DiagnoseCommand.php.9..6k`V.9...
06c0 f1 9f 26 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d ..&........,...src/Composer/Comm
06e0 61 6e 64 2f 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 2e 70 68 70 db 08 00 00 36 and/DumpAutoloadCommand.php....6
0700 6b 60 56 db 08 00 00 03 53 37 d0 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V.....S7.........&...src/Compo
0720 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 13 07 00 ser/Command/GlobalCommand.php...
0740 00 36 6b 60 56 13 07 00 00 a9 a8 40 95 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d .6k`V......@.........$...src/Com
0760 70 6f 73 65 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 60 0d 00 poser/Command/HomeCommand.php`..
0780 00 36 6b 60 56 60 0d 00 00 73 67 9c 32 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d .6k`V`...sg.2........$...src/Com
07a0 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 0c 38 00 poser/Command/InitCommand.php.8.
07c0 00 36 6b 60 56 0c 38 00 00 8f e2 a8 ae b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d .6k`V.8..............'...src/Com
07e0 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 6e 64 2e 70 68 70 poser/Command/InstallCommand.php
0800 0c 14 00 00 36 6b 60 56 0c 14 00 00 60 43 ed 11 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f ....6k`V....`C..........(...src/
0820 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 Composer/Command/LicensesCommand
0840 2e 70 68 70 05 0e 00 00 36 6b 60 56 05 0e 00 00 c2 76 e8 a5 b6 01 00 00 00 00 00 00 26 00 00 00 .php....6k`V.....v..........&...
0860 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 6d 61 src/Composer/Command/RemoveComma
0880 6e 64 2e 70 68 70 6e 10 00 00 36 6b 60 56 6e 10 00 00 80 cb 73 15 b6 01 00 00 00 00 00 00 27 00 nd.phpn...6k`Vn.....s.........'.
08a0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 75 69 72 65 43 6f ..src/Composer/Command/RequireCo
08c0 6d 6d 61 6e 64 2e 70 68 70 75 1b 00 00 36 6b 60 56 75 1b 00 00 7c e0 65 39 b6 01 00 00 00 00 00 mmand.phpu...6k`Vu...|.e9.......
08e0 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 75 6e 53 63 72 .)...src/Composer/Command/RunScr
0900 69 70 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 90 0b 00 00 36 6b 60 56 90 0b 00 00 e2 e8 32 da b6 01 iptCommand.php....6k`V......2...
0920 00 00 00 00 00 00 2b 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 ......+...src/Composer/Command/S
0940 63 72 69 70 74 41 6c 69 61 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 b2 05 00 00 36 6b 60 56 b2 05 00 criptAliasCommand.php....6k`V...
0960 00 f1 c7 24 bd 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 ...$.........&...src/Composer/Co
0980 6d 6d 61 6e 64 2f 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 68 70 61 09 00 00 36 6b 60 56 61 mmand/SearchCommand.phpa...6k`Va
09a0 09 00 00 d0 55 7d 50 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 ....U}P........*...src/Composer/
09c0 43 6f 6d 6d 61 6e 64 2f 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 cb 19 00 Command/SelfUpdateCommand.php...
09e0 00 36 6b 60 56 cb 19 00 00 be 3c 09 e0 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d .6k`V.....<..........$...src/Com
0a00 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 ab 3f 00 poser/Command/ShowCommand.php.?.
0a20 00 36 6b 60 56 ab 3f 00 00 d9 58 6f 11 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d .6k`V.?...Xo.........&...src/Com
0a40 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 9c poser/Command/StatusCommand.php.
0a60 09 00 00 36 6b 60 56 9c 09 00 00 23 83 87 63 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 ...6k`V....#..c........(...src/C
0a80 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 75 67 67 65 73 74 73 43 6f 6d 6d 61 6e 64 2e omposer/Command/SuggestsCommand.
0aa0 70 68 70 ff 07 00 00 36 6b 60 56 ff 07 00 00 be 3f 67 d0 b6 01 00 00 00 00 00 00 26 00 00 00 73 php....6k`V.....?g.........&...s
0ac0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 55 70 64 61 74 65 43 6f 6d 6d 61 6e rc/Composer/Command/UpdateComman
0ae0 64 2e 70 68 70 1e 17 00 00 36 6b 60 56 1e 17 00 00 cf 74 bb 61 b6 01 00 00 00 00 00 00 28 00 00 d.php....6k`V.....t.a........(..
0b00 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 6f .src/Composer/Command/ValidateCo
0b20 6d 6d 61 6e 64 2e 70 68 70 ef 12 00 00 36 6b 60 56 ef 12 00 00 a0 8c d2 47 b6 01 00 00 00 00 00 mmand.php....6k`V.......G.......
0b40 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 70 6f 73 65 72 2e 70 68 70 29 09 .....src/Composer/Composer.php).
0b60 00 00 36 6b 60 56 29 09 00 00 85 ff 8b 7c b6 01 00 00 00 00 00 00 17 00 00 00 73 72 63 2f 43 6f ..6k`V)......|............src/Co
0b80 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 68 70 8a 19 00 00 36 6b 60 56 8a 19 00 00 58 99 aa mposer/Config.php....6k`V....X..
0ba0 77 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 43 6f 6e 66 69 67 w........-...src/Composer/Config
0bc0 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 70 ae 01 00 00 36 6b /ConfigSourceInterface.php....6k
0be0 60 56 ae 01 00 00 36 4a 5b aa b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 `V....6J[.........(...src/Compos
0c00 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 65 2e 70 68 70 ad 0c er/Config/JsonConfigSource.php..
0c20 00 00 36 6b 60 56 ad 0c 00 00 67 9e dc c8 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f ..6k`V....g...........$...src/Co
0c40 6d 70 6f 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 37 24 mposer/Console/Application.php7$
0c60 00 00 36 6b 60 56 37 24 00 00 41 da d9 c9 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f ..6k`V7$..A...........,...src/Co
0c80 6d 70 6f 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 mposer/Console/HtmlOutputFormatt
0ca0 65 72 2e 70 68 70 33 06 00 00 36 6b 60 56 33 06 00 00 da 81 45 75 b6 01 00 00 00 00 00 00 2d 00 er.php3...6k`V3.....Eu........-.
0cc0 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
0ce0 72 2f 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 51 0f 00 00 36 6b 60 56 51 0f 00 00 3f 98 ac 24 b6 r/Decisions.phpQ...6k`VQ...?..$.
0d00 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e .......1...src/Composer/Dependen
0d20 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 6a 18 00 00 cyResolver/DefaultPolicy.phpj...
0d40 36 6b 60 56 6a 18 00 00 5e 2c 1c 6d b6 01 00 00 00 00 00 00 3e 00 00 00 73 72 63 2f 43 6f 6d 70 6k`Vj...^,.m........>...src/Comp
0d60 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f oser/DependencyResolver/Operatio
0d80 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 36 6b 60 56 43 02 n/InstallOperation.phpC...6k`VC.
0da0 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 49 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ...\.*........I...src/Composer/D
0dc0 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 6b ependencyResolver/Operation/Mark
0de0 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 f7 02 00 00 36 AliasInstalledOperation.php....6
0e00 6b 60 56 f7 02 00 00 ef ce e0 f7 b6 01 00 00 00 00 00 00 4b 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V................K...src/Compo
0e20 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
0e40 2f 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 /MarkAliasUninstalledOperation.p
0e60 68 70 fd 02 00 00 36 6b 60 56 fd 02 00 00 19 33 23 86 b6 01 00 00 00 00 00 00 40 00 00 00 73 72 hp....6k`V.....3#.........@...sr
0e80 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
0ea0 65 72 61 74 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d3 00 eration/OperationInterface.php..
0ec0 00 00 36 6b 60 56 d3 00 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f ..6k`V......&.........=...src/Co
0ee0 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 mposer/DependencyResolver/Operat
0f00 69 6f 6e 2f 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 b9 01 00 00 36 6b 60 56 b9 ion/SolverOperation.php....6k`V.
0f20 01 00 00 26 a2 65 0a b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...&.e.........@...src/Composer/
0f40 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 55 6e 69 DependencyResolver/Operation/Uni
0f60 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 49 02 00 00 36 6b 60 56 49 02 00 00 46 nstallOperation.phpI...6k`VI...F
0f80 fb c2 c9 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 ...........=...src/Composer/Depe
0fa0 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 55 70 64 61 74 65 4f ndencyResolver/Operation/UpdateO
0fc0 70 65 72 61 74 69 6f 6e 2e 70 68 70 68 03 00 00 36 6b 60 56 68 03 00 00 f6 53 d5 5d b6 01 00 00 peration.phph...6k`Vh....S.]....
0fe0 00 00 00 00 33 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 ....3...src/Composer/DependencyR
1000 65 73 6f 6c 76 65 72 2f 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 94 01 00 00 36 esolver/PolicyInterface.php....6
1020 6b 60 56 94 01 00 00 b0 0f 8d ad b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V................(...src/Compo
1040 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 aa ser/DependencyResolver/Pool.php.
1060 21 00 00 36 6b 60 56 aa 21 00 00 45 6c fc 38 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 !..6k`V.!..El.8........+...src/C
1080 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 72 6f 62 6c omposer/DependencyResolver/Probl
10a0 65 6d 2e 70 68 70 ed 14 00 00 36 6b 60 56 ed 14 00 00 19 6e fb 85 b6 01 00 00 00 00 00 00 2b 00 em.php....6k`V.....n..........+.
10c0 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
10e0 72 2f 52 65 71 75 65 73 74 2e 70 68 70 80 04 00 00 36 6b 60 56 80 04 00 00 d0 77 83 19 b6 01 00 r/Request.php....6k`V.....w.....
1100 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 .....(...src/Composer/Dependency
1120 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 2e 70 68 70 e7 17 00 00 36 6b 60 56 e7 17 00 00 67 ec ac Resolver/Rule.php....6k`V....g..
1140 54 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 T........+...src/Composer/Depend
1160 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 06 0a 00 00 36 6b 60 56 encyResolver/RuleSet.php....6k`V
1180 06 0a 00 00 3a 5a 8f 45 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....:Z.E........4...src/Composer
11a0 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 47 65 6e 65 72 /DependencyResolver/RuleSetGener
11c0 61 74 6f 72 2e 70 68 70 5d 1b 00 00 36 6b 60 56 5d 1b 00 00 34 93 d1 39 b6 01 00 00 00 00 00 00 ator.php]...6k`V]...4..9........
11e0 33 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 3...src/Composer/DependencyResol
1200 76 65 72 2f 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 36 6b 60 56 14 ver/RuleSetIterator.php....6k`V.
1220 06 00 00 7d f5 c7 f9 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...}...........2...src/Composer/
1240 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 43 68 61 69 DependencyResolver/RuleWatchChai
1260 6e 2e 70 68 70 69 01 00 00 36 6b 60 56 69 01 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 32 00 00 n.phpi...6k`Vi...h..,........2..
1280 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .src/Composer/DependencyResolver
12a0 2f 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 dc 06 00 00 36 6b 60 56 dc 06 00 00 89 /RuleWatchGraph.php....6k`V.....
12c0 03 0f 38 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 44 65 70 65 ..8........1...src/Composer/Depe
12e0 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 2e 70 68 70 ndencyResolver/RuleWatchNode.php
1300 e7 03 00 00 36 6b 60 56 e7 03 00 00 97 de 12 c8 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f ....6k`V................*...src/
1320 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 53 6f 6c 76 Composer/DependencyResolver/Solv
1340 65 72 2e 70 68 70 16 37 00 00 36 6b 60 56 16 37 00 00 1e 40 ff c2 b6 01 00 00 00 00 00 00 36 00 er.php.7..6k`V.7...@..........6.
1360 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
1380 72 2f 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 01 00 00 36 6b 60 56 r/SolverBugException.php....6k`V
13a0 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....."qN........;...src/Composer
13c0 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 50 72 6f 62 6c 65 /DependencyResolver/SolverProble
13e0 6d 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 28 04 00 00 36 6b 60 56 28 04 00 00 53 8b 8e bc b6 msException.php(...6k`V(...S....
1400 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e ......./...src/Composer/Dependen
1420 63 79 52 65 73 6f 6c 76 65 72 2f 54 72 61 6e 73 61 63 74 69 6f 6e 2e 70 68 70 d4 13 00 00 36 6b cyResolver/Transaction.php....6k
1440 60 56 d4 13 00 00 a0 33 f4 1b b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 `V.....3..........-...src/Compos
1460 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 2e er/Downloader/ArchiveDownloader.
1480 70 68 70 87 0e 00 00 36 6b 60 56 87 0e 00 00 ac b8 a3 a0 b6 01 00 00 00 00 00 00 31 00 00 00 73 php....6k`V................1...s
14a0 72 63 2f 43 6f 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 rc/Composer/Downloader/ChangeRep
14c0 6f 72 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 cc 00 00 00 36 6b 60 56 cc 00 00 00 af e0 a8 bf ortInterface.php....6k`V........
14e0 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 6c 6f 61 ........+...src/Composer/Downloa
1500 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2e 70 68 70 8f 11 00 00 36 6b 60 56 8f der/DownloadManager.php....6k`V.
1520 11 00 00 46 0b ab fc 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 ...F.........../...src/Composer/
1540 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 65 2e 70 Downloader/DownloaderInterface.p
1560 68 70 ca 01 00 00 36 6b 60 56 ca 01 00 00 67 73 21 6c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 hp....6k`V....gs!l........*...sr
1580 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 46 69 6c 65 44 6f 77 6e 6c 6f c/Composer/Downloader/FileDownlo
15a0 61 64 65 72 2e 70 68 70 6e 15 00 00 36 6b 60 56 6e 15 00 00 0d 84 f2 ae b6 01 00 00 00 00 00 00 ader.phpn...6k`Vn...............
15c0 2f 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 46 69 6c 65 /...src/Composer/Downloader/File
15e0 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 0f 01 00 00 36 6b 60 56 0f 01 00 00 5d systemException.php....6k`V....]
1600 54 bd 88 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 T..........)...src/Composer/Down
1620 6c 6f 61 64 65 72 2f 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 c5 25 00 00 36 6b 60 56 loader/GitDownloader.php.%..6k`V
1640 c5 25 00 00 54 b5 de cd b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .%..T...........*...src/Composer
1660 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 47 7a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 c8 05 /Downloader/GzipDownloader.php..
1680 00 00 36 6b 60 56 c8 05 00 00 ad e4 df d0 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f ..6k`V................(...src/Co
16a0 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 48 67 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 mposer/Downloader/HgDownloader.p
16c0 68 70 64 08 00 00 36 6b 60 56 64 08 00 00 ab 2e bd 16 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 hpd...6k`Vd...............*...sr
16e0 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 61 74 68 44 6f 77 6e 6c 6f c/Composer/Downloader/PathDownlo
1700 61 64 65 72 2e 70 68 70 38 04 00 00 36 6b 60 56 38 04 00 00 73 7f 65 cc b6 01 00 00 00 00 00 00 ader.php8...6k`V8...s.e.........
1720 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 65 61 72 0...src/Composer/Downloader/Pear
1740 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 75 1b 00 00 36 6b 60 56 75 1b 00 00 PackageExtractor.phpu...6k`Vu...
1760 7a 84 15 87 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 44 6f 77 z...............src/Composer/Dow
1780 6e 6c 6f 61 64 65 72 2f 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 79 07 nloader/PerforceDownloader.phpy.
17a0 00 00 36 6b 60 56 79 07 00 00 28 8e 29 33 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f ..6k`Vy...(.)3........*...src/Co
17c0 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 mposer/Downloader/PharDownloader
17e0 2e 70 68 70 e5 00 00 00 36 6b 60 56 e5 00 00 00 de c9 1f e7 b6 01 00 00 00 00 00 00 29 00 00 00 .php....6k`V................)...
1800 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 52 61 72 44 6f 77 6e 6c src/Composer/Downloader/RarDownl
1820 6f 61 64 65 72 2e 70 68 70 df 07 00 00 36 6b 60 56 df 07 00 00 15 be bc 7f b6 01 00 00 00 00 00 oader.php....6k`V...............
1840 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 53 76 6e .)...src/Composer/Downloader/Svn
1860 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 5c 0f 00 00 36 6b 60 56 5c 0f 00 00 2e 0b 13 5b b6 01 Downloader.php\...6k`V\......[..
1880 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 ......)...src/Composer/Downloade
18a0 72 2f 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e3 00 00 00 36 6b 60 56 e3 00 00 00 cd r/TarDownloader.php....6k`V.....
18c0 92 58 3f 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 44 6f 77 6e .X?............src/Composer/Down
18e0 6c 6f 61 64 65 72 2f 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 96 01 00 loader/TransportException.php...
1900 00 36 6b 60 56 96 01 00 00 68 22 42 72 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d .6k`V....h"Br........)...src/Com
1920 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 poser/Downloader/VcsDownloader.p
1940 68 70 e3 11 00 00 36 6b 60 56 e3 11 00 00 60 35 64 bc b6 01 00 00 00 00 00 00 28 00 00 00 73 72 hp....6k`V....`5d.........(...sr
1960 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 58 7a 44 6f 77 6e 6c 6f 61 64 c/Composer/Downloader/XzDownload
1980 65 72 2e 70 68 70 5f 04 00 00 36 6b 60 56 5f 04 00 00 9e 2f 60 0c b6 01 00 00 00 00 00 00 29 00 er.php_...6k`V_..../`.........).
19a0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 5a 69 70 44 6f 77 ..src/Composer/Downloader/ZipDow
19c0 6e 6c 6f 61 64 65 72 2e 70 68 70 5d 0b 00 00 36 6b 60 56 5d 0b 00 00 a5 f4 b9 40 b6 01 00 00 00 nloader.php]...6k`V]......@.....
19e0 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 ...&...src/Composer/EventDispatc
1a00 68 65 72 2f 45 76 65 6e 74 2e 70 68 70 a0 02 00 00 36 6b 60 56 a0 02 00 00 b1 99 6a ef b6 01 00 her/Event.php....6k`V......j....
1a20 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 .....0...src/Composer/EventDispa
1a40 74 63 68 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 70 f1 20 00 00 36 6b 60 tcher/EventDispatcher.php....6k`
1a60 56 f1 20 00 00 67 cd e0 d5 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V....g...........9...src/Compose
1a80 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 r/EventDispatcher/EventSubscribe
1aa0 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a9 00 00 00 36 6b 60 56 a9 00 00 00 68 b7 01 30 b6 01 rInterface.php....6k`V....h..0..
1ac0 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 79 2e 70 ..........src/Composer/Factory.p
1ae0 68 70 db 30 00 00 36 6b 60 56 db 30 00 00 b9 77 c9 23 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 hp.0..6k`V.0...w.#............sr
1b00 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 61 73 65 49 4f 2e 70 68 70 01 06 00 00 36 6b 60 56 c/Composer/IO/BaseIO.php....6k`V
1b20 01 06 00 00 11 41 2b f8 b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .....A+.............src/Composer
1b40 2f 49 4f 2f 42 75 66 66 65 72 49 4f 2e 70 68 70 10 04 00 00 36 6b 60 56 10 04 00 00 68 76 15 e1 /IO/BufferIO.php....6k`V....hv..
1b60 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 49 4f 2f 43 6f 6e 73 ............src/Composer/IO/Cons
1b80 6f 6c 65 49 4f 2e 70 68 70 38 11 00 00 36 6b 60 56 38 11 00 00 16 ad c3 f4 b6 01 00 00 00 00 00 oleIO.php8...6k`V8..............
1ba0 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 .....src/Composer/IO/IOInterface
1bc0 2e 70 68 70 84 04 00 00 36 6b 60 56 84 04 00 00 b4 3d 53 e5 b6 01 00 00 00 00 00 00 1a 00 00 00 .php....6k`V.....=S.............
1be0 73 72 63 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 36 6b src/Composer/IO/NullIO.php....6k
1c00 60 56 b3 03 00 00 7e 31 13 c4 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 `V....~1..............src/Compos
1c20 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 4b 84 00 00 36 6b 60 56 4b 84 00 00 8f 8f 97 25 er/Installer.phpK...6k`VK......%
1c40 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 49 6e 73 74 61 6c 6c ............src/Composer/Install
1c60 65 72 2f 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2e 70 68 70 06 16 00 00 36 6b er/InstallationManager.php....6k
1c80 60 56 06 16 00 00 d3 fd c7 db b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 `V................)...src/Compos
1ca0 65 72 2f 49 6e 73 74 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 er/Installer/InstallerEvent.php.
1cc0 06 00 00 36 6b 60 56 0e 06 00 00 6c d4 7a 69 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 ...6k`V....l.zi........*...src/C
1ce0 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 76 65 6e 74 omposer/Installer/InstallerEvent
1d00 73 2e 70 68 70 de 00 00 00 36 6b 60 56 de 00 00 00 ec 9f 40 47 b6 01 00 00 00 00 00 00 2d 00 00 s.php....6k`V......@G........-..
1d20 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 .src/Composer/Installer/Installe
1d40 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 e3 02 00 00 36 6b 60 56 e3 02 00 00 5e 83 93 ca b6 01 rInterface.php....6k`V....^.....
1d60 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 ......+...src/Composer/Installer
1d80 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 57 21 00 00 36 6b 60 56 57 21 00 /LibraryInstaller.phpW!..6k`VW!.
1da0 00 80 16 b7 a2 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 49 6e ............./...src/Composer/In
1dc0 73 74 61 6c 6c 65 72 2f 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 staller/MetapackageInstaller.php
1de0 9c 04 00 00 36 6b 60 56 9c 04 00 00 c6 12 c5 21 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f ....6k`V.......!........(...src/
1e00 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 Composer/Installer/NoopInstaller
1e20 2e 70 68 70 2b 05 00 00 36 6b 60 56 2b 05 00 00 c0 b7 4d 7d b6 01 00 00 00 00 00 00 27 00 00 00 .php+...6k`V+.....M}........'...
1e40 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 61 63 6b 61 67 65 45 76 src/Composer/Installer/PackageEv
1e60 65 6e 74 2e 70 68 70 65 03 00 00 36 6b 60 56 65 03 00 00 3b b0 20 1a b6 01 00 00 00 00 00 00 28 ent.phpe...6k`Ve...;...........(
1e80 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 61 63 6b 61 67 ...src/Composer/Installer/Packag
1ea0 65 45 76 65 6e 74 73 2e 70 68 70 b8 01 00 00 36 6b 60 56 b8 01 00 00 64 62 d8 73 b6 01 00 00 00 eEvents.php....6k`V....db.s.....
1ec0 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 65 ...(...src/Composer/Installer/Pe
1ee0 61 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 56 11 00 00 36 6b 60 56 56 11 00 00 9d 7a f0 01 b6 arInstaller.phpV...6k`VV....z...
1f00 01 00 00 00 00 00 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 .......*...src/Composer/Installe
1f20 72 2f 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 0a 06 00 00 36 6b 60 56 0a 06 00 r/PluginInstaller.php....6k`V...
1f40 00 36 c0 a2 00 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 .6...........+...src/Composer/In
1f60 73 74 61 6c 6c 65 72 2f 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 1d 06 00 00 staller/ProjectInstaller.php....
1f80 36 6b 60 56 1d 06 00 00 2a 30 40 50 b6 01 00 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f 6d 70 6k`V....*0@P............src/Comp
1fa0 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 69 6c 65 2e 70 68 70 00 13 00 00 36 6b 60 56 00 13 oser/Json/JsonFile.php....6k`V..
1fc0 00 00 92 dc fe 1e b6 01 00 00 00 00 00 00 23 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a ..............#...src/Composer/J
1fe0 73 6f 6e 2f 4a 73 6f 6e 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 06 06 00 00 36 6b 60 56 06 06 00 son/JsonFormatter.php....6k`V...
2000 00 1e d0 71 75 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 4a 73 ...qu........%...src/Composer/Js
2020 6f 6e 2f 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 2e 70 68 70 19 2a 00 00 36 6b 60 56 19 2a on/JsonManipulator.php.*..6k`V.*
2040 00 00 72 03 25 0c 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 4a ..r.%.........-...src/Composer/J
2060 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 5c son/JsonValidationException.php\
2080 01 00 00 36 6b 60 56 5c 01 00 00 2e 58 f3 dc b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 ...6k`V\....X..........%...src/C
20a0 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 68 70 omposer/Package/AliasPackage.php
20c0 f6 16 00 00 36 6b 60 56 f6 16 00 00 fe 94 c8 fc b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f ....6k`V................7...src/
20e0 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 41 72 63 68 69 76 Composer/Package/Archiver/Archiv
2100 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 2e 70 68 70 be 04 00 00 36 6b 60 56 be 04 00 00 84 ableFilesFinder.php....6k`V.....
2120 8c f5 c9 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 50 61 63 6b ...........0...src/Composer/Pack
2140 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2e 70 68 70 7a age/Archiver/ArchiveManager.phpz
2160 0c 00 00 36 6b 60 56 7a 0c 00 00 21 73 4b 99 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 ...6k`Vz...!sK.........3...src/C
2180 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 41 72 63 68 69 76 65 omposer/Package/Archiver/Archive
21a0 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 36 6b 60 56 ef 00 00 00 07 3c ca b8 b6 01 rInterface.php....6k`V.....<....
21c0 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 ......3...src/Composer/Package/A
21e0 72 63 68 69 76 65 72 2f 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 91 06 00 rchiver/BaseExcludeFilter.php...
2200 00 36 6b 60 56 91 06 00 00 5b ff 30 3d b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d .6k`V....[.0=........7...src/Com
2220 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 43 6f 6d 70 6f 73 65 72 45 poser/Package/Archiver/ComposerE
2240 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 1f 01 00 00 36 6b 60 56 1f 01 00 00 8b 53 5a 30 xcludeFilter.php....6k`V.....SZ0
2260 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 50 61 63 6b 61 67 65 ........2...src/Composer/Package
2280 2f 41 72 63 68 69 76 65 72 2f 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 77 03 /Archiver/GitExcludeFilter.phpw.
22a0 00 00 36 6b 60 56 77 03 00 00 4c 67 55 bb b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f ..6k`Vw...LgU.........1...src/Co
22c0 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 48 67 45 78 63 6c 75 64 mposer/Package/Archiver/HgExclud
22e0 65 46 69 6c 74 65 72 2e 70 68 70 13 05 00 00 36 6b 60 56 13 05 00 00 7e 94 0e b8 b6 01 00 00 00 eFilter.php....6k`V....~........
2300 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 63 68 .......src/Composer/Package/Arch
2320 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 36 6b 60 56 5b 03 00 iver/PharArchiver.php[...6k`V[..
2340 00 ca 35 cd f8 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 ..5..........$...src/Composer/Pa
2360 63 6b 61 67 65 2f 42 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 3d 0d 00 00 36 6b 60 56 3d 0d 00 ckage/BasePackage.php=...6k`V=..
2380 00 ce 9d e7 16 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 50 61 .............(...src/Composer/Pa
23a0 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 2e 70 68 70 ff 06 00 00 36 6b 60 ckage/CompletePackage.php....6k`
23c0 56 ff 06 00 00 6f 2b e3 09 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V....o+..........1...src/Compose
23e0 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 r/Package/CompletePackageInterfa
2400 63 65 2e 70 68 70 f5 01 00 00 36 6b 60 56 f5 01 00 00 a6 ca 81 f2 b6 01 00 00 00 00 00 00 2b 00 ce.php....6k`V................+.
2420 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 44 75 6d 70 65 72 2f 41 72 ..src/Composer/Package/Dumper/Ar
2440 72 61 79 44 75 6d 70 65 72 2e 70 68 70 ec 0b 00 00 36 6b 60 56 ec 0b 00 00 aa 96 7f e6 b6 01 00 rayDumper.php....6k`V...........
2460 00 00 00 00 00 1d 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 .........src/Composer/Package/Li
2480 6e 6b 2e 70 68 70 44 05 00 00 36 6b 60 56 44 05 00 00 4c d0 9e 0b b6 01 00 00 00 00 00 00 37 00 nk.phpD...6k`VD...L...........7.
24a0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 ..src/Composer/Package/LinkConst
24c0 72 61 69 6e 74 2f 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 82 01 00 00 36 6b 60 raint/EmptyConstraint.php....6k`
24e0 56 82 01 00 00 0e e9 7e 8b b6 01 00 00 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V......~.........?...src/Compose
2500 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 4c 69 6e 6b 43 6f 6e r/Package/LinkConstraint/LinkCon
2520 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 64 01 00 00 36 6b 60 56 64 01 00 00 straintInterface.phpd...6k`Vd...
2540 a4 f4 4c 6e 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 ..Ln........7...src/Composer/Pac
2560 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4d 75 6c 74 69 43 6f 6e 73 74 72 61 kage/LinkConstraint/MultiConstra
2580 69 6e 74 2e 70 68 70 82 01 00 00 36 6b 60 56 82 01 00 00 f3 62 60 fd b6 01 00 00 00 00 00 00 3a int.php....6k`V.....b`.........:
25a0 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 ...src/Composer/Package/LinkCons
25c0 74 72 61 69 6e 74 2f 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 69 01 00 traint/SpecificConstraint.phpi..
25e0 00 36 6b 60 56 69 01 00 00 de 94 9a 25 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d .6k`Vi......%........9...src/Com
2600 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 56 65 72 poser/Package/LinkConstraint/Ver
2620 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 58 01 00 00 36 6b 60 56 58 01 00 00 02 7d sionConstraint.phpX...6k`VX....}
2640 60 79 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 `y........+...src/Composer/Packa
2660 67 65 2f 4c 6f 61 64 65 72 2f 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 e7 1c 00 00 36 6b 60 ge/Loader/ArrayLoader.php....6k`
2680 56 e7 1c 00 00 4d f9 d8 72 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V....M..r........7...src/Compose
26a0 72 2f 50 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 r/Package/Loader/InvalidPackageE
26c0 78 63 65 70 74 69 6f 6e 2e 70 68 70 45 02 00 00 36 6b 60 56 45 02 00 00 78 62 13 be b6 01 00 00 xception.phpE...6k`VE...xb......
26e0 00 00 00 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 ....*...src/Composer/Package/Loa
2700 64 65 72 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 00 00 36 6b 60 56 f9 01 00 00 21 7e der/JsonLoader.php....6k`V....!~
2720 88 7b 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 50 61 63 6b 61 .{......../...src/Composer/Packa
2740 67 65 2f 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 ge/Loader/LoaderInterface.php...
2760 00 36 6b 60 56 b2 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d .6k`V.....}..........1...src/Com
2780 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 6b 61 67 65 poser/Package/Loader/RootPackage
27a0 4c 6f 61 64 65 72 2e 70 68 70 11 14 00 00 36 6b 60 56 11 14 00 00 c4 23 1c 78 b6 01 00 00 00 00 Loader.php....6k`V.....#.x......
27c0 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 ..5...src/Composer/Package/Loade
27e0 72 2f 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 e7 2f 00 00 36 r/ValidatingArrayLoader.php./..6
2800 6b 60 56 e7 2f 00 00 e4 d1 e9 64 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V./.....d............src/Compo
2820 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 63 6b 65 72 2e 70 68 70 8f 21 00 00 36 6b 60 56 8f 21 ser/Package/Locker.php.!..6k`V.!
2840 00 00 3d 2d 77 92 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 50 ..=-w.............src/Composer/P
2860 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 2e 70 68 70 bb 1a 00 00 36 6b 60 56 bb 1a 00 00 bc 4a ackage/Package.php....6k`V.....J
2880 07 e2 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 50 61 63 6b 61 ..........)...src/Composer/Packa
28a0 67 65 2f 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a0 07 00 00 36 6b 60 56 a0 ge/PackageInterface.php....6k`V.
28c0 07 00 00 fb c7 5e c6 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/
28e0 50 61 63 6b 61 67 65 2f 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 d7 08 00 00 Package/RootAliasPackage.php....
2900 36 6b 60 56 d7 08 00 00 7f a0 1c ce b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6k`V................$...src/Comp
2920 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 2e 70 68 70 6e 04 00 00 oser/Package/RootPackage.phpn...
2940 36 6b 60 56 6e 04 00 00 e1 41 43 4f b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6k`Vn....ACO........-...src/Comp
2960 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 74 65 72 66 61 63 oser/Package/RootPackageInterfac
2980 65 2e 70 68 70 96 03 00 00 36 6b 60 56 96 03 00 00 ff 66 c6 67 b6 01 00 00 00 00 00 00 2f 00 00 e.php....6k`V.....f.g......../..
29a0 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 69 6f 6e 2f 56 65 .src/Composer/Package/Version/Ve
29c0 72 73 69 6f 6e 47 75 65 73 73 65 72 2e 70 68 70 fb 13 00 00 36 6b 60 56 fb 13 00 00 39 bc 0f d2 rsionGuesser.php....6k`V....9...
29e0 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ............src/Composer/Package
2a00 2f 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 f2 02 00 00 36 6b /Version/VersionParser.php....6k
2a20 60 56 f2 02 00 00 06 26 43 66 b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 `V.....&Cf........0...src/Compos
2a40 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 65 6c 65 63 74 er/Package/Version/VersionSelect
2a60 6f 72 2e 70 68 70 28 0c 00 00 36 6b 60 56 28 0c 00 00 1e b5 df bb b6 01 00 00 00 00 00 00 24 00 or.php(...6k`V(...............$.
2a80 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 43 6f 6d 6d 61 6e 64 45 76 65 ..src/Composer/Plugin/CommandEve
2aa0 6e 74 2e 70 68 70 e2 02 00 00 36 6b 60 56 e2 02 00 00 b3 c6 c7 57 b6 01 00 00 00 00 00 00 24 00 nt.php....6k`V.......W........$.
2ac0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 67 69 6e 45 76 65 6e ..src/Composer/Plugin/PluginEven
2ae0 74 73 2e 70 68 70 a4 00 00 00 36 6b 60 56 a4 00 00 00 30 ef de 58 b6 01 00 00 00 00 00 00 27 00 ts.php....6k`V....0..X........'.
2b00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 67 69 6e 49 6e 74 65 ..src/Composer/Plugin/PluginInte
2b20 72 66 61 63 65 2e 70 68 70 f4 00 00 00 36 6b 60 56 f4 00 00 00 0c 31 89 25 b6 01 00 00 00 00 00 rface.php....6k`V.....1.%.......
2b40 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 50 6c 75 67 69 6e 4d .%...src/Composer/Plugin/PluginM
2b60 61 6e 61 67 65 72 2e 70 68 70 69 19 00 00 36 6b 60 56 69 19 00 00 23 fc 7c 97 b6 01 00 00 00 00 anager.phpi...6k`Vi...#.|.......
2b80 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 72 65 46 69 6c ..,...src/Composer/Plugin/PreFil
2ba0 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2e 70 68 70 60 02 00 00 36 6b 60 56 60 02 00 00 00 39 eDownloadEvent.php`...6k`V`....9
2bc0 2d ce b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 -.........+...src/Composer/Repos
2be0 69 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 7c 0d 00 00 36 6b 60 itory/ArrayRepository.php|...6k`
2c00 56 7c 0d 00 00 f5 7b 5e 66 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V|....{^f............src/Compose
2c20 72 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 r/Repository/ArtifactRepository.
2c40 70 68 70 e9 0b 00 00 36 6b 60 56 e9 0b 00 00 aa ef f9 dd b6 01 00 00 00 00 00 00 2e 00 00 00 73 php....6k`V....................s
2c60 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
2c80 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 88 41 00 00 36 6b 60 56 88 41 00 00 22 44 cf 2f b6 01 00 epository.php.A..6k`V.A.."D./...
2ca0 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
2cc0 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 2e 08 00 00 36 6b 60 56 /CompositeRepository.php....6k`V
2ce0 2e 08 00 00 43 13 c5 78 b6 01 00 00 00 00 00 00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....C..x........;...src/Composer
2d00 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6e 66 69 67 75 72 61 62 6c 65 52 65 70 6f 73 69 74 6f /Repository/ConfigurableReposito
2d20 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 85 00 00 00 36 6b 60 56 85 00 00 00 b1 9f 5f 1c b6 ryInterface.php....6k`V......_..
2d40 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 69 74 6f .......0...src/Composer/Reposito
2d60 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 00 00 36 ry/FilesystemRepository.php....6
2d80 6b 60 56 c0 04 00 00 26 78 62 a3 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V....&xb.........4...src/Compo
2da0 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 65 70 ser/Repository/InstalledArrayRep
2dc0 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 36 6b 60 56 a3 00 00 00 2f f6 7e 3e b6 01 00 00 00 ository.php....6k`V..../.~>.....
2de0 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 72 79 2f 49 ...9...src/Composer/Repository/I
2e00 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 2e 70 68 70 nstalledFilesystemRepository.php
2e20 a3 00 00 00 36 6b 60 56 a3 00 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f ....6k`V....V.._........8...src/
2e40 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 52 65 70 Composer/Repository/InstalledRep
2e60 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 00 36 6b 60 56 87 00 00 00 ositoryInterface.php....6k`V....
2e80 18 a3 39 70 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 ..9p........6...src/Composer/Rep
2ea0 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 63 65 70 74 69 ository/InvalidRepositoryExcepti
2ec0 6f 6e 2e 70 68 70 6e 00 00 00 36 6b 60 56 6e 00 00 00 e0 93 eb 98 b6 01 00 00 00 00 00 00 2d 00 on.phpn...6k`Vn...............-.
2ee0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 61 63 6b 61 67 ..src/Composer/Repository/Packag
2f00 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 47 03 00 00 36 6b 60 56 47 03 00 00 ed 04 3a 6b b6 eRepository.phpG...6k`VG.....:k.
2f20 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 74 6f .......*...src/Composer/Reposito
2f40 72 79 2f 50 61 74 68 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 92 08 00 00 36 6b 60 56 92 08 00 ry/PathRepository.php....6k`V...
2f60 00 0d 96 44 bf b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 ...D.........2...src/Composer/Re
2f80 70 6f 73 69 74 6f 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 pository/Pear/BaseChannelReader.
2fa0 70 68 70 36 05 00 00 36 6b 60 56 36 05 00 00 2e 66 69 21 b6 01 00 00 00 00 00 00 2c 00 00 00 73 php6...6k`V6....fi!........,...s
2fc0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e rc/Composer/Repository/Pear/Chan
2fe0 6e 65 6c 49 6e 66 6f 2e 70 68 70 c4 01 00 00 36 6b 60 56 c4 01 00 00 3a 54 2a c9 b6 01 00 00 00 nelInfo.php....6k`V....:T*......
3000 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 .......src/Composer/Repository/P
3020 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6e 06 00 00 36 6b 60 56 6e 06 00 ear/ChannelReader.phpn...6k`Vn..
3040 00 1c 9a 38 15 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 ...8.........4...src/Composer/Re
3060 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 pository/Pear/ChannelRest10Reade
3080 72 2e 70 68 70 c1 09 00 00 36 6b 60 56 c1 09 00 00 04 4f 80 eb b6 01 00 00 00 00 00 00 34 00 00 r.php....6k`V.....O..........4..
30a0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 .src/Composer/Repository/Pear/Ch
30c0 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 70 26 09 00 00 36 6b 60 56 26 09 00 annelRest11Reader.php&...6k`V&..
30e0 00 f2 55 62 08 b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 ..Ub.........5...src/Composer/Re
3100 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 pository/Pear/DependencyConstrai
3120 6e 74 2e 70 68 70 71 02 00 00 36 6b 60 56 71 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 00 2f 00 nt.phpq...6k`Vq...9..=......../.
3140 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
3160 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 2e 70 68 70 71 01 00 00 36 6b 60 56 71 01 00 00 66 ba 54 ependencyInfo.phpq...6k`Vq...f.T
3180 f2 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 .........8...src/Composer/Reposi
31a0 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 tory/Pear/PackageDependencyParse
31c0 72 2e 70 68 70 25 16 00 00 36 6b 60 56 25 16 00 00 06 6a 3f 93 b6 01 00 00 00 00 00 00 2c 00 00 r.php%...6k`V%....j?.........,..
31e0 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 50 61 .src/Composer/Repository/Pear/Pa
3200 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 b0 03 00 00 36 6b 60 56 b0 03 00 00 9f 0d b8 0c b6 01 00 ckageInfo.php....6k`V...........
3220 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 .....,...src/Composer/Repository
3240 2f 50 65 61 72 2f 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 70 92 01 00 00 36 6b 60 56 92 01 00 /Pear/ReleaseInfo.php....6k`V...
3260 00 6f 93 8a c3 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 .o...........*...src/Composer/Re
3280 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 2d 16 00 00 36 pository/PearRepository.php-...6
32a0 6b 60 56 2d 16 00 00 0f 15 3e c5 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V-.....>.............src/Compo
32c0 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 ser/Repository/PlatformRepositor
32e0 79 2e 70 68 70 7b 12 00 00 36 6b 60 56 7b 12 00 00 00 99 da d8 b6 01 00 00 00 00 00 00 2f 00 00 y.php{...6k`V{.............../..
3300 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 .src/Composer/Repository/Reposit
3320 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 da 01 00 00 36 6b 60 56 da 01 00 00 37 40 1f 80 oryInterface.php....6k`V....7@..
3340 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 ........-...src/Composer/Reposit
3360 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 e6 07 00 00 36 6b 60 ory/RepositoryManager.php....6k`
3380 56 e6 07 00 00 af 59 d9 49 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V.....Y.I........7...src/Compose
33a0 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 r/Repository/RepositorySecurityE
33c0 78 63 65 70 74 69 6f 6e 2e 70 68 70 6f 00 00 00 36 6b 60 56 6f 00 00 00 70 d5 ab aa b6 01 00 00 xception.phpo...6k`Vo...p.......
33e0 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f ....2...src/Composer/Repository/
3400 56 63 73 2f 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 ec 0c 00 00 36 6b Vcs/GitBitbucketDriver.php....6k
3420 60 56 ec 0c 00 00 18 46 ff f4 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 `V.....F..........)...src/Compos
3440 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 44 72 69 76 65 72 2e 70 68 70 01 er/Repository/Vcs/GitDriver.php.
3460 16 00 00 36 6b 60 56 01 16 00 00 5c 7f ee ef b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 ...6k`V....\...........,...src/C
3480 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 48 75 62 44 72 69 omposer/Repository/Vcs/GitHubDri
34a0 76 65 72 2e 70 68 70 e1 27 00 00 36 6b 60 56 e1 27 00 00 0f 93 fc 40 b6 01 00 00 00 00 00 00 2c ver.php.'..6k`V.'.....@........,
34c0 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 47 ...src/Composer/Repository/Vcs/G
34e0 69 74 4c 61 62 44 72 69 76 65 72 2e 70 68 70 f1 18 00 00 36 6b 60 56 f1 18 00 00 ff 80 48 06 b6 itLabDriver.php....6k`V......H..
3500 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 6f .......1...src/Composer/Reposito
3520 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 00 ry/Vcs/HgBitbucketDriver.php....
3540 36 6b 60 56 f4 0d 00 00 98 e1 57 f5 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6k`V......W.........(...src/Comp
3560 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 oser/Repository/Vcs/HgDriver.php
3580 e0 12 00 00 36 6b 60 56 e0 12 00 00 f1 91 e7 b6 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f ....6k`V....................src/
35a0 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 50 65 72 66 6f 72 63 65 Composer/Repository/Vcs/Perforce
35c0 44 72 69 76 65 72 2e 70 68 70 22 0a 00 00 36 6b 60 56 22 0a 00 00 b0 60 ec 45 b6 01 00 00 00 00 Driver.php"...6k`V"....`.E......
35e0 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 63 ..)...src/Composer/Repository/Vc
3600 73 2f 53 76 6e 44 72 69 76 65 72 2e 70 68 70 b2 19 00 00 36 6b 60 56 b2 19 00 00 cb c2 a0 57 b6 s/SvnDriver.php....6k`V.......W.
3620 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......)...src/Composer/Reposito
3640 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 2e 70 68 70 d1 05 00 00 36 6b 60 56 d1 05 00 00 ry/Vcs/VcsDriver.php....6k`V....
3660 e5 25 06 52 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 .%.R........2...src/Composer/Rep
3680 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 61 63 65 2e 70 ository/Vcs/VcsDriverInterface.p
36a0 68 70 88 02 00 00 36 6b 60 56 88 02 00 00 8e 50 a9 ce b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp....6k`V.....P..........)...sr
36c0 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 52 65 70 6f 73 69 74 c/Composer/Repository/VcsReposit
36e0 6f 72 79 2e 70 68 70 9a 1d 00 00 36 6b 60 56 9a 1d 00 00 63 b3 a8 67 b6 01 00 00 00 00 00 00 33 ory.php....6k`V....c..g........3
3700 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 ...src/Composer/Repository/Writa
3720 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 0f 03 00 00 36 6b 60 56 0f 03 bleArrayRepository.php....6k`V..
3740 00 00 be 47 17 2a 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 52 ...G.*........7...src/Composer/R
3760 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 epository/WritableRepositoryInte
3780 72 66 61 63 65 2e 70 68 70 89 01 00 00 36 6b 60 56 89 01 00 00 91 2f 73 ef b6 01 00 00 00 00 00 rface.php....6k`V...../s........
37a0 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 6f 6d 6d 61 6e 64 .$...src/Composer/Script/Command
37c0 45 76 65 6e 74 2e 70 68 70 57 00 00 00 36 6b 60 56 57 00 00 00 a3 56 5a 74 b6 01 00 00 00 00 00 Event.phpW...6k`VW....VZt.......
37e0 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 .....src/Composer/Script/Event.p
3800 68 70 b5 02 00 00 36 6b 60 56 b5 02 00 00 6c 74 a6 4d b6 01 00 00 00 00 00 00 24 00 00 00 73 72 hp....6k`V....lt.M........$...sr
3820 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 c/Composer/Script/PackageEvent.p
3840 68 70 9c 00 00 00 36 6b 60 56 9c 00 00 00 a7 ff c9 0d b6 01 00 00 00 00 00 00 24 00 00 00 73 72 hp....6k`V................$...sr
3860 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 2e 70 c/Composer/Script/ScriptEvents.p
3880 68 70 50 04 00 00 36 6b 60 56 50 04 00 00 87 8f 04 b6 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 hpP...6k`VP...................sr
38a0 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 41 75 74 68 48 65 6c 70 65 72 2e 70 68 70 cb 03 c/Composer/Util/AuthHelper.php..
38c0 00 00 36 6b 60 56 cb 03 00 00 3e 7a 78 96 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f ..6k`V....>zx.........$...src/Co
38e0 6d 70 6f 73 65 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 mposer/Util/ComposerMirror.php..
3900 00 00 36 6b 60 56 b1 04 00 00 ad bd f8 d8 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f ..6k`V................%...src/Co
3920 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 38 mposer/Util/ConfigValidator.php8
3940 11 00 00 36 6b 60 56 38 11 00 00 e1 c1 2f a7 b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 ...6k`V8...../........."...src/C
3960 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 59 04 00 omposer/Util/ErrorHandler.phpY..
3980 00 36 6b 60 56 59 04 00 00 b3 76 1d 42 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d .6k`VY....v.B............src/Com
39a0 70 6f 73 65 72 2f 55 74 69 6c 2f 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 3b 27 00 00 36 6b 60 poser/Util/Filesystem.php;'..6k`
39c0 56 3b 27 00 00 15 60 4d 0b b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V;'...`M.............src/Compose
39e0 72 2f 55 74 69 6c 2f 47 69 74 2e 70 68 70 1b 19 00 00 36 6b 60 56 1b 19 00 00 8c d6 b5 b1 b6 01 r/Util/Git.php....6k`V..........
3a00 00 00 00 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 74 48 ..........src/Composer/Util/GitH
3a20 75 62 2e 70 68 70 96 0a 00 00 36 6b 60 56 96 0a 00 00 ca ef 27 94 b6 01 00 00 00 00 00 00 1c 00 ub.php....6k`V......'...........
3a40 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 74 4c 61 62 2e 70 68 70 8c 0b ..src/Composer/Util/GitLab.php..
3a60 00 00 36 6b 60 56 8c 0b 00 00 1a 2a 6f 7b b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f ..6k`V.....*o{........$...src/Co
3a80 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 2e 70 68 70 be 06 mposer/Util/NoProxyPattern.php..
3aa0 00 00 36 6b 60 56 be 06 00 00 5a 2b b0 6d b6 01 00 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f ..6k`V....Z+.m............src/Co
3ac0 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 50 65 72 66 6f 72 63 65 2e 70 68 70 05 33 00 00 36 6b 60 56 mposer/Util/Perforce.php.3..6k`V
3ae0 05 33 00 00 b6 2d d1 c8 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .3...-..........%...src/Composer
3b00 2f 55 74 69 6c 2f 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 ed 06 00 00 36 6b 60 /Util/ProcessExecutor.php....6k`
3b20 56 ed 06 00 00 62 46 91 ab b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 V....bF..........&...src/Compose
3b40 72 2f 55 74 69 6c 2f 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 ec 2e 00 00 36 r/Util/RemoteFilesystem.php....6
3b60 6b 60 56 ec 2e 00 00 cd 99 2f f3 b6 01 00 00 00 00 00 00 21 00 00 00 73 72 63 2f 43 6f 6d 70 6f k`V....../.........!...src/Compo
3b80 73 65 72 2f 55 74 69 6c 2f 53 70 64 78 4c 69 63 65 6e 73 65 2e 70 68 70 03 01 00 00 36 6b 60 56 ser/Util/SpdxLicense.php....6k`V
3ba0 03 01 00 00 be 37 0a f1 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .....7..........*...src/Composer
3bc0 2f 55 74 69 6c 2f 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 e4 0e /Util/StreamContextFactory.php..
3be0 00 00 36 6b 60 56 e4 0e 00 00 c2 42 89 a9 b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f ..6k`V.....B..............src/Co
3c00 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 86 11 00 00 36 6b 60 56 86 11 00 00 19 mposer/Util/Svn.php....6k`V.....
3c20 65 40 ee b6 01 00 00 00 00 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 e@.............src/bootstrap.php
3c40 c5 01 00 00 36 6b 60 56 c5 01 00 00 a8 af 32 90 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f ....6k`V......2.........%...src/
3c60 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 61 64 65 72 2e 70 68 Composer/Autoload/ClassLoader.ph
3c80 70 b2 30 00 00 36 6b 60 56 b2 30 00 00 34 95 34 6f b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 p.0..6k`V.0..4.4o............res
3ca0 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 68 65 6d 61 2e 6a 73 6f 6e cc 5a 00 00 36 6b 60 56 cc 5a 00 /composer-schema.json.Z..6k`V.Z.
3cc0 00 58 5b 00 e4 b6 01 00 00 00 00 00 00 36 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 .X[..........6...vendor/composer
3ce0 2f 73 70 64 78 2d 6c 69 63 65 6e 73 65 73 2f 72 65 73 2f 73 70 64 78 2d 65 78 63 65 70 74 69 6f /spdx-licenses/res/spdx-exceptio
3d00 6e 73 2e 6a 73 6f 6e a5 06 00 00 36 6b 60 56 a5 06 00 00 76 64 9d 8a b6 01 00 00 00 00 00 00 34 ns.json....6k`V....vd..........4
3d20 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 70 64 78 2d 6c 69 63 65 6e 73 65 73 ...vendor/composer/spdx-licenses
3d40 2f 72 65 73 2f 73 70 64 78 2d 6c 69 63 65 6e 73 65 73 2e 6a 73 6f 6e 4b 5f 00 00 36 6b 60 56 4b /res/spdx-licenses.jsonK_..6k`VK
3d60 5f 00 00 80 71 09 be b6 01 00 00 00 00 00 00 2a 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 63 _...q..........*...vendor/seld/c
3d80 6c 69 2d 70 72 6f 6d 70 74 2f 72 65 73 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 00 24 00 li-prompt/res/hiddeninput.exe.$.
3da0 00 36 6b 60 56 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 26 00 00 00 76 65 6e 64 6f 72 2f .6k`V.$.....v........&...vendor/
3dc0 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 b1 symfony/console/Application.php.
3de0 53 00 00 36 6b 60 56 b1 53 00 00 43 84 40 fa b6 01 00 00 00 00 00 00 2a 00 00 00 76 65 6e 64 6f S..6k`V.S..C.@.........*...vendo
3e00 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e r/symfony/console/Command/Comman
3e20 64 2e 70 68 70 e5 1e 00 00 36 6b 60 56 e5 1e 00 00 74 f6 1b 08 b6 01 00 00 00 00 00 00 2e 00 00 d.php....6k`V....t..............
3e40 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f .vendor/symfony/console/Command/
3e60 48 65 6c 70 43 6f 6d 6d 61 6e 64 2e 70 68 70 db 07 00 00 36 6b 60 56 db 07 00 00 54 c8 6a 2b b6 HelpCommand.php....6k`V....T.j+.
3e80 01 00 00 00 00 00 00 2e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c ...........vendor/symfony/consol
3ea0 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 58 08 00 00 36 6b 60 e/Command/ListCommand.phpX...6k`
3ec0 56 58 08 00 00 2c a3 aa a1 b6 01 00 00 00 00 00 00 28 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 VX...,...........(...vendor/symf
3ee0 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 2e 70 68 70 ef 00 00 ony/console/ConsoleEvents.php...
3f00 00 36 6b 60 56 ef 00 00 00 0d d5 48 b8 b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f .6k`V......H.........<...vendor/
3f20 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 41 70 70 6c 69 symfony/console/Descriptor/Appli
3f40 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 2e 70 68 70 9e 08 00 00 36 6b 60 56 9e 08 00 cationDescription.php....6k`V...
3f60 00 a8 cd 52 d5 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ...R.........0...vendor/symfony/
3f80 63 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 69 70 74 6f 72 2e 70 68 console/Descriptor/Descriptor.ph
3fa0 70 5c 07 00 00 36 6b 60 56 5c 07 00 00 57 4a 5b ed b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e p\...6k`V\...WJ[.........9...ven
3fc0 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 dor/symfony/console/Descriptor/D
3fe0 65 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 36 6b 60 56 fc 00 escriptorInterface.php....6k`V..
4000 00 00 b1 51 07 b5 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ...Q..........4...vendor/symfony
4020 2f 63 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4a 73 6f 6e 44 65 73 63 72 69 70 74 /console/Descriptor/JsonDescript
4040 6f 72 2e 70 68 70 9a 0d 00 00 36 6b 60 56 9a 0d 00 00 14 6c ac 05 b6 01 00 00 00 00 00 00 38 00 or.php....6k`V.....l..........8.
4060 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 44 65 73 63 72 69 70 ..vendor/symfony/console/Descrip
4080 74 6f 72 2f 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 7f 0e 00 00 36 6b tor/MarkdownDescriptor.php....6k
40a0 60 56 7f 0e 00 00 3f 77 0f 6e b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d `V....?w.n........4...vendor/sym
40c0 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 54 65 78 74 44 65 73 63 fony/console/Descriptor/TextDesc
40e0 72 69 70 74 6f 72 2e 70 68 70 ae 1c 00 00 36 6b 60 56 ae 1c 00 00 45 d6 fe 53 b6 01 00 00 00 00 riptor.php....6k`V....E..S......
4100 00 00 33 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 44 65 73 ..3...vendor/symfony/console/Des
4120 63 72 69 70 74 6f 72 2f 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 0f 1c 00 00 36 6b 60 criptor/XmlDescriptor.php....6k`
4140 56 0f 1c 00 00 04 8b 50 24 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 V......P$........4...vendor/symf
4160 6f 6e 79 2f 63 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 ony/console/Event/ConsoleCommand
4180 45 76 65 6e 74 2e 70 68 70 b2 01 00 00 36 6b 60 56 b2 01 00 00 5a 6b 89 32 b6 01 00 00 00 00 00 Event.php....6k`V....Zk.2.......
41a0 00 2d 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 45 76 65 6e .-...vendor/symfony/console/Even
41c0 74 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 2e 70 68 70 c5 02 00 00 36 6b 60 56 c5 02 00 00 d2 78 t/ConsoleEvent.php....6k`V.....x
41e0 db 5c b6 01 00 00 00 00 00 00 36 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e .\........6...vendor/symfony/con
4200 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 sole/Event/ConsoleExceptionEvent
4220 2e 70 68 70 12 03 00 00 36 6b 60 56 12 03 00 00 e1 16 32 e9 b6 01 00 00 00 00 00 00 36 00 00 00 .php....6k`V......2.........6...
4240 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e vendor/symfony/console/Event/Con
4260 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 2e 70 68 70 7a 02 00 00 36 6b 60 56 7a 02 soleTerminateEvent.phpz...6k`Vz.
4280 00 00 b3 2c ee 4c b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ...,.L........4...vendor/symfony
42a0 2f 63 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 /console/Formatter/OutputFormatt
42c0 65 72 2e 70 68 70 71 0c 00 00 36 6b 60 56 71 0c 00 00 5e d0 a6 57 b6 01 00 00 00 00 00 00 3d 00 er.phpq...6k`Vq...^..W........=.
42e0 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 46 6f 72 6d 61 74 74 ..vendor/symfony/console/Formatt
4300 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 65 2e 70 68 70 8a er/OutputFormatterInterface.php.
4320 01 00 00 36 6b 60 56 8a 01 00 00 3a df 05 07 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 6f ...6k`V....:...........9...vendo
4340 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 r/symfony/console/Formatter/Outp
4360 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 0d 10 00 00 36 6b 60 56 0d 10 00 00 utFormatterStyle.php....6k`V....
4380 bc fc fe 8f 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 ............B...vendor/symfony/c
43a0 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole/Formatter/OutputFormatter
43c0 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 86 01 00 00 36 6b 60 56 86 01 00 00 dd 52 StyleInterface.php....6k`V.....R
43e0 da ad 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 63 6f 6e ..........>...vendor/symfony/con
4400 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 sole/Formatter/OutputFormatterSt
4420 79 6c 65 53 74 61 63 6b 2e 70 68 70 0a 05 00 00 36 6b 60 56 0a 05 00 00 16 2c bd 2d b6 01 00 00 yleStack.php....6k`V.....,.-....
4440 00 00 00 00 36 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 48 ....6...vendor/symfony/console/H
4460 65 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 78 08 elper/DebugFormatterHelper.phpx.
4480 00 00 36 6b 60 56 78 08 00 00 4e a9 d8 bc b6 01 00 00 00 00 00 00 32 00 00 00 76 65 6e 64 6f 72 ..6k`Vx...N...........2...vendor
44a0 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 65 73 63 72 69 70 74 /symfony/console/Helper/Descript
44c0 6f 72 48 65 6c 70 65 72 2e 70 68 70 39 05 00 00 36 6b 60 56 39 05 00 00 fb f9 e4 f0 b6 01 00 00 orHelper.php9...6k`V9...........
44e0 00 00 00 00 2e 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 48 ........vendor/symfony/console/H
4500 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 e2 1c 00 00 36 6b 60 56 e2 1c elper/DialogHelper.php....6k`V..
4520 00 00 d5 a5 4c b7 b6 01 00 00 00 00 00 00 31 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ....L.........1...vendor/symfony
4540 2f 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e /console/Helper/FormatterHelper.
4560 70 68 70 63 04 00 00 36 6b 60 56 63 04 00 00 93 fd ab 4e b6 01 00 00 00 00 00 00 28 00 00 00 76 phpc...6k`Vc......N........(...v
4580 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c endor/symfony/console/Helper/Hel
45a0 70 65 72 2e 70 68 70 df 06 00 00 36 6b 60 56 df 06 00 00 6f be 01 e3 b6 01 00 00 00 00 00 00 31 per.php....6k`V....o...........1
45c0 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 48 65 6c 70 65 72 ...vendor/symfony/console/Helper
45e0 2f 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 e7 00 00 00 36 6b 60 56 e7 00 00 00 /HelperInterface.php....6k`V....
4600 a0 18 c7 e3 b6 01 00 00 00 00 00 00 2b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ............+...vendor/symfony/c
4620 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 53 65 74 2e 70 68 70 89 07 00 00 36 onsole/Helper/HelperSet.php....6
4640 6b 60 56 89 07 00 00 4d 30 22 78 b6 01 00 00 00 00 00 00 32 00 00 00 76 65 6e 64 6f 72 2f 73 79 k`V....M0"x........2...vendor/sy
4660 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 49 6e 70 75 74 41 77 61 72 65 48 mfony/console/Helper/InputAwareH
4680 65 6c 70 65 72 2e 70 68 70 63 01 00 00 36 6b 60 56 63 01 00 00 f1 f8 90 7c b6 01 00 00 00 00 00 elper.phpc...6k`Vc......|.......
46a0 00 2f 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 48 65 6c 70 ./...vendor/symfony/console/Help
46c0 65 72 2f 50 72 6f 63 65 73 73 48 65 6c 70 65 72 2e 70 68 70 d1 09 00 00 36 6b 60 56 d1 09 00 00 er/ProcessHelper.php....6k`V....
46e0 40 b1 e3 81 b6 01 00 00 00 00 00 00 2d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 @...........-...vendor/symfony/c
4700 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 68 70 17 27 00 onsole/Helper/ProgressBar.php.'.
4720 00 36 6b 60 56 17 27 00 00 9e 06 22 06 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f .6k`V.'....".........0...vendor/
4740 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 48 symfony/console/Helper/ProgressH
4760 65 6c 70 65 72 2e 70 68 70 a6 1a 00 00 36 6b 60 56 a6 1a 00 00 5d 22 c9 91 b6 01 00 00 00 00 00 elper.php....6k`V....]".........
4780 00 30 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 48 65 6c 70 .0...vendor/symfony/console/Help
47a0 65 72 2f 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 2e 70 68 70 9f 1a 00 00 36 6b 60 56 9f 1a 00 er/QuestionHelper.php....6k`V...
47c0 00 f0 a7 ba 4f b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ....O........7...vendor/symfony/
47e0 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 53 79 6d 66 6f 6e 79 51 75 65 73 74 69 6f 6e 48 65 console/Helper/SymfonyQuestionHe
4800 6c 70 65 72 2e 70 68 70 4b 08 00 00 36 6b 60 56 4b 08 00 00 ac ea 4c 23 b6 01 00 00 00 00 00 00 lper.phpK...6k`VK.....L#........
4820 27 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 48 65 6c 70 65 '...vendor/symfony/console/Helpe
4840 72 2f 54 61 62 6c 65 2e 70 68 70 0b 27 00 00 36 6b 60 56 0b 27 00 00 91 46 41 b9 b6 01 00 00 00 r/Table.php.'..6k`V.'...FA......
4860 00 00 00 2b 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 48 65 ...+...vendor/symfony/console/He
4880 6c 70 65 72 2f 54 61 62 6c 65 43 65 6c 6c 2e 70 68 70 f8 02 00 00 36 6b 60 56 f8 02 00 00 2a 26 lper/TableCell.php....6k`V....*&
48a0 20 ee b6 01 00 00 00 00 00 00 2d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e ..........-...vendor/symfony/con
48c0 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 48 65 6c 70 65 72 2e 70 68 70 d3 0b 00 00 36 sole/Helper/TableHelper.php....6
48e0 6b 60 56 d3 0b 00 00 44 69 85 36 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 79 k`V....Di.6........0...vendor/sy
4900 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 53 65 70 61 72 61 mfony/console/Helper/TableSepara
4920 74 6f 72 2e 70 68 70 ce 00 00 00 36 6b 60 56 ce 00 00 00 3c 66 3b a3 b6 01 00 00 00 00 00 00 2c tor.php....6k`V....<f;.........,
4940 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 48 65 6c 70 65 72 ...vendor/symfony/console/Helper
4960 2f 54 61 62 6c 65 53 74 79 6c 65 2e 70 68 70 a6 09 00 00 36 6b 60 56 a6 09 00 00 f0 ee 9e 8b b6 /TableStyle.php....6k`V.........
4980 01 00 00 00 00 00 00 2a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......*...vendor/symfony/consol
49a0 65 2f 49 6e 70 75 74 2f 41 72 67 76 49 6e 70 75 74 2e 70 68 70 ce 13 00 00 36 6b 60 56 ce 13 00 e/Input/ArgvInput.php....6k`V...
49c0 00 b2 48 43 c0 b6 01 00 00 00 00 00 00 2b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..HC.........+...vendor/symfony/
49e0 63 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 f7 09 00 00 console/Input/ArrayInput.php....
4a00 36 6b 60 56 f7 09 00 00 99 9e dc ec b6 01 00 00 00 00 00 00 26 00 00 00 76 65 6e 64 6f 72 2f 73 6k`V................&...vendor/s
4a20 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 2e 70 68 70 5c 0b ymfony/console/Input/Input.php\.
4a40 00 00 36 6b 60 56 5c 0b 00 00 f5 c2 f3 c6 b6 01 00 00 00 00 00 00 2e 00 00 00 76 65 6e 64 6f 72 ..6k`V\...................vendor
4a60 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 41 72 67 75 /symfony/console/Input/InputArgu
4a80 6d 65 6e 74 2e 70 68 70 9a 05 00 00 36 6b 60 56 9a 05 00 00 38 41 83 6b b6 01 00 00 00 00 00 00 ment.php....6k`V....8A.k........
4aa0 34 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 49 6e 70 75 74 4...vendor/symfony/console/Input
4ac0 2f 49 6e 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 36 6b 60 56 /InputAwareInterface.php....6k`V
4ae0 9a 00 00 00 87 6a 54 9f b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .....jT.........0...vendor/symfo
4b00 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e ny/console/Input/InputDefinition
4b20 2e 70 68 70 21 19 00 00 36 6b 60 56 21 19 00 00 93 2a 11 dc b6 01 00 00 00 00 00 00 2f 00 00 00 .php!...6k`V!....*........../...
4b40 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 vendor/symfony/console/Input/Inp
4b60 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 36 6b 60 56 20 03 00 00 39 94 f8 c7 b6 utInterface.php....6k`V....9....
4b80 01 00 00 00 00 00 00 2c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......,...vendor/symfony/consol
4ba0 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 4f 70 74 69 6f 6e 2e 70 68 70 a7 0b 00 00 36 6b 60 56 a7 e/Input/InputOption.php....6k`V.
4bc0 0b 00 00 b8 e6 fc 47 b6 01 00 00 00 00 00 00 2c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ......G........,...vendor/symfon
4be0 79 2f 63 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 70 68 70 56 y/console/Input/StringInput.phpV
4c00 06 00 00 36 6b 60 56 56 06 00 00 2a ce da 5a b6 01 00 00 00 00 00 00 1e 00 00 00 76 65 6e 64 6f ...6k`VV...*..Z............vendo
4c20 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 4c 49 43 45 4e 53 45 29 04 00 00 36 6b 60 r/symfony/console/LICENSE)...6k`
4c40 56 29 04 00 00 eb 08 26 95 b6 01 00 00 00 00 00 00 2f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 V).....&........./...vendor/symf
4c60 6f 6e 79 2f 63 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 65 72 ony/console/Logger/ConsoleLogger
4c80 2e 70 68 70 3c 09 00 00 36 6b 60 56 3c 09 00 00 3a e2 c7 6c b6 01 00 00 00 00 00 00 30 00 00 00 .php<...6k`V<...:..l........0...
4ca0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 42 75 vendor/symfony/console/Output/Bu
4cc0 66 66 65 72 65 64 4f 75 74 70 75 74 2e 70 68 70 5f 01 00 00 36 6b 60 56 5f 01 00 00 fb 42 cd b7 fferedOutput.php_...6k`V_....B..
4ce0 b6 01 00 00 00 00 00 00 2f 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
4d00 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 70 b5 07 00 00 36 le/Output/ConsoleOutput.php....6
4d20 6b 60 56 b5 07 00 00 05 09 76 63 b6 01 00 00 00 00 00 00 38 00 00 00 76 65 6e 64 6f 72 2f 73 79 k`V......vc........8...vendor/sy
4d40 6d 66 6f 6e 79 2f 63 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 mfony/console/Output/ConsoleOutp
4d60 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 e5 00 00 00 36 6b 60 56 e5 00 00 00 72 4e f4 00 b6 utInterface.php....6k`V....rN...
4d80 01 00 00 00 00 00 00 2c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......,...vendor/symfony/consol
4da0 65 2f 4f 75 74 70 75 74 2f 4e 75 6c 6c 4f 75 74 70 75 74 2e 70 68 70 bd 03 00 00 36 6b 60 56 bd e/Output/NullOutput.php....6k`V.
4dc0 03 00 00 24 75 22 1c b6 01 00 00 00 00 00 00 28 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ...$u".........(...vendor/symfon
4de0 79 2f 63 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 2e 70 68 70 a3 08 00 00 36 y/console/Output/Output.php....6
4e00 6b 60 56 a3 08 00 00 90 cd 5b a2 b6 01 00 00 00 00 00 00 31 00 00 00 76 65 6e 64 6f 72 2f 73 79 k`V......[.........1...vendor/sy
4e20 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 49 6e 74 65 72 mfony/console/Output/OutputInter
4e40 66 61 63 65 2e 70 68 70 37 03 00 00 36 6b 60 56 37 03 00 00 4a 8a 1e d5 b6 01 00 00 00 00 00 00 face.php7...6k`V7...J...........
4e60 2e 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 4f 75 74 70 75 ....vendor/symfony/console/Outpu
4e80 74 2f 53 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 bd 04 00 00 36 6b 60 56 bd 04 00 00 1b 5d t/StreamOutput.php....6k`V.....]
4ea0 20 46 b6 01 00 00 00 00 00 00 32 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e .F........2...vendor/symfony/con
4ec0 73 6f 6c 65 2f 51 75 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 sole/Question/ChoiceQuestion.php
4ee0 9d 09 00 00 36 6b 60 56 9d 09 00 00 d1 71 9c 11 b6 01 00 00 00 00 00 00 38 00 00 00 76 65 6e 64 ....6k`V.....q..........8...vend
4f00 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 43 6f 6e 66 or/symfony/console/Question/Conf
4f20 69 72 6d 61 74 69 6f 6e 51 75 65 73 74 69 6f 6e 2e 70 68 70 e9 02 00 00 36 6b 60 56 e9 02 00 00 irmationQuestion.php....6k`V....
4f40 83 17 51 40 b6 01 00 00 00 00 00 00 2c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ..Q@........,...vendor/symfony/c
4f60 6f 6e 73 6f 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 51 75 65 73 74 69 6f 6e 2e 70 68 70 94 09 00 00 onsole/Question/Question.php....
4f80 36 6b 60 56 94 09 00 00 7a 6c a2 ff b6 01 00 00 00 00 00 00 20 00 00 00 76 65 6e 64 6f 72 2f 73 6k`V....zl..............vendor/s
4fa0 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 31 0f 00 00 36 6b 60 56 ymfony/console/Shell.php1...6k`V
4fc0 31 0f 00 00 55 ad c8 2c b6 01 00 00 00 00 00 00 2c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 1...U..,........,...vendor/symfo
4fe0 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 74 79 6c 65 2f 4f 75 74 70 75 74 53 74 79 6c 65 2e 70 68 70 ny/console/Style/OutputStyle.php
5000 5f 05 00 00 36 6b 60 56 5f 05 00 00 04 fb 05 b5 b6 01 00 00 00 00 00 00 2f 00 00 00 76 65 6e 64 _...6k`V_.............../...vend
5020 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 74 79 6c 65 2f 53 74 79 6c 65 49 6e or/symfony/console/Style/StyleIn
5040 74 65 72 66 61 63 65 2e 70 68 70 d4 03 00 00 36 6b 60 56 d4 03 00 00 a0 df ca 6a b6 01 00 00 00 terface.php....6k`V.......j.....
5060 00 00 00 2d 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 74 ...-...vendor/symfony/console/St
5080 79 6c 65 2f 53 79 6d 66 6f 6e 79 53 74 79 6c 65 2e 70 68 70 c0 1b 00 00 36 6b 60 56 c0 1b 00 00 yle/SymfonyStyle.php....6k`V....
50a0 ac 40 b0 0e b6 01 00 00 00 00 00 00 33 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 .@..........3...vendor/symfony/c
50c0 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 73 74 65 72 2e onsole/Tester/ApplicationTester.
50e0 70 68 70 d4 05 00 00 36 6b 60 56 d4 05 00 00 ac ec a4 64 b6 01 00 00 00 00 00 00 2f 00 00 00 76 php....6k`V.......d......../...v
5100 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 43 6f 6d endor/symfony/console/Tester/Com
5120 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 ae 06 00 00 36 6b 60 56 ae 06 00 00 45 d9 9a 7c b6 01 mandTester.php....6k`V....E..|..
5140 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 ......:...vendor/symfony/filesys
5160 74 65 6d 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 tem/Exception/ExceptionInterface
5180 2e 70 68 70 69 00 00 00 36 6b 60 56 69 00 00 00 24 20 ff 9b b6 01 00 00 00 00 00 00 3d 00 00 00 .phpi...6k`Vi...$...........=...
51a0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 6d 2f 45 78 63 65 70 74 vendor/symfony/filesystem/Except
51c0 69 6f 6e 2f 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 bc 01 00 ion/FileNotFoundException.php...
51e0 00 36 6b 60 56 bc 01 00 00 70 ed 5c b6 b6 01 00 00 00 00 00 00 33 00 00 00 76 65 6e 64 6f 72 2f .6k`V....p.\.........3...vendor/
5200 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 6d 2f 45 78 63 65 70 74 69 6f 6e 2f 49 4f 45 symfony/filesystem/Exception/IOE
5220 78 63 65 70 74 69 6f 6e 2e 70 68 70 87 01 00 00 36 6b 60 56 87 01 00 00 80 fc 23 d1 b6 01 00 00 xception.php....6k`V......#.....
5240 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 ....<...vendor/symfony/filesyste
5260 6d 2f 45 78 63 65 70 74 69 6f 6e 2f 49 4f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 m/Exception/IOExceptionInterface
5280 2e 70 68 70 a6 00 00 00 36 6b 60 56 a6 00 00 00 6a d9 77 4d b6 01 00 00 00 00 00 00 28 00 00 00 .php....6k`V....j.wM........(...
52a0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 6d 2f 46 69 6c 65 73 79 vendor/symfony/filesystem/Filesy
52c0 73 74 65 6d 2e 70 68 70 dd 27 00 00 36 6b 60 56 dd 27 00 00 99 91 75 62 b6 01 00 00 00 00 00 00 stem.php.'..6k`V.'....ub........
52e0 21 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 6d 2f 4c 49 !...vendor/symfony/filesystem/LI
5300 43 45 4e 53 45 29 04 00 00 36 6b 60 56 29 04 00 00 eb 08 26 95 b6 01 00 00 00 00 00 00 29 00 00 CENSE)...6k`V).....&.........)..
5320 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 6d 2f 4c 6f 63 6b 48 .vendor/symfony/filesystem/LockH
5340 61 6e 64 6c 65 72 2e 70 68 70 cd 05 00 00 36 6b 60 56 cd 05 00 00 28 f1 a8 27 b6 01 00 00 00 00 andler.php....6k`V....(..'......
5360 00 00 31 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 41 64 61 70 ..1...vendor/symfony/finder/Adap
5380 74 65 72 2f 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 2e 70 68 70 a4 0a 00 00 36 6b 60 56 a4 ter/AbstractAdapter.php....6k`V.
53a0 0a 00 00 a2 29 7a 39 b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ....)z9........5...vendor/symfon
53c0 79 2f 66 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 y/finder/Adapter/AbstractFindAda
53e0 70 74 65 72 2e 70 68 70 dd 18 00 00 36 6b 60 56 dd 18 00 00 de 5f 93 f8 b6 01 00 00 00 00 00 00 pter.php....6k`V....._..........
5400 32 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 41 64 61 70 74 65 2...vendor/symfony/finder/Adapte
5420 72 2f 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 af 03 00 00 36 6b 60 56 af 03 r/AdapterInterface.php....6k`V..
5440 00 00 8b 08 e9 c8 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..............0...vendor/symfony
5460 2f 66 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 2e 70 /finder/Adapter/BsdFindAdapter.p
5480 68 70 7b 06 00 00 36 6b 60 56 7b 06 00 00 51 2c 44 32 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 hp{...6k`V{...Q,D2........0...ve
54a0 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 47 6e 75 46 ndor/symfony/finder/Adapter/GnuF
54c0 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 5e 06 00 00 36 6b 60 56 5e 06 00 00 df 7a 98 72 b6 01 indAdapter.php^...6k`V^....z.r..
54e0 00 00 00 00 00 00 2c 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 ......,...vendor/symfony/finder/
5500 41 64 61 70 74 65 72 2f 50 68 70 41 64 61 70 74 65 72 2e 70 68 70 41 07 00 00 36 6b 60 56 41 07 Adapter/PhpAdapter.phpA...6k`VA.
5520 00 00 54 3e a2 dd b6 01 00 00 00 00 00 00 2f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..T>........../...vendor/symfony
5540 2f 66 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 /finder/Comparator/Comparator.ph
5560 70 8c 03 00 00 36 6b 60 56 8c 03 00 00 16 77 fe 54 b6 01 00 00 00 00 00 00 33 00 00 00 76 65 6e p....6k`V.....w.T........3...ven
5580 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 61 dor/symfony/finder/Comparator/Da
55a0 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 25 03 00 00 36 6b 60 56 25 03 00 00 4c bf 45 c7 teComparator.php%...6k`V%...L.E.
55c0 b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........5...vendor/symfony/finde
55e0 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
5600 70 7e 03 00 00 36 6b 60 56 7e 03 00 00 94 87 20 78 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e p~...6k`V~......x........9...ven
5620 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 41 63 63 dor/symfony/finder/Exception/Acc
5640 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 84 00 00 00 36 6b 60 56 84 00 essDeniedException.php....6k`V..
5660 00 00 bd be 73 9c b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ....s.........;...vendor/symfony
5680 2f 66 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 /finder/Exception/AdapterFailure
56a0 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 16 02 00 00 36 6b 60 56 16 02 00 00 6d 8c 5f 2c b6 01 00 Exception.php....6k`V....m._,...
56c0 00 00 00 00 00 36 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 45 .....6...vendor/symfony/finder/E
56e0 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 84 xception/ExceptionInterface.php.
5700 00 00 00 36 6b 60 56 84 00 00 00 1c 47 7a 2d b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f ...6k`V.....Gz-........A...vendo
5720 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 4f 70 65 72 61 r/symfony/finder/Exception/Opera
5740 74 69 6f 6e 4e 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 8a 00 00 00 tionNotPermitedException.php....
5760 36 6b 60 56 8a 00 00 00 55 12 38 38 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 6k`V....U.88........@...vendor/s
5780 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 53 68 65 6c 6c 43 6f 6d ymfony/finder/Exception/ShellCom
57a0 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 36 6b 60 56 mandFailureException.php$...6k`V
57c0 24 02 00 00 43 94 73 d3 b6 01 00 00 00 00 00 00 2f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f $...C.s........./...vendor/symfo
57e0 6e 79 2f 66 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 45 78 70 72 65 73 73 69 6f 6e 2e ny/finder/Expression/Expression.
5800 70 68 70 7d 05 00 00 36 6b 60 56 7d 05 00 00 2f b7 63 f0 b6 01 00 00 00 00 00 00 29 00 00 00 76 php}...6k`V}.../.c.........)...v
5820 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f endor/symfony/finder/Expression/
5840 47 6c 6f 62 2e 70 68 70 e5 03 00 00 36 6b 60 56 e5 03 00 00 8c 34 d9 12 b6 01 00 00 00 00 00 00 Glob.php....6k`V.....4..........
5860 2a 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 45 78 70 72 65 73 *...vendor/symfony/finder/Expres
5880 73 69 6f 6e 2f 52 65 67 65 78 2e 70 68 70 81 0e 00 00 36 6b 60 56 81 0e 00 00 53 37 50 e6 b6 01 sion/Regex.php....6k`V....S7P...
58a0 00 00 00 00 00 00 33 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f ......3...vendor/symfony/finder/
58c0 45 78 70 72 65 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 Expression/ValueInterface.php;..
58e0 00 36 6b 60 56 3b 01 00 00 0b ee e3 d3 b6 01 00 00 00 00 00 00 20 00 00 00 76 65 6e 64 6f 72 2f .6k`V;...................vendor/
5900 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 ee 22 00 00 36 6b 60 symfony/finder/Finder.php."..6k`
5920 56 ee 22 00 00 22 4f fa 6a b6 01 00 00 00 00 00 00 1e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 V.".."O.j............vendor/symf
5940 6f 6e 79 2f 66 69 6e 64 65 72 2f 47 6c 6f 62 2e 70 68 70 34 05 00 00 36 6b 60 56 34 05 00 00 b0 ony/finder/Glob.php4...6k`V4....
5960 42 61 b3 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 Ba.........7...vendor/symfony/fi
5980 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 61 74 nder/Iterator/CustomFilterIterat
59a0 6f 72 2e 70 68 70 5d 02 00 00 36 6b 60 56 5d 02 00 00 74 e0 b1 b5 b6 01 00 00 00 00 00 00 3a 00 or.php]...6k`V]...t...........:.
59c0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 ..vendor/symfony/finder/Iterator
59e0 2f 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 7a 02 00 00 /DateRangeFilterIterator.phpz...
5a00 36 6b 60 56 7a 02 00 00 7f 7d 17 a2 b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 6k`Vz....}..........;...vendor/s
5a20 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 65 70 74 68 52 61 6e 67 ymfony/finder/Iterator/DepthRang
5a40 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 f0 01 00 00 36 6b 60 56 f0 01 00 00 df eFilterIterator.php....6k`V.....
5a60 30 99 04 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 0..........A...vendor/symfony/fi
5a80 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 nder/Iterator/ExcludeDirectoryFi
5aa0 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 ca 05 00 00 36 6b 60 56 ca 05 00 00 90 39 36 86 lterIterator.php....6k`V.....96.
5ac0 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........4...vendor/symfony/finde
5ae0 72 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 r/Iterator/FilePathsIterator.php
5b00 8d 05 00 00 36 6b 60 56 8d 05 00 00 fd f2 e4 51 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 ....6k`V.......Q........9...vend
5b20 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 54 or/symfony/finder/Iterator/FileT
5b40 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 36 6b 60 56 5c 02 00 ypeFilterIterator.php\...6k`V\..
5b60 00 70 91 27 98 b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .p.'.........<...vendor/symfony/
5b80 66 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 finder/Iterator/FilecontentFilte
5ba0 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 36 6b 60 56 23 03 00 00 da 5f 56 c7 b6 01 00 rIterator.php#...6k`V#...._V....
5bc0 00 00 00 00 00 39 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 49 .....9...vendor/symfony/finder/I
5be0 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 terator/FilenameFilterIterator.p
5c00 68 70 87 02 00 00 36 6b 60 56 87 02 00 00 46 20 92 0b b6 01 00 00 00 00 00 00 31 00 00 00 76 65 hp....6k`V....F...........1...ve
5c20 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c ndor/symfony/finder/Iterator/Fil
5c40 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 86 02 00 00 36 6b 60 56 86 02 00 00 30 a3 be d4 b6 terIterator.php....6k`V....0....
5c60 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 .......=...vendor/symfony/finder
5c80 2f 49 74 65 72 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 /Iterator/MultiplePcreFilterIter
5ca0 61 74 6f 72 2e 70 68 70 d8 02 00 00 36 6b 60 56 d8 02 00 00 04 d2 f9 93 b6 01 00 00 00 00 00 00 ator.php....6k`V................
5cc0 35 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 49 74 65 72 61 74 5...vendor/symfony/finder/Iterat
5ce0 6f 72 2f 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 be 02 00 00 36 6b 60 or/PathFilterIterator.php....6k`
5d00 56 be 02 00 00 8a 9e 91 62 b6 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 V.......b........=...vendor/symf
5d20 6f 6e 79 2f 66 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 52 65 63 75 72 73 69 76 65 44 69 72 ony/finder/Iterator/RecursiveDir
5d40 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 2e 70 68 70 77 08 00 00 36 6b 60 56 77 08 00 00 6f 70 ectoryIterator.phpw...6k`Vw...op
5d60 17 9b b6 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e ..........:...vendor/symfony/fin
5d80 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 der/Iterator/SizeRangeFilterIter
5da0 61 74 6f 72 2e 70 68 70 67 02 00 00 36 6b 60 56 67 02 00 00 21 d4 97 e9 b6 01 00 00 00 00 00 00 ator.phpg...6k`Vg...!...........
5dc0 33 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 49 74 65 72 61 74 3...vendor/symfony/finder/Iterat
5de0 6f 72 2f 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 2e 70 68 70 de 05 00 00 36 6b 60 56 de or/SortableIterator.php....6k`V.
5e00 05 00 00 f6 b3 06 25 b6 01 00 00 00 00 00 00 1d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ......%............vendor/symfon
5e20 79 2f 66 69 6e 64 65 72 2f 4c 49 43 45 4e 53 45 29 04 00 00 36 6b 60 56 29 04 00 00 eb 08 26 95 y/finder/LICENSE)...6k`V).....&.
5e40 b6 01 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........'...vendor/symfony/finde
5e60 72 2f 53 68 65 6c 6c 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 ca 0a 00 00 36 6b 60 56 ca 0a 00 00 c9 r/Shell/Command.php....6k`V.....
5e80 5f 17 ef b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 _..........%...vendor/symfony/fi
5ea0 6e 64 65 72 2f 53 68 65 6c 6c 2f 53 68 65 6c 6c 2e 70 68 70 e9 03 00 00 36 6b 60 56 e9 03 00 00 nder/Shell/Shell.php....6k`V....
5ec0 bf eb db 95 b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 ............%...vendor/symfony/f
5ee0 69 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 6f 2e 70 68 70 fb 02 00 00 36 6b 60 56 fb 02 00 inder/SplFileInfo.php....6k`V...
5f00 00 91 05 86 36 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ....6........7...vendor/symfony/
5f20 70 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 process/Exception/ExceptionInter
5f40 66 61 63 65 2e 70 68 70 66 00 00 00 36 6b 60 56 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 00 00 face.phpf...6k`Vf...].>T........
5f60 3d 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 45 78 63 65 70 =...vendor/symfony/process/Excep
5f80 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 tion/InvalidArgumentException.ph
5fa0 70 a8 00 00 00 36 6b 60 56 a8 00 00 00 d0 c0 2b 5f b6 01 00 00 00 00 00 00 33 00 00 00 76 65 6e p....6k`V......+_........3...ven
5fc0 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 4c 6f dor/symfony/process/Exception/Lo
5fe0 67 69 63 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 94 00 00 00 36 6b 60 56 94 00 00 00 20 b3 e3 f1 gicException.php....6k`V........
6000 b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 ........;...vendor/symfony/proce
6020 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 ss/Exception/ProcessFailedExcept
6040 69 6f 6e 2e 70 68 70 3c 03 00 00 36 6b 60 56 3c 03 00 00 22 77 db 6e b6 01 00 00 00 00 00 00 3d ion.php<...6k`V<..."w.n........=
6060 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 45 78 63 65 70 74 ...vendor/symfony/process/Except
6080 69 6f 6e 2f 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ion/ProcessTimedOutException.php
60a0 1f 04 00 00 36 6b 60 56 1f 04 00 00 2e 09 c3 e1 b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 ....6k`V................5...vend
60c0 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 52 75 6e or/symfony/process/Exception/Run
60e0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 00 00 00 36 6b 60 56 98 00 00 00 a2 1b d8 timeException.php....6k`V.......
6100 3a b6 01 00 00 00 00 00 00 2b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 :........+...vendor/symfony/proc
6120 65 73 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 81 04 00 00 36 6b 60 56 ess/ExecutableFinder.php....6k`V
6140 81 04 00 00 f2 29 e5 dc b6 01 00 00 00 00 00 00 1e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .....)..............vendor/symfo
6160 6e 79 2f 70 72 6f 63 65 73 73 2f 4c 49 43 45 4e 53 45 29 04 00 00 36 6b 60 56 29 04 00 00 eb 08 ny/process/LICENSE)...6k`V).....
6180 26 95 b6 01 00 00 00 00 00 00 2e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f &.............vendor/symfony/pro
61a0 63 65 73 73 2f 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 f9 03 00 00 cess/PhpExecutableFinder.php....
61c0 36 6b 60 56 f9 03 00 00 7d 45 e1 aa b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 73 6k`V....}E..........%...vendor/s
61e0 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 50 68 70 50 72 6f 63 65 73 73 2e 70 68 70 ce 02 00 ymfony/process/PhpProcess.php...
6200 00 36 6b 60 56 ce 02 00 00 ea fc 19 55 b6 01 00 00 00 00 00 00 2e 00 00 00 76 65 6e 64 6f 72 2f .6k`V.......U............vendor/
6220 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 50 69 70 65 73 2f 41 62 73 74 72 61 63 74 50 69 symfony/process/Pipes/AbstractPi
6240 70 65 73 2e 70 68 70 00 03 00 00 36 6b 60 56 00 03 00 00 98 7c a5 be b6 01 00 00 00 00 00 00 2f pes.php....6k`V.....|........../
6260 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 50 69 70 65 73 2f ...vendor/symfony/process/Pipes/
6280 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 2e 70 68 70 44 01 00 00 36 6b 60 56 44 01 00 00 76 d8 PipesInterface.phpD...6k`VD...v.
62a0 ee a1 b6 01 00 00 00 00 00 00 2a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f ..........*...vendor/symfony/pro
62c0 63 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 36 6b 60 56 cess/Pipes/UnixPipes.php....6k`V
62e0 a4 0b 00 00 f8 01 55 74 b6 01 00 00 00 00 00 00 2d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ......Ut........-...vendor/symfo
6300 6e 79 2f 70 72 6f 63 65 73 73 2f 50 69 70 65 73 2f 57 69 6e 64 6f 77 73 50 69 70 65 73 2e 70 68 ny/process/Pipes/WindowsPipes.ph
6320 70 9d 0e 00 00 36 6b 60 56 9d 0e 00 00 96 29 be 6e b6 01 00 00 00 00 00 00 22 00 00 00 76 65 6e p....6k`V.....).n........"...ven
6340 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 01 dor/symfony/process/Process.php.
6360 50 00 00 36 6b 60 56 01 50 00 00 fe 79 bc ad b6 01 00 00 00 00 00 00 29 00 00 00 76 65 6e 64 6f P..6k`V.P...y..........)...vendo
6380 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 r/symfony/process/ProcessBuilder
63a0 2e 70 68 70 03 0b 00 00 36 6b 60 56 03 0b 00 00 84 38 3c b2 b6 01 00 00 00 00 00 00 27 00 00 00 .php....6k`V.....8<.........'...
63c0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 55 74 vendor/symfony/process/ProcessUt
63e0 69 6c 73 2e 70 68 70 0e 06 00 00 36 6b 60 56 0e 06 00 00 5e dc b2 22 b6 01 00 00 00 00 00 00 1c ils.php....6k`V....^..".........
6400 00 00 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 ...vendor/seld/jsonlint/LICENSE"
6420 04 00 00 36 6b 60 56 22 04 00 00 61 83 73 79 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f ...6k`V"...a.sy........@...vendo
6440 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e r/seld/jsonlint/src/Seld/JsonLin
6460 74 2f 44 75 70 6c 69 63 61 74 65 4b 65 79 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 2a 01 00 00 36 t/DuplicateKeyException.php*...6
6480 6b 60 56 2a 01 00 00 19 95 70 f1 b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 65 k`V*.....p.........5...vendor/se
64a0 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 4a 73 ld/jsonlint/src/Seld/JsonLint/Js
64c0 6f 6e 50 61 72 73 65 72 2e 70 68 70 93 31 00 00 36 6b 60 56 93 31 00 00 9d 50 02 a6 b6 01 00 00 onParser.php.1..6k`V.1...P......
64e0 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 ....0...vendor/seld/jsonlint/src
6500 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4c 65 78 65 72 2e 70 68 70 07 0f 00 00 36 6b 60 56 /Seld/JsonLint/Lexer.php....6k`V
6520 07 0f 00 00 89 84 6d 21 b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f ......m!........;...vendor/seld/
6540 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 69 jsonlint/src/Seld/JsonLint/Parsi
6560 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1e 01 00 00 36 6b 60 56 1e 01 00 00 89 b2 10 f1 b6 ngException.php....6k`V.........
6580 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f .......4...vendor/seld/jsonlint/
65a0 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e src/Seld/JsonLint/Undefined.php>
65c0 00 00 00 36 6b 60 56 3e 00 00 00 ff 71 9f 9f b6 01 00 00 00 00 00 00 1e 00 00 00 76 65 6e 64 6f ...6k`V>....q..............vendo
65e0 72 2f 73 65 6c 64 2f 63 6c 69 2d 70 72 6f 6d 70 74 2f 4c 49 43 45 4e 53 45 22 04 00 00 36 6b 60 r/seld/cli-prompt/LICENSE"...6k`
6600 56 22 04 00 00 88 f1 3f 65 b6 01 00 00 00 00 00 00 26 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 V".....?e........&...vendor/seld
6620 2f 63 6c 69 2d 70 72 6f 6d 70 74 2f 72 65 73 2f 65 78 61 6d 70 6c 65 2e 70 68 70 27 01 00 00 36 /cli-prompt/res/example.php'...6
6640 6b 60 56 27 01 00 00 49 1c 05 a3 b6 01 00 00 00 00 00 00 28 00 00 00 76 65 6e 64 6f 72 2f 73 65 k`V'...I...........(...vendor/se
6660 6c 64 2f 63 6c 69 2d 70 72 6f 6d 70 74 2f 73 72 63 2f 43 6c 69 50 72 6f 6d 70 74 2e 70 68 70 07 ld/cli-prompt/src/CliPrompt.php.
6680 06 00 00 36 6b 60 56 07 06 00 00 ad e9 99 76 b6 01 00 00 00 00 00 00 28 00 00 00 76 65 6e 64 6f ...6k`V.......v........(...vendo
66a0 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 43 45 r/justinrainbow/json-schema/LICE
66c0 4e 53 45 f7 05 00 00 36 6b 60 56 f7 05 00 00 78 de 78 74 b6 01 00 00 00 00 00 00 54 00 00 00 76 NSE....6k`V....x.xt........T...v
66e0 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/
6700 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6c 6c 65 src/JsonSchema/Constraints/Colle
6720 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 1e 09 00 00 36 6b 60 56 1e 09 00 00 a8 ctionConstraint.php....6k`V.....
6740 d6 0a a8 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e ...........J...vendor/justinrain
6760 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 bow/json-schema/src/JsonSchema/C
6780 6f 6e 73 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 36 6b 60 onstraints/Constraint.php....6k`
67a0 56 89 0e 00 00 21 ca 66 b9 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 V....!.f.........S...vendor/just
67c0 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 inrainbow/json-schema/src/JsonSc
67e0 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 hema/Constraints/ConstraintInter
6800 66 61 63 65 2e 70 68 70 4e 01 00 00 36 6b 60 56 4e 01 00 00 f8 c6 4d 79 b6 01 00 00 00 00 00 00 face.phpN...6k`VN.....My........
6820 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 73 6f 6e 2d 73 63 N...vendor/justinrainbow/json-sc
6840 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f hema/src/JsonSchema/Constraints/
6860 45 6e 75 6d 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 4f 02 00 00 36 6b 60 56 4f 02 00 00 04 20 EnumConstraint.phpO...6k`VO.....
6880 da 22 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 61 69 6e 62 ."........P...vendor/justinrainb
68a0 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f ow/json-schema/src/JsonSchema/Co
68c0 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 2e 70 68 70 ae 0d nstraints/FormatConstraint.php..
68e0 00 00 36 6b 60 56 ae 0d 00 00 9d 27 ae bb b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 ..6k`V.....'..........P...vendor
6900 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
6920 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d 62 65 72 43 6f 6e 73 sonSchema/Constraints/NumberCons
6940 74 72 61 69 6e 74 2e 70 68 70 b5 08 00 00 36 6b 60 56 b5 08 00 00 40 f0 11 1f b6 01 00 00 00 00 traint.php....6k`V....@.........
6960 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 6a 73 6f 6e 2d ..P...vendor/justinrainbow/json-
6980 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 schema/src/JsonSchema/Constraint
69a0 73 2f 4f 62 6a 65 63 74 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 eb 0a 00 00 36 6b 60 56 eb 0a s/ObjectConstraint.php....6k`V..
69c0 00 00 cc 2e 23 e4 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 ....#.........P...vendor/justinr
69e0 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
6a00 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 69 6e 74 2e 70 a/Constraints/SchemaConstraint.p
6a20 68 70 20 02 00 00 36 6b 60 56 20 02 00 00 c8 cc d5 e2 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 hp....6k`V................P...ve
6a40 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
6a60 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 53 74 72 69 6e 67 rc/JsonSchema/Constraints/String
6a80 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 a9 03 00 00 36 6b 60 56 a9 03 00 00 18 5e af 52 b6 01 Constraint.php....6k`V.....^.R..
6aa0 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
6ac0 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
6ae0 61 69 6e 74 73 2f 54 79 70 65 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 7f 08 00 00 36 6b 60 56 aints/TypeConstraint.php....6k`V
6b00 7f 08 00 00 f7 1c b3 bc b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 ................S...vendor/justi
6b20 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
6b40 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 ema/Constraints/UndefinedConstra
6b60 69 6e 74 2e 70 68 70 a2 17 00 00 36 6b 60 56 a2 17 00 00 f2 ed d7 ae b6 01 00 00 00 00 00 00 56 int.php....6k`V................V
6b80 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
6ba0 65 6d 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 ema/src/JsonSchema/Exception/Inv
6bc0 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 76 00 00 00 36 6b 60 alidArgumentException.phpv...6k`
6be0 56 76 00 00 00 ac 20 ab 22 b6 01 00 00 00 00 00 00 5d 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 Vv......"........]...vendor/just
6c00 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 inrainbow/json-schema/src/JsonSc
6c20 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 hema/Exception/InvalidSchemaMedi
6c40 61 54 79 70 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 76 00 00 00 36 6b 60 56 76 00 00 00 02 8a aTypeException.phpv...6k`Vv.....
6c60 43 d3 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 C.........W...vendor/justinrainb
6c80 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
6ca0 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 53 6f 75 72 63 65 55 72 69 45 78 63 65 70 74 69 6f ception/InvalidSourceUriExceptio
6cc0 6e 2e 70 68 70 77 00 00 00 36 6b 60 56 77 00 00 00 4e 2d f2 5b b6 01 00 00 00 00 00 00 53 00 00 n.phpw...6k`Vw...N-.[........S..
6ce0 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
6d00 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 4a 73 6f 6e 44 a/src/JsonSchema/Exception/JsonD
6d20 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 de 02 00 00 36 6b 60 56 de 02 00 00 ecodingException.php....6k`V....
6d40 86 be a9 91 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 ............W...vendor/justinrai
6d60 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/
6d80 45 78 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 Exception/ResourceNotFoundExcept
6da0 69 6f 6e 2e 70 68 70 6f 00 00 00 36 6b 60 56 6f 00 00 00 c6 24 22 c5 b6 01 00 00 00 00 00 00 52 ion.phpo...6k`Vo....$".........R
6dc0 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
6de0 65 6d 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 55 72 69 ema/src/JsonSchema/Exception/Uri
6e00 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6a 00 00 00 36 6b 60 56 6a 00 00 ResolverException.phpj...6k`Vj..
6e20 00 53 d3 c7 b3 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 .S...........?...vendor/justinra
6e40 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 inbow/json-schema/src/JsonSchema
6e60 2f 52 65 66 52 65 73 6f 6c 76 65 72 2e 70 68 70 c0 0d 00 00 36 6b 60 56 c0 0d 00 00 00 63 ab 0f /RefResolver.php....6k`V.....c..
6e80 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 77 ........T...vendor/justinrainbow
6ea0 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 2f /json-schema/src/JsonSchema/Uri/
6ec0 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 70 Retrievers/AbstractRetriever.php
6ee0 dc 00 00 00 36 6b 60 56 dc 00 00 00 1b 5d 6a 1c b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 ....6k`V.....]j.........G...vend
6f00 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
6f20 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 72 6c 2e /JsonSchema/Uri/Retrievers/Curl.
6f40 70 68 70 74 04 00 00 36 6b 60 56 74 04 00 00 49 b7 fd 00 b6 01 00 00 00 00 00 00 52 00 00 00 76 phpt...6k`Vt...I...........R...v
6f60 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/
6f80 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 46 69 src/JsonSchema/Uri/Retrievers/Fi
6fa0 6c 65 47 65 74 43 6f 6e 74 65 6e 74 73 2e 70 68 70 62 05 00 00 36 6b 60 56 62 05 00 00 57 18 fd leGetContents.phpb...6k`Vb...W..
6fc0 c1 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f .........R...vendor/justinrainbo
6fe0 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
7000 2f 52 65 74 72 69 65 76 65 72 73 2f 50 72 65 64 65 66 69 6e 65 64 41 72 72 61 79 2e 70 68 70 2a /Retrievers/PredefinedArray.php*
7020 02 00 00 36 6b 60 56 2a 02 00 00 2d 33 ff 08 b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f ...6k`V*...-3..........X...vendo
7040 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f r/justinrainbow/json-schema/src/
7060 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 55 72 69 52 65 74 JsonSchema/Uri/Retrievers/UriRet
7080 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a9 00 00 00 36 6b 60 56 a9 00 00 00 06 rieverInterface.php....6k`V.....
70a0 03 43 4f 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 .CO........C...vendor/justinrain
70c0 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 55 bow/json-schema/src/JsonSchema/U
70e0 72 69 2f 55 72 69 52 65 73 6f 6c 76 65 72 2e 70 68 70 52 09 00 00 36 6b 60 56 52 09 00 00 70 ff ri/UriResolver.phpR...6k`VR...p.
7100 69 31 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 i1........D...vendor/justinrainb
7120 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
7140 69 2f 55 72 69 52 65 74 72 69 65 76 65 72 2e 70 68 70 61 10 00 00 36 6b 60 56 61 10 00 00 be 2c i/UriRetriever.phpa...6k`Va....,
7160 ce 97 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 6e 62 ..........=...vendor/justinrainb
7180 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 56 61 ow/json-schema/src/JsonSchema/Va
71a0 6c 69 64 61 74 6f 72 2e 70 68 70 e6 01 00 00 36 6b 60 56 e6 01 00 00 1b 2c 75 c2 b6 01 00 00 00 lidator.php....6k`V.....,u......
71c0 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 70 64 78 2d 6c 69 63 65 ...%...vendor/composer/spdx-lice
71e0 6e 73 65 73 2f 4c 49 43 45 4e 53 45 1c 04 00 00 36 6b 60 56 1c 04 00 00 06 42 68 ed b6 01 00 00 nses/LICENSE....6k`V.....Bh.....
7200 00 00 00 00 32 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 70 64 78 2d 6c 69 63 ....2...vendor/composer/spdx-lic
7220 65 6e 73 65 73 2f 73 72 63 2f 53 70 64 78 4c 69 63 65 6e 73 65 73 2e 70 68 70 e5 11 00 00 36 6b enses/src/SpdxLicenses.php....6k
7240 60 56 e5 11 00 00 3d 0e d8 37 b6 01 00 00 00 00 00 00 1e 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d `V....=..7............vendor/com
7260 70 6f 73 65 72 2f 73 65 6d 76 65 72 2f 4c 49 43 45 4e 53 45 1c 04 00 00 36 6b 60 56 1c 04 00 00 poser/semver/LICENSE....6k`V....
7280 06 42 68 ed b6 01 00 00 00 00 00 00 29 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f .Bh.........)...vendor/composer/
72a0 73 65 6d 76 65 72 2f 73 72 63 2f 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 02 04 00 00 36 6b 60 semver/src/Comparator.php....6k`
72c0 56 02 04 00 00 77 6c 83 ef b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 V....wl..........<...vendor/comp
72e0 6f 73 65 72 2f 73 65 6d 76 65 72 2f 73 72 63 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 41 62 73 74 72 oser/semver/src/Constraint/Abstr
7300 61 63 74 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 d7 02 00 00 36 6b 60 56 d7 02 00 00 f5 ee 3e actConstraint.php....6k`V......>
7320 8e b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 65 6d .........4...vendor/composer/sem
7340 76 65 72 2f 73 72 63 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 ver/src/Constraint/Constraint.ph
7360 70 aa 0c 00 00 36 6b 60 56 aa 0c 00 00 c7 4f 37 b2 b6 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e p....6k`V.....O7.........=...ven
7380 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 65 6d 76 65 72 2f 73 72 63 2f 43 6f 6e 73 74 72 61 69 dor/composer/semver/src/Constrai
73a0 6e 74 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 df 00 00 00 36 6b nt/ConstraintInterface.php....6k
73c0 60 56 df 00 00 00 30 43 2c 87 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d `V....0C,.........9...vendor/com
73e0 70 6f 73 65 72 2f 73 65 6d 76 65 72 2f 73 72 63 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 45 6d 70 74 poser/semver/src/Constraint/Empt
7400 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 e9 01 00 00 36 6b 60 56 e9 01 00 00 21 2d d8 99 b6 yConstraint.php....6k`V....!-...
7420 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 65 6d 76 65 .......9...vendor/composer/semve
7440 72 2f 73 72 63 2f 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 r/src/Constraint/MultiConstraint
7460 2e 70 68 70 66 04 00 00 36 6b 60 56 66 04 00 00 44 f0 ec 3e b6 01 00 00 00 00 00 00 25 00 00 00 .phpf...6k`Vf...D..>........%...
7480 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 65 6d 76 65 72 2f 73 72 63 2f 53 65 6d 76 65 vendor/composer/semver/src/Semve
74a0 72 2e 70 68 70 76 06 00 00 36 6b 60 56 76 06 00 00 8b d7 c8 9b b6 01 00 00 00 00 00 00 2c 00 00 r.phpv...6k`Vv...............,..
74c0 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 73 65 6d 76 65 72 2f 73 72 63 2f 56 65 72 73 .vendor/composer/semver/src/Vers
74e0 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 3c 28 00 00 36 6b 60 56 3c 28 00 00 88 89 53 78 b6 01 00 ionParser.php<(..6k`V<(....Sx...
7500 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 87 00 00 00 .........vendor/autoload.php....
7520 36 6b 60 56 87 00 00 00 cc 28 02 40 b6 01 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 63 6k`V.....(.@........'...vendor/c
7540 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 64 omposer/autoload_namespaces.phpd
7560 00 00 00 36 6b 60 56 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 ...6k`Vd...Z..H........!...vendo
7580 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 7b 03 00 00 r/composer/autoload_psr4.php{...
75a0 36 6b 60 56 7b 03 00 00 dd 3f 76 fa b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 6k`V{....?v.........%...vendor/c
75c0 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..
75e0 00 36 6b 60 56 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 .6k`Vd...Z..H........!...vendor/
7600 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 ed 03 00 00 36 6b composer/autoload_real.php....6k
7620 60 56 ed 03 00 00 5e e8 23 08 b6 01 00 00 00 00 00 00 1f 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d `V....^.#.............vendor/com
7640 70 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 42 16 00 00 36 6b 60 56 42 16 00 poser/ClassLoader.phpB...6k`VB..
7660 00 e9 94 ed 18 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 .................bin/composerl..
7680 00 36 6b 60 56 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 .6k`Vl...................LICENSE
76a0 33 04 00 00 36 6b 60 56 33 04 00 00 66 fd de 58 b6 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 3...6k`V3...f..X........<?php...
76c0 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 6f .........namespace.Composer\Auto
76e0 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 3b 0a 75 73 65 20 load;..use.Composer\Config;.use.
7700 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 Composer\EventDispatcher\EventDi
7720 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 spatcher;.use.Composer\Installer
7740 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 \InstallationManager;.use.Compos
7760 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\
7780 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 73 Package\AliasPackage;.use.Compos
77a0 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
77c0 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
77e0 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\
7800 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 Util\Filesystem;.use.Composer\Sc
7820 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 ript\ScriptEvents;......class.Au
7840 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 74 65 20 24 65 76 toloadGenerator.{....private.$ev
7860 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 69 6f 3b 0a entDispatcher;.....private.$io;.
7880 0a 0a 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 0a 0a 0a ....private.$devMode.=.false;...
78a0 0a 0a 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 ..private.$classMapAuthoritative
78c0 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 75 6e 53 63 72 69 70 74 .=.false;.....private.$runScript
78e0 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f s.=.false;..public.function.__co
7900 6e 73 74 72 75 63 74 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 nstruct(EventDispatcher.$eventDi
7920 73 70 61 74 63 68 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c spatcher,.IOInterface.$io.=.null
7940 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 65 76 ).{.$this->eventDispatcher.=.$ev
7960 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a entDispatcher;.$this->io.=.$io;.
7980 7d 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
79a0 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.
79c0 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 65 76 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 =.(boolean).$devMode;.}........p
79e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 ublic.function.setClassMapAuthor
7a00 69 74 61 74 69 76 65 28 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a itative($classMapAuthoritative).
7a20 7b 0a 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 65 20 3d {.$this->classMapAuthoritative.=
7a40 20 28 62 6f 6f 6c 65 61 6e 29 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 .(boolean).$classMapAuthoritativ
7a60 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 75 e;.}.......public.function.setRu
7a80 6e 53 63 72 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 nScripts($runScripts.=.true).{.$
7aa0 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 72 75 this->runScripts.=.(boolean).$ru
7ac0 6e 53 63 72 69 70 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d nScripts;.}..public.function.dum
7ae0 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 6f 73 p(Config.$config,.InstalledRepos
7b00 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 6b 61 itoryInterface.$localRepo,.Packa
7b20 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 61 6c geInterface.$mainPackage,.Instal
7b40 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 lationManager.$installationManag
7b60 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 67 65 er,.$targetDir,.$scanPsr0Package
7b80 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 69 66 20 28 24 s.=.false,.$suffix.=.'').{.if.($
7ba0 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 65 29 20 7b 0a 0a this->classMapAuthoritative).{..
7bc0 20 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 69 66 20 .$scanPsr0Packages.=.true;.}.if.
7be0 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 ($this->runScripts).{.$this->eve
7c00 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 69 70 74 28 53 63 72 ntDispatcher->dispatchScript(Scr
7c20 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 55 4d 50 2c 20 24 74 iptEvents::PRE_AUTOLOAD_DUMP,.$t
7c40 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 72 61 79 28 0a 27 6f his->devMode,.array(),.array(.'o
7c60 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 73 72 30 50 61 63 6b ptimize'.=>.(bool).$scanPsr0Pack
7c80 61 67 65 73 2c 0a 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 ages,.));.}..$filesystem.=.new.F
7ca0 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 ilesystem();.$filesystem->ensure
7cc0 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 DirectoryExists($config->get('ve
7ce0 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 ndor-dir'));.$basePath.=.$filesy
7d00 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 65 61 6c 70 61 74 68 28 67 65 74 stem->normalizePath(realpath(get
7d20 63 77 64 28 29 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 cwd()));.$vendorPath.=.$filesyst
7d40 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 em->normalizePath(realpath($conf
7d60 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 3b 0a 24 75 73 65 47 6c 6f ig->get('vendor-dir')));.$useGlo
7d80 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 28 62 6f 6f 6c 29 20 24 63 6f 6e 66 69 67 2d balIncludePath.=.(bool).$config-
7da0 3e 67 65 74 28 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 24 70 72 65 70 65 >get('use-include-path');.$prepe
7dc0 6e 64 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 65 ndAutoloader.=.$config->get('pre
7de0 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 27 66 pend-autoloader').===.false.?.'f
7e00 61 6c 73 65 27 20 3a 20 27 74 72 75 65 27 3b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 76 65 alse'.:.'true';.$targetDir.=.$ve
7e20 6e 64 6f 72 50 61 74 68 2e 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 3b 0a 24 66 69 6c 65 73 79 ndorPath.'/'.$targetDir;.$filesy
7e40 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 stem->ensureDirectoryExists($tar
7e60 67 65 74 44 69 72 29 3b 0a 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 20 3d 20 24 66 69 6c getDir);..$vendorPathCode.=.$fil
7e80 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 72 65 esystem->findShortestPathCode(re
7ea0 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c alpath($targetDir),.$vendorPath,
7ec0 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 20 3d 20 73 74 72 5f .true);.$vendorPathCode52.=.str_
7ee0 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 64 69 72 6e 61 6d 65 28 5f 5f 46 49 replace('__DIR__',.'dirname(__FI
7f00 4c 45 5f 5f 29 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 29 3b 0a 24 76 65 6e 64 6f LE__)',.$vendorPathCode);.$vendo
7f20 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 rPathToTargetDirCode.=.$filesyst
7f40 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 em->findShortestPathCode($vendor
7f60 50 61 74 68 2c 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 74 72 75 65 Path,.realpath($targetDir),.true
7f80 29 3b 0a 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 );..$appBaseDirCode.=.$filesyste
7fa0 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 m->findShortestPathCode($vendorP
7fc0 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 42 61 73 65 44 ath,.$basePath,.true);.$appBaseD
7fe0 69 72 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 irCode.=.str_replace('__DIR__',.
8000 27 24 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 3b 0a '$vendorDir',.$appBaseDirCode);.
8020 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a .$namespacesFile.=.<<<EOF.<?php.
8040 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 20 40 67 65 6e .//.autoload_namespaces.php.@gen
8060 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 erated.by.Composer..\$vendorDir.
8080 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d =.$vendorPathCode52;.\$baseDir.=
80a0 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 .$appBaseDirCode;..return.array(
80c0 0a 0a 45 4f 46 3b 0a 0a 24 70 73 72 34 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 ..EOF;..$psr4File.=.<<<EOF.<?php
80e0 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 ..//.autoload_psr4.php.@generate
8100 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 d.by.Composer..\$vendorDir.=.$ve
8120 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 ndorPathCode52;.\$baseDir.=.$app
8140 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 BaseDirCode;..return.array(..EOF
8160 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 ;....$packageMap.=.$this->buildP
8180 61 63 6b 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 ackageMap($installationManager,.
81a0 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e $mainPackage,.$localRepo->getCan
81c0 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 onicalPackages());.$autoloads.=.
81e0 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 $this->parseAutoloads($packageMa
8200 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 61 p,.$mainPackage);....foreach.($a
8220 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 utoloads['psr-0'].as.$namespace.
8240 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 20 3d 20 61 72 =>.$paths).{.$exportedPaths.=.ar
8260 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 ray();.foreach.($paths.as.$path)
8280 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 .{.$exportedPaths[].=.$this->get
82a0 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c PathCode($filesystem,.$basePath,
82c0 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f 72 74 65 .$vendorPath,.$path);.}.$exporte
82e0 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 2c dPrefix.=.var_export($namespace,
8300 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 .true);.$namespacesFile..=."....
8320 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 6e 61 6d 65 73 70 61 63 65 $exportedPrefix.=>.";.$namespace
8340 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 sFile..=."array(".implode(',.',.
8360 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 6e 61 6d 65 73 $exportedPaths)."),\n";.}.$names
8380 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 pacesFile..=.");\n";....foreach.
83a0 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 ($autoloads['psr-4'].as.$namespa
83c0 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 20 3d ce.=>.$paths).{.$exportedPaths.=
83e0 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 70 61 .array();.foreach.($paths.as.$pa
8400 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e th).{.$exportedPaths[].=.$this->
8420 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 getPathCode($filesystem,.$basePa
8440 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f th,.$vendorPath,.$path);.}.$expo
8460 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 rtedPrefix.=.var_export($namespa
8480 63 65 2c 20 74 72 75 65 29 3b 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 24 65 78 ce,.true);.$psr4File..=."....$ex
84a0 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 portedPrefix.=>.";.$psr4File..=.
84c0 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 64 "array(".implode(',.',.$exported
84e0 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 22 29 Paths)."),\n";.}.$psr4File..=.")
8500 3b 5c 6e 22 3b 0a 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f ;\n";..$classmapFile.=.<<<EOF.<?
8520 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 20 40 67 php..//.autoload_classmap.php.@g
8540 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 enerated.by.Composer..\$vendorDi
8560 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 r.=.$vendorPathCode52;.\$baseDir
8580 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 .=.$appBaseDirCode;..return.arra
85a0 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 3d 20 6e y(..EOF;....$targetDirLoader.=.n
85c0 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 ull;.$mainAutoload.=.$mainPackag
85e0 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 6e 50 61 63 6b 61 e->getAutoload();.if.($mainPacka
8600 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d 70 74 79 28 24 6d 61 ge->getTargetDir().&&.!empty($ma
8620 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 24 6c 65 76 65 6c 73 20 inAutoload['psr-0'])).{.$levels.
8640 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 66 69 6c 65 73 79 73 74 65 6d =.count(explode('/',.$filesystem
8660 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 ->normalizePath($mainPackage->ge
8680 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 20 3d 20 69 6d 70 tTargetDir())));.$prefixes.=.imp
86a0 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 lode(',.',.array_map(function.($
86c0 70 72 65 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 72 65 prefix).{.return.var_export($pre
86e0 66 69 78 2c 20 74 72 75 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6d 61 69 6e 41 fix,.true);.},.array_keys($mainA
8700 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 65 44 69 72 46 72 6f utoload['psr-0'])));.$baseDirFro
8720 6d 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 mTargetDirCode.=.$filesystem->fi
8740 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 74 61 72 67 65 74 44 69 72 2c 20 24 ndShortestPathCode($targetDir,.$
8760 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 basePath,.true);..$targetDirLoad
8780 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 er.=.<<<EOF......public.static.f
87a0 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a unction.autoload(\$class).....{.
87c0 20 20 20 20 20 20 20 20 5c 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 72 6f 6d 54 61 72 67 ........\$dir.=.$baseDirFromTarg
87e0 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 5c 24 70 72 65 66 69 etDirCode...'/';.........\$prefi
8800 78 65 73 20 3d 20 61 72 72 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 20 20 20 20 20 20 20 xes.=.array($prefixes);.........
8820 66 6f 72 65 61 63 68 20 28 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 70 72 65 66 69 78 29 foreach.(\$prefixes.as.\$prefix)
8840 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 .{.............if.(0.!==.strpos(
8860 5c 24 63 6c 61 73 73 2c 20 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 \$class,.\$prefix)).{...........
8880 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ......continue;.............}...
88a0 20 20 20 20 20 20 20 20 20 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 2e 20 69 6d 70 6c 6f ..........\$path.=.\$dir...implo
88c0 64 65 28 27 2f 27 2c 20 61 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f 64 65 28 27 5c 5c 5c de('/',.array_slice(explode('\\\
88e0 5c 27 2c 20 5c 24 63 6c 61 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 2e 70 68 70 27 3b 0a \',.\$class),.$levels)).'.php';.
8900 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d 20 73 74 72 65 61 6d ............if.(!\$path.=.stream
8920 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 61 74 68 29 29 20 7b _resolve_include_path(\$path)).{
8940 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 .................return.false;..
8960 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 ...........}.............require
8980 20 5c 24 70 61 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 .\$path;..............return.tru
89a0 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a 7d 0a 0a 24 62 6c 61 e;.........}.....}..EOF;.}..$bla
89c0 63 6b 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 61 75 74 6f 6c cklist.=.null;.if.(!empty($autol
89e0 6f 61 64 73 5b 27 65 78 63 6c 75 64 65 2d 66 72 6f 6d 2d 63 6c 61 73 73 6d 61 70 27 5d 29 29 20 oads['exclude-from-classmap'])).
8a00 7b 0a 24 62 6c 61 63 6b 6c 69 73 74 20 3d 20 27 7b 28 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 7c {.$blacklist.=.'{('...implode('|
8a20 27 2c 20 24 61 75 74 6f 6c 6f 61 64 73 5b 27 65 78 63 6c 75 64 65 2d 66 72 6f 6d 2d 63 6c 61 73 ',.$autoloads['exclude-from-clas
8a40 73 6d 61 70 27 5d 29 20 2e 20 27 29 7d 27 3b 0a 7d 0a 0a 0a 20 24 63 6c 61 73 73 4d 61 70 20 3d smap'])...')}';.}....$classMap.=
8a60 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 29 .array();.if.($scanPsr0Packages)
8a80 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 54 6f 53 63 61 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a .{.$namespacesToScan.=.array();.
8aa0 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 70 73 72 2d 30 27 2c 20 27 70 73 72 2d ...foreach.(array('psr-0',.'psr-
8ac0 34 27 29 20 61 73 20 24 70 73 72 54 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 4').as.$psrType).{.foreach.($aut
8ae0 6f 6c 6f 61 64 73 5b 24 70 73 72 54 79 70 65 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d oloads[$psrType].as.$namespace.=
8b00 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 54 6f 53 63 61 6e 5b 24 6e >.$paths).{.$namespacesToScan[$n
8b20 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 61 72 72 61 79 28 27 70 61 74 68 73 27 20 3d 3e 20 24 amespace][].=.array('paths'.=>.$
8b40 70 61 74 68 73 2c 20 27 74 79 70 65 27 20 3d 3e 20 24 70 73 72 54 79 70 65 29 3b 0a 7d 0a 7d 0a paths,.'type'.=>.$psrType);.}.}.
8b60 0a 6b 72 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 73 54 6f 53 63 61 6e 29 3b 0a 0a 66 6f 72 .krsort($namespacesToScan);..for
8b80 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 73 54 6f 53 63 61 6e 20 61 73 20 24 6e 61 6d 65 each.($namespacesToScan.as.$name
8ba0 73 70 61 63 65 20 3d 3e 20 24 67 72 6f 75 70 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 67 72 space.=>.$groups).{.foreach.($gr
8bc0 6f 75 70 73 20 61 73 20 24 67 72 6f 75 70 29 20 7b 0a 24 70 73 72 54 79 70 65 20 3d 20 24 67 72 oups.as.$group).{.$psrType.=.$gr
8be0 6f 75 70 5b 27 74 79 70 65 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 67 72 6f 75 70 5b 27 70 61 oup['type'];.foreach.($group['pa
8c00 74 68 73 27 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 24 64 69 72 20 3d 20 24 66 69 6c 65 73 79 73 ths'].as.$dir).{.$dir.=.$filesys
8c20 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e tem->normalizePath($filesystem->
8c40 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 64 69 72 29 20 3f 20 24 64 69 72 20 3a 20 24 62 isAbsolutePath($dir).?.$dir.:.$b
8c60 61 73 65 50 61 74 68 2e 27 2f 27 2e 24 64 69 72 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 asePath.'/'.$dir);.if.(!is_dir($
8c80 64 69 72 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 65 46 dir)).{.continue;.}..$namespaceF
8ca0 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
8cc0 20 3a 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 24 63 6c 61 73 73 4d 61 70 20 3d 20 24 74 68 69 73 .:.$namespace;.$classMap.=.$this
8ce0 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 ->addClassMapCode($filesystem,.$
8d00 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 64 69 72 2c 20 24 62 6c basePath,.$vendorPath,.$dir,.$bl
8d20 61 63 6b 6c 69 73 74 2c 20 24 6e 61 6d 65 73 70 61 63 65 46 69 6c 74 65 72 2c 20 24 63 6c 61 73 acklist,.$namespaceFilter,.$clas
8d40 73 4d 61 70 29 3b 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 6f sMap);.}.}.}.}..foreach.($autolo
8d60 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 24 63 6c 61 73 ads['classmap'].as.$dir).{.$clas
8d80 73 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 43 6f 64 65 28 24 66 sMap.=.$this->addClassMapCode($f
8da0 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
8dc0 68 2c 20 24 64 69 72 2c 20 24 62 6c 61 63 6b 6c 69 73 74 2c 20 6e 75 6c 6c 2c 20 24 63 6c 61 73 h,.$dir,.$blacklist,.null,.$clas
8de0 73 4d 61 70 29 3b 0a 7d 0a 0a 6b 73 6f 72 74 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 66 6f 72 65 sMap);.}..ksort($classMap);.fore
8e00 61 63 68 20 28 24 63 6c 61 73 73 4d 61 70 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 63 6f 64 ach.($classMap.as.$class.=>.$cod
8e20 65 29 20 7b 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 e).{.$classmapFile..=.'....'.var
8e40 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 2c 20 74 72 75 65 29 2e 27 20 3d 3e 20 27 2e 24 63 6f _export($class,.true).'.=>.'.$co
8e60 64 65 3b 0a 7d 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a de;.}.$classmapFile..=.");\n";..
8e80 69 66 20 28 21 24 73 75 66 66 69 78 29 20 7b 0a 69 66 20 28 21 24 63 6f 6e 66 69 67 2d 3e 67 65 if.(!$suffix).{.if.(!$config->ge
8ea0 74 28 27 61 75 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 27 29 20 26 26 20 69 73 5f 72 65 61 t('autoloader-suffix').&&.is_rea
8ec0 64 61 62 6c 65 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 dable($vendorPath.'/autoload.php
8ee0 27 29 29 20 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 ')).{.$content.=.file_get_conten
8f00 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 3b ts($vendorPath.'/autoload.php');
8f20 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f .if.(preg_match('{ComposerAutolo
8f40 61 64 65 72 49 6e 69 74 28 5b 5e 3a 5c 73 5d 2b 29 3a 3a 7d 27 2c 20 24 63 6f 6e 74 65 6e 74 2c aderInit([^:\s]+)::}',.$content,
8f60 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 73 75 66 66 69 78 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b .$match)).{.$suffix.=.$match[1];
8f80 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 73 75 66 66 69 78 29 20 7b 0a 24 73 75 66 66 69 78 20 3d 20 .}.}..if.(!$suffix).{.$suffix.=.
8fa0 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 61 75 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 27 $config->get('autoloader-suffix'
8fc0 29 20 3f 3a 20 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a ).?:.md5(uniqid('',.true));.}.}.
8fe0 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f .file_put_contents($targetDir.'/
9000 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 2c 20 24 6e 61 6d 65 73 autoload_namespaces.php',.$names
9020 70 61 63 65 73 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 pacesFile);.file_put_contents($t
9040 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 27 2c 20 24 argetDir.'/autoload_psr4.php',.$
9060 70 73 72 34 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 psr4File);.file_put_contents($ta
9080 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 rgetDir.'/autoload_classmap.php'
90a0 2c 20 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 ,.$classmapFile);.$includePathFi
90c0 6c 65 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 5f 70 61 lePath.=.$targetDir.'/include_pa
90e0 74 68 73 2e 70 68 70 27 3b 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 43 6f ths.php';.if.($includePathFileCo
9100 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 ntents.=.$this->getIncludePathsF
9120 69 6c 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 ile($packageMap,.$filesystem,.$b
9140 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 asePath,.$vendorPath,.$vendorPat
9160 68 43 6f 64 65 35 32 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 29 20 7b 0a 66 69 6c hCode52,.$appBaseDirCode)).{.fil
9180 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 50 e_put_contents($includePathFileP
91a0 61 74 68 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 43 6f 6e 74 65 6e 74 73 29 3b 0a ath,.$includePathFileContents);.
91c0 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 6e 63 6c 75 64 65 50 61 }.elseif.(file_exists($includePa
91e0 74 68 46 69 6c 65 50 61 74 68 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 69 6e 63 6c 75 64 65 50 61 thFilePath)).{.unlink($includePa
9200 74 68 46 69 6c 65 50 61 74 68 29 3b 0a 7d 0a 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 thFilePath);.}.$includeFilesFile
9220 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c Path.=.$targetDir.'/autoload_fil
9240 65 73 2e 70 68 70 27 3b 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 43 6f es.php';.if.($includeFilesFileCo
9260 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 6c 75 64 65 46 69 6c 65 73 46 ntents.=.$this->getIncludeFilesF
9280 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 79 ile($autoloads['files'],.$filesy
92a0 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 stem,.$basePath,.$vendorPath,.$v
92c0 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 65 endorPathCode52,.$appBaseDirCode
92e0 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 6e 63 6c 75 64 65 46 )).{.file_put_contents($includeF
9300 69 6c 65 73 46 69 6c 65 50 61 74 68 2c 20 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 43 ilesFilePath,.$includeFilesFileC
9320 6f 6e 74 65 6e 74 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 ontents);.}.elseif.(file_exists(
9340 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 50 61 74 68 29 29 20 7b 0a 75 6e 6c 69 6e 6b $includeFilesFilePath)).{.unlink
9360 28 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 50 61 74 68 29 3b 0a 7d 0a 66 69 6c 65 5f ($includeFilesFilePath);.}.file_
9380 70 75 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 74 6f 6c put_contents($vendorPath.'/autol
93a0 6f 61 64 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 oad.php',.$this->getAutoloadFile
93c0 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 24 73 75 ($vendorPathToTargetDirCode,.$su
93e0 66 66 69 78 29 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 ffix));.file_put_contents($targe
9400 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 2c 20 24 74 68 69 73 tDir.'/autoload_real.php',.$this
9420 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 74 72 75 65 2c 20 28 62 6f 6f ->getAutoloadRealFile(true,.(boo
9440 6c 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 43 6f 6e 74 65 6e 74 73 2c 20 24 74 61 l).$includePathFileContents,.$ta
9460 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 46 69 rgetDirLoader,.(bool).$includeFi
9480 6c 65 73 46 69 6c 65 43 6f 6e 74 65 6e 74 73 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 lesFileContents,.$vendorPathCode
94a0 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 ,.$appBaseDirCode,.$suffix,.$use
94c0 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c GlobalIncludePath,.$prependAutol
94e0 6f 61 64 65 72 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 61 66 65 43 6f 70 79 28 5f 5f 44 49 52 5f oader));..$this->safeCopy(__DIR_
9500 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 24 74 61 72 67 65 74 44 69 72 _.'/ClassLoader.php',.$targetDir
9520 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 29 3b 0a 24 74 68 69 73 2d 3e 73 61 66 .'/ClassLoader.php');.$this->saf
9540 65 43 6f 70 79 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 4c 49 43 45 4e 53 45 eCopy(__DIR__.'/../../../LICENSE
9560 27 2c 20 24 74 61 72 67 65 74 44 69 72 2e 27 2f 4c 49 43 45 4e 53 45 27 29 3b 0a 0a 69 66 20 28 ',.$targetDir.'/LICENSE');..if.(
9580 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e $this->runScripts).{.$this->even
95a0 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 tDispatcher->dispatchScript(Scri
95c0 70 74 45 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 20 24 74 ptEvents::POST_AUTOLOAD_DUMP,.$t
95e0 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 72 61 79 28 0a 27 6f his->devMode,.array(),.array(.'o
9600 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 73 72 30 50 61 63 6b ptimize'.=>.(bool).$scanPsr0Pack
9620 61 67 65 73 2c 0a 29 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 ages,.));.}.}..private.function.
9640 61 64 64 43 6c 61 73 73 4d 61 70 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 addClassMapCode($filesystem,.$ba
9660 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 64 69 72 2c 20 24 62 6c 61 63 sePath,.$vendorPath,.$dir,.$blac
9680 6b 6c 69 73 74 20 3d 20 6e 75 6c 6c 2c 20 24 6e 61 6d 65 73 70 61 63 65 46 69 6c 74 65 72 20 3d klist.=.null,.$namespaceFilter.=
96a0 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 .null,.array.$classMap.=.array()
96c0 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 43 6c 61 73 ).{.foreach.($this->generateClas
96e0 73 4d 61 70 28 24 64 69 72 2c 20 24 62 6c 61 63 6b 6c 69 73 74 2c 20 24 6e 61 6d 65 73 70 61 63 sMap($dir,.$blacklist,.$namespac
9700 65 46 69 6c 74 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 24 eFilter).as.$class.=>.$path).{.$
9720 70 61 74 68 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 pathCode.=.$this->getPathCode($f
9740 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
9760 68 2c 20 24 70 61 74 68 29 2e 22 2c 5c 6e 22 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6c 61 h,.$path).",\n";.if.(!isset($cla
9780 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 ssMap[$class])).{.$classMap[$cla
97a0 73 73 5d 20 3d 20 24 70 61 74 68 43 6f 64 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 ss].=.$pathCode;.}.elseif.($this
97c0 2d 3e 69 6f 20 26 26 20 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 21 3d 3d 20 24 70 ->io.&&.$classMap[$class].!==.$p
97e0 61 74 68 43 6f 64 65 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 athCode.&&.!preg_match('{/(test|
9800 66 69 78 74 75 72 65 7c 65 78 61 6d 70 6c 65 7c 73 74 75 62 29 73 3f 2f 7d 69 27 2c 20 73 74 72 fixture|example|stub)s?/}i',.str
9820 74 72 28 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 2e 27 20 27 2e 24 70 61 74 68 2c 20 tr($classMap[$class].'.'.$path,.
9840 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 '\\',.'/'))).{.$this->io->writeE
9860 72 72 6f 72 28 0a 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 41 6d 62 69 67 75 6f rror(.'<warning>Warning:.Ambiguo
9880 75 73 20 63 6c 61 73 73 20 72 65 73 6f 6c 75 74 69 6f 6e 2c 20 22 27 2e 24 63 6c 61 73 73 2e 27 us.class.resolution,."'.$class.'
98a0 22 27 2e 0a 27 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 62 6f 74 68 20 22 27 2e 73 74 72 5f 72 "'..'.was.found.in.both."'.str_r
98c0 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 5c 27 27 2c 20 eplace(array('$vendorDir...\'',.
98e0 22 27 2c 5c 6e 22 29 2c 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 27 27 29 2c "',\n"),.array($vendorPath,.''),
9900 20 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 2e 27 22 20 61 6e 64 20 22 27 2e 24 70 .$classMap[$class]).'".and."'.$p
9920 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 73 65 64 2e 3c ath.'",.the.first.will.be.used.<
9940 2f 77 61 72 6e 69 6e 67 3e 27 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 /warning>'.);.}.}..return.$class
9960 4d 61 70 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 Map;.}..private.function.generat
9980 65 43 6c 61 73 73 4d 61 70 28 24 64 69 72 2c 20 24 62 6c 61 63 6b 6c 69 73 74 20 3d 20 6e 75 6c eClassMap($dir,.$blacklist.=.nul
99a0 6c 2c 20 24 6e 61 6d 65 73 70 61 63 65 46 69 6c 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 l,.$namespaceFilter.=.null).{.re
99c0 74 75 72 6e 20 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 turn.ClassMapGenerator::createMa
99e0 70 28 24 64 69 72 2c 20 24 62 6c 61 63 6b 6c 69 73 74 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 p($dir,.$blacklist,.$this->io,.$
9a00 6e 61 6d 65 73 70 61 63 65 46 69 6c 74 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 namespaceFilter);.}..public.func
9a20 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 49 6e 73 74 61 6c 6c 61 74 69 6f tion.buildPackageMap(Installatio
9a40 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 50 nManager.$installationManager,.P
9a60 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 61 72 ackageInterface.$mainPackage,.ar
9a80 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 0a 20 24 70 61 63 6b 61 67 65 4d 61 70 20 3d ray.$packages).{...$packageMap.=
9aa0 20 61 72 72 61 79 28 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 27 27 29 29 3b .array(array($mainPackage,.''));
9ac0 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 ..foreach.($packages.as.$package
9ae0 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 41 6c 69 61 ).{.if.($package.instanceof.Alia
9b00 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 sPackage).{.continue;.}.$this->v
9b20 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 70 61 63 6b alidatePackage($package);..$pack
9b40 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 6b 61 67 65 2c 0a 24 69 6e 73 ageMap[].=.array(.$package,.$ins
9b60 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 tallationManager->getInstallPath
9b80 28 24 70 61 63 6b 61 67 65 29 2c 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 ($package),.);.}..return.$packag
9ba0 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e eMap;.}.......protected.function
9bc0 20 76 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 .validatePackage(PackageInterfac
9be0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 24 70 61 63 6b 61 e.$package).{.$autoload.=.$packa
9c00 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 61 ge->getAutoload();.if.(!empty($a
9c20 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 34 27 5d 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 70 utoload['psr-4']).&&.null.!==.$p
9c40 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 6e 61 6d 65 20 ackage->getTargetDir()).{.$name.
9c60 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 70 61 63 6b 61 67 65 2d =.$package->getName();.$package-
9c80 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 >getTargetDir();.throw.new.\Inva
9ca0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 50 53 52 2d 34 20 61 75 74 6f lidArgumentException("PSR-4.auto
9cc0 6c 6f 61 64 69 6e 67 20 69 73 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 loading.is.incompatible.with.the
9ce0 20 74 61 72 67 65 74 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2c 20 72 65 6d 6f 76 65 20 74 68 65 .target-dir.property,.remove.the
9d00 20 74 61 72 67 65 74 2d 64 69 72 20 69 6e 20 70 61 63 6b 61 67 65 20 27 24 6e 61 6d 65 27 2e 22 .target-dir.in.package.'$name'."
9d20 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 34 );.}.if.(!empty($autoload['psr-4
9d40 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 34 '])).{.foreach.($autoload['psr-4
9d60 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 69 66 20 '].as.$namespace.=>.$dirs).{.if.
9d80 28 24 6e 61 6d 65 73 70 61 63 65 20 21 3d 3d 20 27 27 20 26 26 20 27 5c 5c 27 20 21 3d 3d 20 73 ($namespace.!==.''.&&.'\\'.!==.s
9da0 75 62 73 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 2d 31 29 29 20 7b 0a 74 68 72 6f 77 20 6e ubstr($namespace,.-1)).{.throw.n
9dc0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 70 73 ew.\InvalidArgumentException("ps
9de0 72 2d 34 20 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e r-4.namespaces.must.end.with.a.n
9e00 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2c 20 27 24 6e 61 6d 65 73 70 61 63 65 27 amespace.separator,.'$namespace'
9e20 20 64 6f 65 73 20 6e 6f 74 2c 20 75 73 65 20 27 24 6e 61 6d 65 73 70 61 63 65 5c 5c 27 2e 22 29 .does.not,.use.'$namespace\\'.")
9e40 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ;.}.}.}.}.........public.functio
9e60 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d n.parseAutoloads(array.$packageM
9e80 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 ap,.PackageInterface.$mainPackag
9ea0 65 29 0a 7b 0a 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 5f 73 68 69 e).{.$mainPackageMap.=.array_shi
9ec0 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d ft($packageMap);.$sortedPackageM
9ee0 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 24 70 61 63 6b ap.=.$this->sortPackageMap($pack
9f00 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 24 ageMap);.$sortedPackageMap[].=.$
9f20 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 70 mainPackageMap;.array_unshift($p
9f40 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 29 3b 0a 0a 24 70 ackageMap,.$mainPackageMap);..$p
9f60 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 sr0.=.$this->parseAutoloadsType(
9f80 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 $packageMap,.'psr-0',.$mainPacka
9fa0 67 65 29 3b 0a 24 70 73 72 34 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 ge);.$psr4.=.$this->parseAutoloa
9fc0 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 34 27 2c 20 24 6d 61 dsType($packageMap,.'psr-4',.$ma
9fe0 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 20 3d 20 24 74 68 69 73 2d 3e 70 inPackage);.$classmap.=.$this->p
a000 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 arseAutoloadsType(array_reverse(
a020 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 29 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 $sortedPackageMap),.'classmap',.
a040 24 6d 61 69 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 $mainPackage);.$files.=.$this->p
a060 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 arseAutoloadsType($sortedPackage
a080 4d 61 70 2c 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 24 65 78 Map,.'files',.$mainPackage);.$ex
a0a0 63 6c 75 64 65 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 clude.=.$this->parseAutoloadsTyp
a0c0 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 65 78 63 6c 75 64 65 2d 66 72 e($sortedPackageMap,.'exclude-fr
a0e0 6f 6d 2d 63 6c 61 73 73 6d 61 70 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 6b 72 om-classmap',.$mainPackage);..kr
a100 73 6f 72 74 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 sort($psr0);.krsort($psr4);..ret
a120 75 72 6e 20 61 72 72 61 79 28 0a 27 70 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 0a 27 70 73 urn.array(.'psr-0'.=>.$psr0,.'ps
a140 72 2d 34 27 20 3d 3e 20 24 70 73 72 34 2c 0a 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 24 63 6c r-4'.=>.$psr4,.'classmap'.=>.$cl
a160 61 73 73 6d 61 70 2c 0a 27 66 69 6c 65 73 27 20 3d 3e 20 24 66 69 6c 65 73 2c 0a 27 65 78 63 6c assmap,.'files'.=>.$files,.'excl
a180 75 64 65 2d 66 72 6f 6d 2d 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 24 65 78 63 6c 75 64 65 2c 0a ude-from-classmap'.=>.$exclude,.
a1a0 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 63 72 65 61 );.}........public.function.crea
a1c0 74 65 4c 6f 61 64 65 72 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 73 29 0a 7b 0a 24 6c 6f teLoader(array.$autoloads).{.$lo
a1e0 61 64 65 72 20 3d 20 6e 65 77 20 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 0a 69 66 20 28 69 ader.=.new.ClassLoader();..if.(i
a200 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 66 6f 72 sset($autoloads['psr-0'])).{.for
a220 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 each.($autoloads['psr-0'].as.$na
a240 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 mespace.=>.$path).{.$loader->add
a260 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 ($namespace,.$path);.}.}..if.(is
a280 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 34 27 5d 29 29 20 7b 0a 66 6f 72 65 set($autoloads['psr-4'])).{.fore
a2a0 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 61 6d ach.($autoloads['psr-4'].as.$nam
a2c0 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 50 espace.=>.$path).{.$loader->addP
a2e0 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 0a 7d 0a 0a 69 66 20 sr4($namespace,.$path);.}.}..if.
a300 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 29 29 20 (isset($autoloads['classmap'])).
a320 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 {.foreach.($autoloads['classmap'
a340 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 ].as.$dir).{.try.{.$loader->addC
a360 6c 61 73 73 4d 61 70 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 43 6c 61 73 73 4d 61 70 28 lassMap($this->generateClassMap(
a380 24 64 69 72 29 29 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 $dir));.}.catch.(\RuntimeExcepti
a3a0 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 on.$e).{.$this->io->writeError('
a3c0 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 77 <warning>'.$e->getMessage().'</w
a3e0 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 arning>');.}.}.}..return.$loader
a400 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 49 6e 63 6c 75 ;.}..protected.function.getInclu
a420 64 65 50 61 74 68 73 46 69 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 46 dePathsFile(array.$packageMap,.F
a440 69 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 ilesystem.$filesystem,.$basePath
a460 2c 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 ,.$vendorPath,.$vendorPathCode,.
a480 24 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 $appBaseDirCode).{.$includePaths
a4a0 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 61 .=.array();..foreach.($packageMa
a4c0 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 6e p.as.$item).{.list($package,.$in
a4e0 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d stallPath).=.$item;..if.(null.!=
a500 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 20 26 26 20 73 74 =.$package->getTargetDir().&&.st
a520 72 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 rlen($package->getTargetDir()).>
a540 20 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 .0).{.$installPath.=.substr($ins
a560 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 tallPath,.0,.-strlen('/'.$packag
a580 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 e->getTargetDir()));.}..foreach.
a5a0 28 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 ($package->getIncludePaths().as.
a5c0 24 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 $includePath).{.$includePath.=.t
a5e0 72 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 rim($includePath,.'/');.$include
a600 50 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 Paths[].=.empty($installPath).?.
a620 24 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 $includePath.:.$installPath.'/'.
a640 24 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 $includePath;.}.}..if.(!$include
a660 50 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 Paths).{.return;.}..$includePath
a680 73 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 sCode.=.'';.foreach.($includePat
a6a0 68 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 hs.as.$path).{.$includePathsCode
a6c0 20 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 ..=."...."...$this->getPathCode(
a6e0 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 50 $filesystem,.$basePath,.$vendorP
a700 61 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 ath,.$path)...",\n";.}..return.<
a720 3c 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 <<EOF.<?php..//.include_paths.ph
a740 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
a760 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 orDir.=.$vendorPathCode;.\$baseD
a780 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 ir.=.$appBaseDirCode;..return.ar
a7a0 72 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 ray(.$includePathsCode);..EOF;.}
a7c0 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 65 46 ..protected.function.getIncludeF
a7e0 69 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 ilesFile(array.$files,.Filesyste
a800 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 20 24 76 65 6e 64 6f m.$filesystem,.$basePath,.$vendo
a820 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 61 70 70 42 61 73 65 rPath,.$vendorPathCode,.$appBase
a840 44 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 DirCode).{.$filesCode.=.'';.fore
a860 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 49 64 65 6e 74 69 66 69 65 72 20 3d ach.($files.as.$fileIdentifier.=
a880 3e 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 2e 3d >.$functionFile).{.$filesCode..=
a8a0 20 27 20 20 20 20 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 66 69 6c 65 49 64 65 6e 74 69 .'....'...var_export($fileIdenti
a8c0 66 69 65 72 2c 20 74 72 75 65 29 20 2e 20 27 20 3d 3e 20 27 0a 2e 20 24 74 68 69 73 2d 3e 67 65 fier,.true)...'.=>.'...$this->ge
a8e0 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
a900 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 20 2e 20 ,.$vendorPath,.$functionFile)...
a920 22 2c 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 21 24 66 69 6c 65 73 43 6f 64 65 29 20 7b 0a 72 65 74 ",\n";.}..if.(!$filesCode).{.ret
a940 75 72 6e 20 66 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 urn.false;.}..return.<<<EOF.<?ph
a960 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 20 40 67 65 6e 65 72 61 p..//.autoload_files.php.@genera
a980 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 ted.by.Composer..\$vendorDir.=.$
a9a0 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 vendorPathCode;.\$baseDir.=.$app
a9c0 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 66 69 6c BaseDirCode;..return.array(.$fil
a9e0 65 73 43 6f 64 65 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 esCode);..EOF;.}..protected.func
aa00 74 69 6f 6e 20 67 65 74 50 61 74 68 43 6f 64 65 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c tion.getPathCode(Filesystem.$fil
aa20 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c esystem,.$basePath,.$vendorPath,
aa40 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 .$path).{.if.(!$filesystem->isAb
aa60 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 62 61 solutePath($path)).{.$path.=.$ba
aa80 73 65 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 24 70 61 74 68 20 3d 20 sePath...'/'...$path;.}.$path.=.
aaa0 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 $filesystem->normalizePath($path
aac0 29 3b 0a 0a 24 62 61 73 65 44 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 );..$baseDir.=.'';.if.(strpos($p
aae0 61 74 68 2e 27 2f 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 ath.'/',.$vendorPath.'/').===.0)
ab00 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 .{.$path.=.substr($path,.strlen(
ab20 24 76 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 76 65 6e 64 $vendorPath));.$baseDir.=.'$vend
ab40 6f 72 44 69 72 27 3b 0a 0a 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a orDir';..if.($path.!==.false).{.
ab60 24 62 61 73 65 44 69 72 20 2e 3d 20 22 20 2e 20 22 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 $baseDir..=."...";.}.}.else.{.$p
ab80 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 ath.=.$filesystem->normalizePath
aba0 28 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 ($filesystem->findShortestPath($
abc0 62 61 73 65 50 61 74 68 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 29 3b 0a 69 66 20 28 21 24 66 basePath,.$path,.true));.if.(!$f
abe0 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 ilesystem->isAbsolutePath($path)
ac00 29 20 7b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 3b 0a 24 70 ).{.$baseDir.=.'$baseDir...';.$p
ac20 61 74 68 20 3d 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 ath.=.'/'...$path;.}.}..if.(preg
ac40 5f 6d 61 74 63 68 28 27 2f 5c 2e 70 68 61 72 24 2f 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 _match('/\.phar$/',.$path)).{.$b
ac60 61 73 65 44 69 72 20 3d 20 22 27 70 68 61 72 3a 2f 2f 27 20 2e 20 22 20 2e 20 24 62 61 73 65 44 aseDir.=."'phar://'..."...$baseD
ac80 69 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 61 73 65 44 69 72 20 2e 20 28 28 24 70 61 74 68 ir;.}..return.$baseDir...(($path
aca0 20 21 3d 3d 20 66 61 6c 73 65 29 20 3f 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 .!==.false).?.var_export($path,.
acc0 74 72 75 65 29 20 3a 20 22 22 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 true).:."");.}..protected.functi
ace0 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f on.getAutoloadFile($vendorPathTo
ad00 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 0a 7b 0a 72 65 74 75 72 6e TargetDirCode,.$suffix).{.return
ad20 20 3c 3c 3c 41 55 54 4f 4c 4f 41 44 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 2e .<<<AUTOLOAD.<?php..//.autoload.
ad40 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 72 65 71 75 php.@generated.by.Composer..requ
ad60 69 72 65 5f 6f 6e 63 65 20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 ire_once.$vendorPathToTargetDirC
ad80 6f 64 65 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 ode...'/autoload_real.php';..ret
ada0 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 urn.ComposerAutoloaderInit$suffi
adc0 78 3a 3a 67 65 74 4c 6f 61 64 65 72 28 29 3b 0a 0a 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 70 72 x::getLoader();..AUTOLOAD;.}..pr
ade0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c otected.function.getAutoloadReal
ae00 46 69 6c 65 28 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 File($useClassMap,.$useIncludePa
ae20 74 68 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 75 73 65 49 6e 63 6c 75 64 th,.$targetDirLoader,.$useInclud
ae40 65 46 69 6c 65 73 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 eFiles,.$vendorPathCode,.$appBas
ae60 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 eDirCode,.$suffix,.$useGlobalInc
ae80 6c 75 64 65 50 61 74 68 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 29 0a 7b 0a ludePath,.$prependAutoloader).{.
aea0 24 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 $file.=.<<<HEADER.<?php..//.auto
aec0 6c 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 load_real.php.@generated.by.Comp
aee0 6f 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 oser..class.ComposerAutoloaderIn
af00 69 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 it$suffix.{.....private.static.\
af20 24 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 $loader;......public.static.func
af40 74 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 tion.loadClassLoader(\$class)...
af60 20 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 ..{.........if.('Composer\\Autol
af80 6f 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 oad\\ClassLoader'.===.\$class).{
afa0 0a 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 .............require.__DIR__...'
afc0 2f 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 /ClassLoader.php';.........}....
afe0 20 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 .}......public.static.function.g
b000 65 74 4c 6f 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 6e 75 6c etLoader().....{.........if.(nul
b020 6c 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 l.!==.self::\$loader).{.........
b040 20 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 ....return.self::\$loader;......
b060 20 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 ...}..........spl_autoload_regis
b080 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
b0a0 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 2c 20 74 t$suffix',.'loadClassLoader'),.t
b0c0 72 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 rue,.$prependAutoloader);.......
b0e0 20 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 ..self::\$loader.=.\$loader.=.ne
b100 77 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 w.\\Composer\\Autoload\\ClassLoa
b120 64 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 der();.........spl_autoload_unre
b140 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 6f 61 64 65 72 gister(array('ComposerAutoloader
b160 49 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 Init$suffix',.'loadClassLoader')
b180 29 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 );...HEADER;..if.($useIncludePat
b1a0 68 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 5f 50 41 54 48 27 0a h).{.$file..=.<<<'INCLUDE_PATH'.
b1c0 20 20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 65 20 ........$includePaths.=.require.
b1e0 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a __DIR__...'/include_paths.php';.
b200 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 ........array_push($includePaths
b220 2c 20 67 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 20 20 20 20 20 20 20 20 73 ,.get_include_path());.........s
b240 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 54 48 5f 53 45 50 41 52 41 et_include_path(join(PATH_SEPARA
b260 54 4f 52 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a 0a 49 4e 43 4c 55 44 45 5f TOR,.$includePaths));...INCLUDE_
b280 50 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 PATH;.}..$file..=.<<<'PSR0'.....
b2a0 20 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 ....$map.=.require.__DIR__...'/a
b2c0 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 utoload_namespaces.php';........
b2e0 20 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 .foreach.($map.as.$namespace.=>.
b300 24 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 $path).{.............$loader->se
b320 74 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 t($namespace,.$path);.........}.
b340 0a 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 ..PSR0;..$file..=.<<<'PSR4'.....
b360 20 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 ....$map.=.require.__DIR__...'/a
b380 75 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 utoload_psr4.php';.........forea
b3a0 63 68 20 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 ch.($map.as.$namespace.=>.$path)
b3c0 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 50 73 72 34 28 .{.............$loader->setPsr4(
b3e0 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 0a $namespace,.$path);.........}...
b400 50 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 PSR4;..if.($useClassMap).{.$file
b420 20 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 ..=.<<<'CLASSMAP'.........$class
b440 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f Map.=.require.__DIR__...'/autolo
b460 61 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 ad_classmap.php';.........if.($c
b480 6c 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 lassMap).{.............$loader->
b4a0 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 addClassMap($classMap);.........
b4c0 7d 0a 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 }...CLASSMAP;.}..if.($this->clas
b4e0 73 4d 61 70 41 75 74 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 sMapAuthoritative).{.$file..=.<<
b500 3c 27 43 4c 41 53 53 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 <'CLASSMAPAUTHORITATIVE'........
b520 20 24 6c 6f 61 64 65 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 .$loader->setClassMapAuthoritati
b540 76 65 28 74 72 75 65 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 ve(true);..CLASSMAPAUTHORITATIVE
b560 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 29 20 ;.}..if.($useGlobalIncludePath).
b580 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 50 41 54 48 27 0a 20 20 20 20 {.$file..=.<<<'INCLUDEPATH'.....
b5a0 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 ....$loader->setUseIncludePath(t
b5c0 72 75 65 29 3b 0a 0a 49 4e 43 4c 55 44 45 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 74 61 72 67 rue);..INCLUDEPATH;.}..if.($targ
b5e0 65 74 44 69 72 4c 6f 61 64 65 72 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 etDirLoader).{.$file..=.<<<REGIS
b600 54 45 52 5f 54 41 52 47 45 54 5f 44 49 52 5f 41 55 54 4f 4c 4f 41 44 0a 20 20 20 20 20 20 20 20 TER_TARGET_DIR_AUTOLOAD.........
b620 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d spl_autoload_register(array('Com
b640 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 27 2c 20 27 61 75 poserAutoloaderInit$suffix',.'au
b660 74 6f 6c 6f 61 64 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 0a 0a 52 45 47 49 53 54 45 toload'),.true,.true);...REGISTE
b680 52 5f 54 41 52 47 45 54 5f 44 49 52 5f 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 24 66 69 6c 65 20 R_TARGET_DIR_AUTOLOAD;.}..$file.
b6a0 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 20 5c 24 .=.<<<REGISTER_LOADER.........\$
b6c0 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 6c 6f 61 loader->register($prependAutoloa
b6e0 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 28 24 75 der);...REGISTER_LOADER;..if.($u
b700 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 3c 49 4e seIncludeFiles).{.$file..=.<<<IN
b720 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 46 69 6c CLUDE_FILES.........\$includeFil
b740 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 6c 6f 61 es.=.require.__DIR__...'/autoloa
b760 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 20 28 5c d_files.php';.........foreach.(\
b780 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 20 61 73 20 5c 24 66 69 6c 65 49 64 65 6e 74 69 66 69 65 $includeFiles.as.\$fileIdentifie
b7a0 72 20 3d 3e 20 5c 24 66 69 6c 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 6f r.=>.\$file).{.............compo
b7c0 73 65 72 52 65 71 75 69 72 65 24 73 75 66 66 69 78 28 5c 24 66 69 6c 65 49 64 65 6e 74 69 66 69 serRequire$suffix(\$fileIdentifi
b7e0 65 72 2c 20 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 er,.\$file);.........}...INCLUDE
b800 5f 46 49 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 _FILES;.}..$file..=.<<<METHOD_FO
b820 4f 54 45 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 OTER.........return.\$loader;...
b840 20 20 7d 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 ..}..METHOD_FOOTER;..$file..=.$t
b860 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 6c 75 64 65 argetDirLoader;..if.($useInclude
b880 46 69 6c 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c 3c 46 4f 4f 54 45 Files).{.return.$file...<<<FOOTE
b8a0 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 72 65 24 73 75 R.}..function.composerRequire$su
b8c0 66 66 69 78 28 5c 24 66 69 6c 65 49 64 65 6e 74 69 66 69 65 72 2c 20 5c 24 66 69 6c 65 29 0a 7b ffix(\$fileIdentifier,.\$file).{
b8e0 0a 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 5c 24 47 4c 4f 42 41 4c 53 5b 27 5f 5f 63 6f 6d 70 .....if.(empty(\$GLOBALS['__comp
b900 6f 73 65 72 5f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 27 5d 5b 5c 24 66 69 6c 65 49 64 65 6e oser_autoload_files'][\$fileIden
b920 74 69 66 69 65 72 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 20 5c 24 66 69 tifier])).{.........require.\$fi
b940 6c 65 3b 0a 0a 20 20 20 20 20 20 20 20 5c 24 47 4c 4f 42 41 4c 53 5b 27 5f 5f 63 6f 6d 70 6f 73 le;..........\$GLOBALS['__compos
b960 65 72 5f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 27 5d 5b 5c 24 66 69 6c 65 49 64 65 6e 74 69 er_autoload_files'][\$fileIdenti
b980 66 69 65 72 5d 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 46 4f 4f 54 45 52 3b 0a 7d fier].=.true;.....}.}..FOOTER;.}
b9a0 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c 3c 46 4f 4f 54 45 52 0a 7d 0a 0a 46 4f ..return.$file...<<<FOOTER.}..FO
b9c0 4f 54 45 52 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 OTER;.}..protected.function.pars
b9e0 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 eAutoloadsType(array.$packageMap
ba00 2c 20 24 74 79 70 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 ,.$type,.PackageInterface.$mainP
ba20 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ackage).{.$autoloads.=.array();.
ba40 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 .foreach.($packageMap.as.$item).
ba60 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d {.list($package,.$installPath).=
ba80 20 24 69 74 65 6d 3b 0a 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 .$item;..$autoload.=.$package->g
baa0 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 etAutoload();.if.($this->devMode
bac0 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 20 7b .&&.$package.===.$mainPackage).{
bae0 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 5f 72 65 63 75 72 73 69 .$autoload.=.array_merge_recursi
bb00 76 65 28 24 61 75 74 6f 6c 6f 61 64 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 41 75 ve($autoload,.$package->getDevAu
bb20 74 6f 6c 6f 61 64 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 61 75 74 6f toload());.}....if.(!isset($auto
bb40 6c 6f 61 64 5b 24 74 79 70 65 5d 29 20 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 61 75 74 6f 6c load[$type]).||.!is_array($autol
bb60 6f 61 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 6e oad[$type])).{.continue;.}.if.(n
bb80 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 29 ull.!==.$package->getTargetDir()
bba0 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 20 7b .&&.$package.!==.$mainPackage).{
bbc0 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 6c 6c 50 .$installPath.=.substr($installP
bbe0 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 ath,.0,.-strlen('/'.$package->ge
bc00 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 tTargetDir()));.}..foreach.($aut
bc20 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 oload[$type].as.$namespace.=>.$p
bc40 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 73 20 aths).{.foreach.((array).$paths.
bc60 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 28 24 74 79 70 65 20 3d 3d 3d 20 27 66 69 6c 65 as.$path).{.if.(($type.===.'file
bc80 73 27 20 7c 7c 20 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 20 7c 7c 20 24 74 s'.||.$type.===.'classmap'.||.$t
bca0 79 70 65 20 3d 3d 3d 20 27 65 78 63 6c 75 64 65 2d 66 72 6f 6d 2d 63 6c 61 73 73 6d 61 70 27 29 ype.===.'exclude-from-classmap')
bcc0 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 .&&.$package->getTargetDir().&&.
bce0 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 !is_readable($installPath.'/'.$p
bd00 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 6d 61 69 6e ath)).{...if.($package.===.$main
bd20 50 61 63 6b 61 67 65 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c Package).{.$targetDir.=.str_repl
bd40 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c 5c 3e 27 2c 20 27 5b 5c 5c 5c 5c 2f 5d 27 2c 20 70 ace('\\<dirsep\\>',.'[\\\\/]',.p
bd60 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 2f 27 2c reg_quote(str_replace(array('/',
bd80 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 70 3e 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 .'\\'),.'<dirsep>',.$package->ge
bda0 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 61 74 68 20 3d 20 6c 74 72 69 6d 28 70 tTargetDir())));.$path.=.ltrim(p
bdc0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 27 2e 24 74 61 72 67 65 74 44 69 72 2e 27 7d 27 2c reg_replace('{^'.$targetDir.'}',
bde0 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 5c 5c 2f 27 29 29 2c 20 27 5c 5c 2f 27 .'',.ltrim($path,.'\\/')),.'\\/'
be00 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 70 61 74 68 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e );.}.else.{...$path.=.$package->
be20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a getTargetDir()...'/'...$path;.}.
be40 7d 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 65 78 63 6c 75 64 65 2d 66 72 6f 6d 2d 63 }..if.($type.===.'exclude-from-c
be60 6c 61 73 73 6d 61 70 27 29 20 7b 0a 0a 20 24 70 61 74 68 20 3d 20 70 72 65 67 5f 71 75 6f 74 65 lassmap').{...$path.=.preg_quote
be80 28 74 72 69 6d 28 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 (trim(strtr($path,.'\\',.'/'),.'
bea0 2f 27 29 29 3b 0a 0a 0a 20 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c /'));....$path.=.str_replace('\\
bec0 2a 5c 5c 2a 27 2c 20 27 2e 2b 3f 27 2c 20 24 70 61 74 68 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 *\\*',.'.+?',.$path);.$path.=.st
bee0 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2a 27 2c 20 27 5b 5e 2f 5d 2b 3f 27 2c 20 24 70 61 74 68 r_replace('\\*',.'[^/]+?',.$path
bf00 29 3b 0a 0a 0a 20 24 75 70 64 69 72 20 3d 20 6e 75 6c 6c 3b 0a 24 70 61 74 68 20 3d 20 70 72 65 );....$updir.=.null;.$path.=.pre
bf20 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 0a 27 7b 5e 28 28 3f 3a 28 3f 3a 5c 5c g_replace_callback(.'{^((?:(?:\\
bf40 5c 5c 5c 5c 2e 29 7b 31 2c 32 7d 2b 2f 29 2b 29 7d 27 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 6d \\\\.){1,2}+/)+)}',.function.($m
bf60 61 74 63 68 65 73 29 20 75 73 65 20 28 26 24 75 70 64 69 72 29 20 7b 0a 69 66 20 28 69 73 73 65 atches).use.(&$updir).{.if.(isse
bf80 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 7b 0a 0a 20 24 75 70 64 69 72 20 3d 20 73 74 72 t($matches[1])).{...$updir.=.str
bfa0 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2e 27 2c 20 27 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d _replace('\\.',.'.',.$matches[1]
bfc0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 2c 0a 24 70 61 74 68 0a 29 3b 0a 69 66 20 );.}..return.'';.},.$path.);.if.
bfe0 28 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c (empty($installPath)).{.$install
c000 50 61 74 68 20 3d 20 73 74 72 74 72 28 67 65 74 63 77 64 28 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 Path.=.strtr(getcwd(),.'\\',.'/'
c020 29 3b 0a 7d 0a 0a 24 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 24 );.}..$resolvedPath.=.realpath($
c040 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 75 70 64 69 72 29 3b 0a 24 61 75 installPath...'/'...$updir);.$au
c060 74 6f 6c 6f 61 64 73 5b 5d 20 3d 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 74 72 28 24 72 65 toloads[].=.preg_quote(strtr($re
c080 73 6f 6c 76 65 64 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 20 2e 20 27 2f 27 20 2e 20 solvedPath,.'\\',.'/'))...'/'...
c0a0 24 70 61 74 68 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 6c 61 74 69 76 65 50 61 74 $path;.continue;.}..$relativePat
c0c0 68 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 28 65 6d 70 74 79 h.=.empty($installPath).?.(empty
c0e0 28 24 70 61 74 68 29 20 3f 20 27 2e 27 20 3a 20 24 70 61 74 68 29 20 3a 20 24 69 6e 73 74 61 6c ($path).?.'.'.:.$path).:.$instal
c100 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 lPath.'/'.$path;..if.($type.===.
c120 27 66 69 6c 65 73 27 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 74 68 69 73 2d 3e 67 65 74 'files').{.$autoloads[$this->get
c140 46 69 6c 65 49 64 65 6e 74 69 66 69 65 72 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 5d FileIdentifier($package,.$path)]
c160 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 3b 0a 7d 20 65 6c .=.$relativePath;.continue;.}.el
c180 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 61 seif.($type.===.'classmap').{.$a
c1a0 75 74 6f 6c 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 utoloads[].=.$relativePath;.cont
c1c0 69 6e 75 65 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 inue;.}..$autoloads[$namespace][
c1e0 5d 20 3d 20 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 ].=.$relativePath;.}.}.}..return
c200 20 24 61 75 74 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .$autoloads;.}..protected.functi
c220 6f 6e 20 67 65 74 46 69 6c 65 49 64 65 6e 74 69 66 69 65 72 28 50 61 63 6b 61 67 65 49 6e 74 65 on.getFileIdentifier(PackageInte
c240 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 rface.$package,.$path).{.return.
c260 6d 64 35 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 3a 27 20 2e 20 md5($package->getName()...':'...
c280 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e $path);.}..........protected.fun
c2a0 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 6b ction.sortPackageMap(array.$pack
c2c0 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 24 ageMap).{.$packages.=.array();.$
c2e0 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 72 paths.=.array();.$usageList.=.ar
c300 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 20 ray();..foreach.($packageMap.as.
c320 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 3d $item).{.list($package,.$path).=
c340 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 6d .$item;.$name.=.$package->getNam
c360 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 65 e();.$packages[$name].=.$package
c380 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 63 ;.$paths[$name].=.$path;..foreac
c3a0 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 75 h.(array_merge($package->getRequ
c3c0 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 73 ires(),.$package->getDevRequires
c3e0 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 2d ()).as.$link).{.$target.=.$link-
c400 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 74 >getTarget();.$usageList[$target
c420 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 61 ][].=.$name;.}.}..$computing.=.a
c440 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 6f rray();.$computed.=.array();.$co
c460 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 6d mputeImportance.=.function.($nam
c480 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 63 e).use.(&$computeImportance,.&$c
c4a0 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 74 omputing,.&$computed,.$usageList
c4c0 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 5d ).{...if.(isset($computed[$name]
c4e0 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 0a )).{.return.$computed[$name];.}.
c500 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 29 ...if.(isset($computing[$name]))
c520 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 65 .{.return.0;.}..$computing[$name
c540 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 65 ].=.true;.$weight.=.0;..if.(isse
c560 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 20 t($usageList[$name])).{.foreach.
c580 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 24 ($usageList[$name].as.$user).{.$
c5a0 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 65 weight.-=.1.-.$computeImportance
c5c0 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 24 ($user);.}.}..unset($computing[$
c5e0 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 67 name]);.$computed[$name].=.$weig
c600 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 74 ht;..return.$weight;.};..$weight
c620 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 61 List.=.array();..foreach.($packa
c640 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 69 ges.as.$name.=>.$package).{.$wei
c660 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 3b ght.=.$computeImportance($name);
c680 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 7d .$weightList[$name].=.$weight;.}
c6a0 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 72 ..$stable_sort.=.function.(&$arr
c6c0 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 72 ay).{.static.$transform,.$restor
c6e0 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 0a e;..$i.=.0;..if.(!$transform).{.
c700 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 20 $transform.=.function.(&$v,.$k).
c720 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 2c use.(&$i).{.$v.=.array($v,.++$i,
c740 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 6f .$k,.$v);.};..$restore.=.functio
c760 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 0a n.(&$v,.$k).{.$v.=.$v[3];.};.}..
c780 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 0a array_walk($array,.$transform);.
c7a0 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 79 asort($array);.array_walk($array
c7c0 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 77 ,.$restore);.};..$stable_sort($w
c7e0 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 3d eightList);..$sortedPackageMap.=
c800 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 24 .array();..foreach.(array_keys($
c820 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 50 weightList).as.$name).{.$sortedP
c840 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 6e ackageMap[].=.array($packages[$n
c860 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 20 ame],.$paths[$name]);.}..return.
c880 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 $sortedPackageMap;.}........prot
c8a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 61 66 65 43 6f 70 79 28 24 73 6f 75 72 63 65 2c ected.function.safeCopy($source,
c8c0 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 73 6f 75 72 63 65 20 3d 20 66 6f 70 65 6e 28 24 73 6f 75 .$target).{.$source.=.fopen($sou
c8e0 72 63 65 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 66 6f 70 65 6e 28 24 74 61 72 67 rce,.'r');.$target.=.fopen($targ
c900 65 74 2c 20 27 77 2b 27 29 3b 0a 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 et,.'w+');..stream_copy_to_strea
c920 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 28 24 73 6f 75 m($source,.$target);.fclose($sou
c940 72 63 65 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 rce);.fclose($target);.}.}.<?php
c960 0a 0a 0a 0a 0a 0a 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 ..................namespace.Comp
c980 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 oser\Autoload;..use.Symfony\Comp
c9a0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 onent\Finder\Finder;.use.Compose
c9c0 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 r\IO\IOInterface;........class.C
c9e0 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 lassMapGenerator.{.......public.
ca00 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c static.function.dump($dirs,.$fil
ca20 65 29 0a 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 e).{.$maps.=.array();..foreach.(
ca40 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d $dirs.as.$dir).{.$maps.=.array_m
ca60 65 72 67 65 28 24 6d 61 70 73 2c 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 erge($maps,.static::createMap($d
ca80 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 ir));.}..file_put_contents($file
caa0 2c 20 73 70 72 69 6e 74 66 28 27 3c 3f 70 68 70 20 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 ,.sprintf('<?php.return.%s;',.va
cac0 72 5f 65 78 70 6f 72 74 28 24 6d 61 70 73 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a r_export($maps,.true)));.}......
cae0 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 72 .......public.static.function.cr
cb00 65 61 74 65 4d 61 70 28 24 70 61 74 68 2c 20 24 62 6c 61 63 6b 6c 69 73 74 20 3d 20 6e 75 6c 6c eateMap($path,.$blacklist.=.null
cb20 2c 20 49 4f 49 6e 74 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 ,.IOInterface.$io.=.null,.$names
cb40 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 pace.=.null).{.if.(is_string($pa
cb60 74 68 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 th)).{.if.(is_file($path)).{.$pa
cb80 74 68 20 3d 20 61 72 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 70 61 74 th.=.array(new.\SplFileInfo($pat
cba0 68 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a h));.}.elseif.(is_dir($path)).{.
cbc0 24 70 61 74 68 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 66 69 6c 65 73 28 $path.=.Finder::create()->files(
cbe0 29 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 2d 3e 6e 61 6d 65 28 27 2f 5c 2e 28 70 68 70 7c )->followLinks()->name('/\.(php|
cc00 69 6e 63 7c 68 68 29 24 2f 27 29 2d 3e 69 6e 28 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b inc|hh)$/')->in($path);.}.else.{
cc20 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 .throw.new.\RuntimeException(.'C
cc40 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 ould.not.scan.for.classes.inside
cc60 20 22 27 2e 24 70 61 74 68 2e 0a 27 22 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 ."'.$path..'".which.does.not.app
cc80 65 61 72 20 74 6f 20 62 65 20 61 20 66 69 6c 65 20 6e 6f 72 20 61 20 66 6f 6c 64 65 72 27 0a 29 ear.to.be.a.file.nor.a.folder'.)
cca0 3b 0a 7d 0a 7d 0a 0a 24 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ;.}.}..$map.=.array();..foreach.
ccc0 28 24 70 61 74 68 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 50 61 74 68 20 3d 20 24 ($path.as.$file).{.$filePath.=.$
cce0 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 21 69 6e 5f 61 72 file->getRealPath();..if.(!in_ar
cd00 72 61 79 28 70 61 74 68 69 6e 66 6f 28 24 66 69 6c 65 50 61 74 68 2c 20 50 41 54 48 49 4e 46 4f ray(pathinfo($filePath,.PATHINFO
cd20 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 69 6e 63 27 2c _EXTENSION),.array('php',.'inc',
cd40 20 27 68 68 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 62 6c 61 .'hh'))).{.continue;.}..if.($bla
cd60 63 6b 6c 69 73 74 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 24 62 6c 61 63 6b 6c 69 73 74 2c cklist.&&.preg_match($blacklist,
cd80 20 73 74 72 74 72 28 24 66 69 6c 65 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b .strtr($filePath,.'\\',.'/'))).{
cda0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 73 65 6c 66 3a 3a 66 .continue;.}..$classes.=.self::f
cdc0 69 6e 64 43 6c 61 73 73 65 73 28 24 66 69 6c 65 50 61 74 68 29 3b 0a 0a 66 6f 72 65 61 63 68 20 indClasses($filePath);..foreach.
cde0 28 24 63 6c 61 73 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 ($classes.as.$class).{...if.(nul
ce00 6c 20 21 3d 3d 20 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 l.!==.$namespace.&&.0.!==.strpos
ce20 28 24 63 6c 61 73 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 ($class,.$namespace)).{.continue
ce40 3b 0a 7d 0a 0a 69 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 ;.}..if.(!isset($map[$class])).{
ce60 0a 24 6d 61 70 5b 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 .$map[$class].=.$filePath;.}.els
ce80 65 69 66 20 28 24 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 eif.($io.&&.$map[$class].!==.$fi
cea0 6c 65 50 61 74 68 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 lePath.&&.!preg_match('{/(test|f
cec0 69 78 74 75 72 65 7c 65 78 61 6d 70 6c 65 7c 73 74 75 62 29 73 3f 2f 7d 69 27 2c 20 73 74 72 74 ixture|example|stub)s?/}i',.strt
cee0 72 28 24 6d 61 70 5b 24 63 6c 61 73 73 5d 2e 27 20 27 2e 24 66 69 6c 65 50 61 74 68 2c 20 27 5c r($map[$class].'.'.$filePath,.'\
cf00 5c 27 2c 20 27 2f 27 29 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 27 3c \',.'/'))).{.$io->writeError(.'<
cf20 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 41 6d 62 69 67 75 6f 75 73 20 63 6c 61 73 73 warning>Warning:.Ambiguous.class
cf40 20 72 65 73 6f 6c 75 74 69 6f 6e 2c 20 22 27 2e 24 63 6c 61 73 73 2e 27 22 27 2e 0a 27 20 77 61 .resolution,."'.$class.'"'..'.wa
cf60 73 20 66 6f 75 6e 64 20 69 6e 20 62 6f 74 68 20 22 27 2e 24 6d 61 70 5b 24 63 6c 61 73 73 5d 2e s.found.in.both."'.$map[$class].
cf80 27 22 20 61 6e 64 20 22 27 2e 24 66 69 6c 65 50 61 74 68 2e 27 22 2c 20 74 68 65 20 66 69 72 73 '".and."'.$filePath.'",.the.firs
cfa0 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 0a 29 3b 0a 7d 0a t.will.be.used.</warning>'.);.}.
cfc0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 }.}..return.$map;.}.........priv
cfe0 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 ate.static.function.findClasses(
d000 24 70 61 74 68 29 0a 7b 0a 24 65 78 74 72 61 54 79 70 65 73 20 3d 20 50 48 50 5f 56 45 52 53 49 $path).{.$extraTypes.=.PHP_VERSI
d020 4f 4e 5f 49 44 20 3c 20 35 30 34 30 30 20 3f 20 27 27 20 3a 20 27 7c 74 72 61 69 74 27 3b 0a 69 ON_ID.<.50400.?.''.:.'|trait';.i
d040 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 20 26 26 20 76 65 f.(defined('HHVM_VERSION').&&.ve
d060 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 4e 2c 20 27 33 2e 33 rsion_compare(HHVM_VERSION,.'3.3
d080 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 3d 20 27 7c 65 6e 75 ',.'>=')).{.$extraTypes..=.'|enu
d0a0 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 40 70 68 70 5f 73 74 m';.}..try.{.$contents.=.@php_st
d0c0 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 20 28 21 24 63 6f 6e rip_whitespace($path);.if.(!$con
d0e0 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 28 24 70 61 74 68 29 tents).{.if.(!file_exists($path)
d100 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 27 46 69 6c 65 20 64 ).{.throw.new.\Exception('File.d
d120 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 73 5f 72 65 61 64 61 oes.not.exist');.}.if.(!is_reada
d140 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 45 78 63 65 70 74 69 ble($path)).{.throw.new.\Excepti
d160 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 29 3b 0a 7d 0a 7d 0a on('File.is.not.readable');.}.}.
d180 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 }.catch.(\Exception.$e).{.throw.
d1a0 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
d1c0 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 27 2e 24 70 61 74 68 .scan.for.classes.inside.'.$path
d1e0 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 20 30 2c 20 24 65 29 .":.\n".$e->getMessage(),.0,.$e)
d200 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 5c 62 28 3f 3a 63 6c ;.}....if.(!preg_match('{\b(?:cl
d220 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 5c 73 7d ass|interface'.$extraTypes.')\s}
d240 69 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 i',.$contents)).{.return.array()
d260 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 ;.}....$contents.=.preg_replace(
d280 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 72 5c 6e 7c 5c 6e 7c '{<<<\s*(\'?)(\w+)\\1(?:\r\n|\n|
d2a0 5c 72 29 28 3f 3a 2e 2a 3f 29 28 3f 3a 5c 72 5c 6e 7c 5c 6e 7c 5c 72 29 5c 5c 32 28 3f 3d 5c 72 \r)(?:.*?)(?:\r\n|\n|\r)\\2(?=\r
d2c0 5c 6e 7c 5c 6e 7c 5c 72 7c 3b 29 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f 6e 74 65 6e 74 \n|\n|\r|;)}s',.'null',.$content
d2e0 73 29 3b 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 s);...$contents.=.preg_replace('
d300 7b 22 5b 5e 22 5c 5c 5c 5c 5d 2a 2b 28 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 2b 29 2a 2b 22 {"[^"\\\\]*+(\\\\.[^"\\\\]*+)*+"
d320 7c 5c 27 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 2b 28 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 2b 29 |\'[^\'\\\\]*+(\\\\.[^\'\\\\]*+)
d340 2a 2b 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 69 *+\'}s',.'null',.$contents);...i
d360 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 27 f.(substr($contents,.0,.2).!==.'
d380 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 28 <?').{.$contents.=.preg_replace(
d3a0 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 31 '{^.+?<\?}s',.'<?',.$contents,.1
d3c0 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 65 ,.$replacements);.if.($replaceme
d3e0 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 7d nts.===.0).{.return.array();.}.}
d400 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 3f ...$contents.=.preg_replace('{\?
d420 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 0a >.+<\?}s',.'?><?',.$contents);..
d440 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 29 .$pos.=.strrpos($contents,.'?>')
d460 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 3d ;.if.(false.!==.$pos.&&.false.==
d480 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 29 =.strpos(substr($contents,.$pos)
d4a0 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 63 ,.'<?')).{.$contents.=.substr($c
d4c0 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 68 ontents,.0,.$pos);.}..preg_match
d4e0 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 20 _all('{.............(?:.........
d500 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 63 .........\b(?<![\$:>])(?P<type>c
d520 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 5c lass|interface'.$extraTypes.').\
d540 73 2b 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:]
d560 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 2b 29 0a 20 20 20 20 [a-zA-Z0-9_\x7f-\xff:\-]*+).....
d580 20 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 ...........|.\b(?<![\$:>])(?P<ns
d5a0 3e 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 2b 5b 61 2d 7a 41 >namespace).(?P<nsname>\s++[a-zA
d5c0 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 -Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xf
d5e0 66 5d 2a 2b 28 3f 3a 5c 73 2a 2b 5c 5c 5c 5c 5c 73 2a 2b 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d f]*+(?:\s*+\\\\\s*+[a-zA-Z_\x7f-
d600 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 2a 2b 29 2a 2b 29 \xff][a-zA-Z0-9_\x7f-\xff]*+)*+)
d620 3f 20 5c 73 2a 2b 20 5b 5c 7b 3b 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 ?.\s*+.[\{;].............)......
d640 20 20 20 7d 69 78 27 2c 20 24 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 0a ...}ix',.$contents,.$matches);..
d660 24 63 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d $classes.=.array();.$namespace.=
d680 20 27 27 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 .'';..for.($i.=.0,.$len.=.count(
d6a0 24 6d 61 74 63 68 65 73 5b 27 74 79 70 65 27 5d 29 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 $matches['type']);.$i.<.$len;.$i
d6c0 2b 2b 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 27 6e 73 27 5d 5b ++).{.if.(!empty($matches['ns'][
d6e0 24 69 5d 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 $i])).{.$namespace.=.str_replace
d700 28 61 72 72 61 79 28 27 20 27 2c 20 22 5c 74 22 2c 20 22 5c 72 22 2c 20 22 5c 6e 22 29 2c 20 27 (array('.',."\t",."\r",."\n"),.'
d720 27 2c 20 24 6d 61 74 63 68 65 73 5b 27 6e 73 6e 61 6d 65 27 5d 5b 24 69 5d 29 20 2e 20 27 5c 5c ',.$matches['nsname'][$i])...'\\
d740 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 27 6e 61 ';.}.else.{.$name.=.$matches['na
d760 6d 65 27 5d 5b 24 69 5d 3b 0a 69 66 20 28 24 6e 61 6d 65 5b 30 5d 20 3d 3d 3d 20 27 3a 27 29 20 me'][$i];.if.($name[0].===.':').
d780 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 27 78 68 70 27 2e 73 75 62 73 74 72 28 73 74 72 5f 72 65 70 {...$name.=.'xhp'.substr(str_rep
d7a0 6c 61 63 65 28 61 72 72 61 79 28 27 2d 27 2c 20 27 3a 27 29 2c 20 61 72 72 61 79 28 27 5f 27 2c lace(array('-',.':'),.array('_',
d7c0 20 27 5f 5f 27 29 2c 20 24 6e 61 6d 65 29 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6d .'__'),.$name),.1);.}.elseif.($m
d7e0 61 74 63 68 65 73 5b 27 74 79 70 65 27 5d 5b 24 69 5d 20 3d 3d 3d 20 27 65 6e 75 6d 27 29 20 7b atches['type'][$i].===.'enum').{
d800 0a 0a 20 0a 20 0a 20 0a 20 24 6e 61 6d 65 20 3d 20 72 74 72 69 6d 28 24 6e 61 6d 65 2c 20 27 3a .........$name.=.rtrim($name,.':
d820 27 29 3b 0a 7d 0a 24 63 6c 61 73 73 65 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 ');.}.$classes[].=.ltrim($namesp
d840 61 63 65 20 2e 20 24 6e 61 6d 65 2c 20 27 5c 5c 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ace...$name,.'\\');.}.}..return.
d860 24 63 6c 61 73 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e $classes;.}.}.<?php............n
d880 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 amespace.Composer;..use.Composer
d8a0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 \IO\IOInterface;.use.Composer\Ut
d8c0 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f il\Filesystem;.use.Symfony\Compo
d8e0 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nent\Finder\Finder;.......class.
d900 43 61 63 68 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 61 63 68 65 43 6f 6c Cache.{.private.static.$cacheCol
d920 6c 65 63 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 lected.=.false;.private.$io;.pri
d940 76 61 74 65 20 24 72 6f 6f 74 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 vate.$root;.private.$enabled.=.t
d960 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 70 72 69 76 61 74 65 rue;.private.$whitelist;.private
d980 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$filesystem;........public.func
d9a0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f tion.__construct(IOInterface.$io
d9c0 2c 20 24 63 61 63 68 65 44 69 72 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 27 61 2d 7a 30 2d ,.$cacheDir,.$whitelist.=.'a-z0-
d9e0 39 2e 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 20 6e 75 9.',.Filesystem.$filesystem.=.nu
da00 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 72 6f ll).{.$this->io.=.$io;.$this->ro
da20 6f 74 20 3d 20 72 74 72 69 6d 28 24 63 61 63 68 65 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 ot.=.rtrim($cacheDir,.'/\\')...'
da40 2f 27 3b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 3d 20 24 77 68 69 74 65 6c 69 73 /';.$this->whitelist.=.$whitelis
da60 74 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 t;.$this->filesystem.=.$filesyst
da80 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 0a 28 21 em.?:.new.Filesystem();..if.(.(!
daa0 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 20 26 26 20 21 40 6d 6b 64 69 72 28 24 is_dir($this->root).&&.!@mkdir($
dac0 74 68 69 73 2d 3e 72 6f 6f 74 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 0a 7c 7c 20 21 69 73 5f this->root,.0777,.true)).||.!is_
dae0 77 72 69 74 61 62 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 0a 29 20 7b 0a 24 74 68 69 73 2d writable($this->root).).{.$this-
db00 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 43 61 6e 6e 6f 74 >io->writeError('<warning>Cannot
db20 20 63 72 65 61 74 65 20 63 61 63 68 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 74 68 69 .create.cache.directory.'...$thi
db40 73 2d 3e 72 6f 6f 74 20 2e 20 27 2c 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 s->root...',.or.directory.is.not
db60 20 77 72 69 74 61 62 6c 65 2e 20 50 72 6f 63 65 65 64 69 6e 67 20 77 69 74 68 6f 75 74 20 63 61 .writable..Proceeding.without.ca
db80 63 68 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 che</warning>');.$this->enabled.
dba0 3d 20 66 61 6c 73 65 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 =.false;.}.}..public.function.is
dbc0 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 6e 61 62 6c 65 Enabled().{.return.$this->enable
dbe0 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 6f 74 28 29 0a d;.}..public.function.getRoot().
dc00 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 62 6c 69 63 20 {.return.$this->root;.}..public.
dc20 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 65 20 3d 20 70 function.read($file).{.$file.=.p
dc40 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 69 reg_replace('{[^'.$this->whiteli
dc60 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 73 st.']}i',.'-',.$file);.if.($this
dc80 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e ->enabled.&&.file_exists($this->
dca0 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 3e 69 6f 2d 3e root...$file)).{.if.($this->io->
dcc0 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 72 72 isDebug()).{.$this->io->writeErr
dce0 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 20 24 66 69 6c or('Reading.'.$this->root...$fil
dd00 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 20 66 69 6c 65 e.'.from.cache');.}..return.file
dd20 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 20 24 66 69 6c _get_contents($this->root...$fil
dd40 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
dd60 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 6e 74 73 29 0a unction.write($file,.$contents).
dd80 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 6c 65 20 3d 20 {.if.($this->enabled).{.$file.=.
dda0 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
ddc0 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 20 28 24 74 68 ist.']}i',.'-',.$file);..if.($th
dde0 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 6f 2d 3e is->io->isDebug()).{.$this->io->
de00 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 2d 3e 72 6f 6f writeError('Writing.'.$this->roo
de20 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 0a 0a 74 72 79 t...$file.'.into.cache');.}..try
de40 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 28 24 74 68 69 .{.return.file_put_contents($thi
de60 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 3b 0a 7d 20 63 s->root...$file,.$contents);.}.c
de80 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 atch.(\ErrorException.$e).{.if.(
dea0 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
dec0 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 46 61 69 6c 65 64 20 74 o->writeError('<warning>Failed.t
dee0 6f 20 77 72 69 74 65 20 69 6e 74 6f 20 63 61 63 68 65 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 o.write.into.cache:.'.$e->getMes
df00 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 69 66 20 28 70 72 65 67 sage().'</warning>');.}.if.(preg
df20 5f 6d 61 74 63 68 28 27 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 5c 29 3a _match('{^file_put_contents\(\):
df40 20 4f 6e 6c 79 20 28 5b 30 2d 39 5d 2b 29 20 6f 66 20 28 5b 30 2d 39 5d 2b 29 20 62 79 74 65 73 .Only.([0-9]+).of.([0-9]+).bytes
df60 20 77 72 69 74 74 65 6e 7d 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 24 6d .written}',.$e->getMessage(),.$m
df80 29 29 20 7b 0a 0a 20 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c )).{...unlink($this->root...$fil
dfa0 65 29 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 3c 77 61 72 6e 69 e);..$message.=.sprintf(.'<warni
dfc0 6e 67 3e 57 72 69 74 69 6e 67 20 25 31 24 73 20 69 6e 74 6f 20 63 61 63 68 65 20 66 61 69 6c 65 ng>Writing.%1$s.into.cache.faile
dfe0 64 20 61 66 74 65 72 20 25 32 24 75 20 6f 66 20 25 33 24 75 20 62 79 74 65 73 20 77 72 69 74 74 d.after.%2$u.of.%3$u.bytes.writt
e000 65 6e 2c 20 6f 6e 6c 79 20 25 34 24 75 20 62 79 74 65 73 20 6f 66 20 66 72 65 65 20 73 70 61 63 en,.only.%4$u.bytes.of.free.spac
e020 65 20 61 76 61 69 6c 61 62 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 0a 24 74 68 69 73 2d 3e 72 e.available</warning>',.$this->r
e040 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 0a 24 6d 5b 31 5d 2c 0a 24 6d 5b 32 5d 2c 0a 40 64 69 73 6b oot...$file,.$m[1],.$m[2],.@disk
e060 5f 66 72 65 65 5f 73 70 61 63 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 64 69 72 6e 61 6d _free_space($this->root...dirnam
e080 65 28 24 66 69 6c 65 29 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 e($file)).);..$this->io->writeEr
e0a0 72 6f 72 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a ror($message);..return.false;.}.
e0c0 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a .throw.$e;.}.}..return.false;.}.
e0e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 72 6f 6d 28 24 66 69 ....public.function.copyFrom($fi
e100 6c 65 2c 20 24 73 6f 75 72 63 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 le,.$source).{.if.($this->enable
e120 64 29 20 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 d).{.$file.=.preg_replace('{[^'.
e140 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 69 $this->whitelist.']}i',.'-',.$fi
e160 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 le);.$this->filesystem->ensureDi
e180 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 6f 6f rectoryExists(dirname($this->roo
e1a0 74 20 2e 20 24 66 69 6c 65 29 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 t...$file));..if.(!file_exists($
e1c0 73 6f 75 72 63 65 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 source)).{.$this->io->writeError
e1e0 28 27 3c 65 72 72 6f 72 3e 27 2e 24 73 6f 75 72 63 65 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 ('<error>'.$source.'.does.not.ex
e200 69 73 74 2c 20 63 61 6e 20 6e 6f 74 20 77 72 69 74 65 20 69 6e 74 6f 20 63 61 63 68 65 3c 2f 65 ist,.can.not.write.into.cache</e
e220 72 72 6f 72 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 rror>');.}.elseif.($this->io->is
e240 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 72 72 6f 72 Debug()).{.$this->io->writeError
e260 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2e ('Writing.'.$this->root...$file.
e280 27 20 69 6e 74 6f 20 63 61 63 68 65 20 66 72 6f 6d 20 27 2e 24 73 6f 75 72 63 65 29 3b 0a 7d 0a '.into.cache.from.'.$source);.}.
e2a0 0a 72 65 74 75 72 6e 20 63 6f 70 79 28 24 73 6f 75 72 63 65 2c 20 24 74 68 69 73 2d 3e 72 6f 6f .return.copy($source,.$this->roo
e2c0 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a t...$file);.}..return.false;.}..
e2e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 54 6f 28 24 66 69 6c 65 2c ...public.function.copyTo($file,
e300 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 .$target).{.$file.=.preg_replace
e320 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 20 27 ('{[^'.$this->whitelist.']}i',.'
e340 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 -',.$file);.if.($this->enabled.&
e360 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c &.file_exists($this->root...$fil
e380 65 29 29 20 7b 0a 74 72 79 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 e)).{.try.{.touch($this->root...
e3a0 24 66 69 6c 65 2c 20 66 69 6c 65 6d 74 69 6d 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 $file,.filemtime($this->root...$
e3c0 66 69 6c 65 29 2c 20 74 69 6d 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 file),.time());.}.catch.(\ErrorE
e3e0 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 0a 20 74 6f 75 63 68 28 24 74 68 69 73 2d 3e xception.$e).{.....touch($this->
e400 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d root...$file);.}..if.($this->io-
e420 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 72 >isDebug()).{.$this->io->writeEr
e440 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 20 24 66 69 ror('Reading.'.$this->root...$fi
e460 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 20 63 6f 70 le.'.from.cache');.}..return.cop
e480 79 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 3b y($this->root...$file,.$target);
e4a0 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 75 6e 63 .}..return.false;.}..public.func
e4c0 74 69 6f 6e 20 67 63 49 73 4e 65 63 65 73 73 61 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 21 tion.gcIsNecessary().{.return.(!
e4e0 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 26 26 20 21 6d 74 5f 72 61 6e self::$cacheCollected.&&.!mt_ran
e500 64 28 30 2c 20 35 30 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 d(0,.50));.}..public.function.re
e520 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 move($file).{.$file.=.preg_repla
e540 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',
e560 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 .'-',.$file);.if.($this->enabled
e580 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 .&&.file_exists($this->root...$f
e5a0 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ile)).{.return.$this->filesystem
e5c0 2d 3e 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d ->unlink($this->root...$file);.}
e5e0 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ..return.false;.}..public.functi
e600 6f 6e 20 67 63 28 24 74 74 6c 2c 20 24 6d 61 78 53 69 7a 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 on.gc($ttl,.$maxSize).{.if.($thi
e620 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 65 78 70 69 72 65 20 3d 20 6e 65 77 20 5c 44 61 74 s->enabled).{.$expire.=.new.\Dat
e640 65 54 69 6d 65 28 29 3b 0a 24 65 78 70 69 72 65 2d 3e 6d 6f 64 69 66 79 28 27 2d 27 2e 24 74 74 eTime();.$expire->modify('-'.$tt
e660 6c 2e 27 20 73 65 63 6f 6e 64 73 27 29 3b 0a 0a 24 66 69 6e 64 65 72 20 3d 20 24 74 68 69 73 2d l.'.seconds');..$finder.=.$this-
e680 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 64 61 74 65 28 27 75 6e 74 69 6c 20 27 2e 24 65 78 70 >getFinder()->date('until.'.$exp
e6a0 69 72 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 29 3b 0a 66 6f 72 ire->format('Y-m-d.H:i:s'));.for
e6c0 65 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 68 69 73 2d each.($finder.as.$file).{.$this-
e6e0 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 >filesystem->unlink($file->getPa
e700 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 53 69 7a 65 20 3d 20 24 74 68 69 73 thname());.}..$totalSize.=.$this
e720 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 3b ->filesystem->size($this->root);
e740 0a 69 66 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 29 20 7b 0a 24 69 .if.($totalSize.>.$maxSize).{.$i
e760 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 73 6f terator.=.$this->getFinder()->so
e780 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 rtByAccessedTime()->getIterator(
e7a0 29 3b 0a 77 68 69 6c 65 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 20 );.while.($totalSize.>.$maxSize.
e7c0 26 26 20 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 66 69 6c 65 70 61 &&.$iterator->valid()).{.$filepa
e7e0 74 68 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 50 61 th.=.$iterator->current()->getPa
e800 74 68 6e 61 6d 65 28 29 3b 0a 24 74 6f 74 61 6c 53 69 7a 65 20 2d 3d 20 24 74 68 69 73 2d 3e 66 thname();.$totalSize.-=.$this->f
e820 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 66 69 6c 65 70 61 74 68 29 3b 0a 24 74 68 69 ilesystem->size($filepath);.$thi
e840 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 70 61 74 68 29 s->filesystem->unlink($filepath)
e860 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 7d 0a 0a 73 65 6c 66 3a 3a ;.$iterator->next();.}.}..self::
e880 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 $cacheCollected.=.true;..return.
e8a0 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 true;.}..return.false;.}..public
e8c0 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 31 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 .function.sha1($file).{.$file.=.
e8e0 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
e900 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
e920 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-
e940 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 68 61 31 5f 66 69 >root...$file)).{.return.sha1_fi
e960 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 le($this->root...$file);.}..retu
e980 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 73 68 61 rn.false;.}..public.function.sha
e9a0 32 35 36 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 256($file).{.$file.=.preg_replac
e9c0 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 20 e('{[^'.$this->whitelist.']}i',.
e9e0 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 '-',.$file);.if.($this->enabled.
ea00 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 &&.file_exists($this->root...$fi
ea20 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 32 35 36 27 le)).{.return.hash_file('sha256'
ea40 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 ,.$this->root...$file);.}..retur
ea60 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 n.false;.}..protected.function.g
ea80 65 74 46 69 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 etFinder().{.return.Finder::crea
eaa0 74 65 28 29 2d 3e 69 6e 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 2d 3e 66 69 6c 65 73 28 29 3b 0a te()->in($this->root)->files();.
eac0 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
eae0 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f omposer\Command;..use.Symfony\Co
eb00 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
eb20 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
eb40 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;.....
eb60 63 6c 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 class.AboutCommand.extends.Comma
eb80 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
eba0 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 61 62 6f 75 74 27 29 0a 2d e().{.$this.->setName('about').-
ebc0 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 72 74 20 69 6e 66 6f 72 6d 61 74 69 >setDescription('Short.informati
ebe0 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 65 72 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c on.about.Composer').->setHelp(<<
ec00 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 62 6f <EOT.<info>php.composer.phar.abo
ec20 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ut</info>.EOT.).;.}..protected.f
ec40 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.$
ec60 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).
ec80 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 4f 54 0a 3c {.$this->getIO()->write(<<<EOT.<
eca0 69 6e 66 6f 3e 43 6f 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 6e 61 67 65 6d 65 info>Composer.-.Package.Manageme
ecc0 6e 74 20 66 6f 72 20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 3e 43 6f 6d 70 6f nt.for.PHP</info>.<comment>Compo
ece0 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 74 72 61 63 ser.is.a.dependency.manager.trac
ed00 6b 69 6e 67 20 6c 6f 63 61 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 king.local.dependencies.of.your.
ed20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 68 74 74 70 projects.and.libraries..See.http
ed40 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 20 69 6e s://getcomposer.org/.for.more.in
ed60 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 0a 7d 0a formation.</comment>.EOT.);.}.}.
ed80 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
eda0 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f ser\Command;..use.Composer\Facto
edc0 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b ry;.use.Composer\IO\IOInterface;
ede0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 .use.Composer\Config;.use.Compos
ee00 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 er\Repository\CompositeRepositor
ee20 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 y;.use.Composer\Script\ScriptEve
ee40 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 43 6f 6d 6d 61 6e 64 nts;.use.Composer\Plugin\Command
ee60 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 69 Event;.use.Composer\Plugin\Plugi
ee80 6e 45 76 65 6e 74 73 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 nEvents;.use.Composer\Util\Files
eea0 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 6f 6e ystem;.use.Symfony\Component\Con
eec0 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
eee0 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
ef00 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
ef20 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 ent\Console\Input\InputOption;.u
ef40 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
ef60 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 put\OutputInterface;.......class
ef80 20 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a .ArchiveCommand.extends.Command.
efa0 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 {.protected.function.configure()
efc0 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 61 72 63 68 69 76 65 27 29 0a 2d 3e .{.$this.->setName('archive').->
efe0 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 61 6e 20 61 72 63 68 69 76 setDescription('Create.an.archiv
f000 65 20 6f 66 20 74 68 69 73 20 63 6f 6d 70 6f 73 65 72 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e 73 e.of.this.composer.package').->s
f020 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
f040 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 3a ument('package',.InputArgument::
f060 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 61 72 63 68 69 76 OPTIONAL,.'The.package.to.archiv
f080 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 e.instead.of.the.current.project
f0a0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c '),.new.InputArgument('version',
f0c0 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 41 20 76 65 72 .InputArgument::OPTIONAL,.'A.ver
f0e0 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 66 69 6e 64 20 74 68 65 20 70 61 63 6b sion.constraint.to.find.the.pack
f100 61 67 65 20 74 6f 20 61 72 63 68 69 76 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f age.to.archive'),.new.InputOptio
f120 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 n('format',.'f',.InputOption::VA
f140 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 72 65 73 LUE_REQUIRED,.'Format.of.the.res
f160 75 6c 74 69 6e 67 20 61 72 63 68 69 76 65 3a 20 74 61 72 20 6f 72 20 7a 69 70 27 29 2c 0a 6e 65 ulting.archive:.tar.or.zip'),.ne
f180 77 20 49 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 w.InputOption('dir',.false,.Inpu
f1a0 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 57 72 69 74 65 20 tOption::VALUE_REQUIRED,.'Write.
f1c0 74 68 65 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 29 2c the.archive.to.this.directory'),
f1e0 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 2c 20 66 61 6c 73 65 2c 20 .new.InputOption('file',.false,.
f200 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 57 72 InputOption::VALUE_REQUIRED,.'Wr
f220 69 74 65 20 74 68 65 20 61 72 63 68 69 76 65 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 66 ite.the.archive.with.the.given.f
f240 69 6c 65 20 6e 61 6d 65 2e 27 0a 2e 27 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 66 6f 72 6d ile.name.'..'.Note.that.the.form
f260 61 74 20 77 69 6c 6c 20 62 65 20 61 70 70 65 6e 64 65 64 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 at.will.be.appended.'),.)).->set
f280 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 61 72 63 68 69 76 65 3c 2f 69 Help(<<<EOT.The.<info>archive</i
f2a0 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 6e 20 61 72 63 68 69 76 65 20 nfo>.command.creates.an.archive.
f2c0 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 6d 61 74 0a 63 6f 6e 74 61 69 6e 69 of.the.specified.format.containi
f2e0 6e 67 20 74 68 65 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 66 20 ng.the.files.and.directories.of.
f300 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 70 72 6f 6a 65 63 74 20 6f 72 20 74 68 65 20 73 70 65 63 the.Composer.project.or.the.spec
f320 69 66 69 65 64 0a 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 76 ified.package.in.the.specified.v
f340 65 72 73 69 6f 6e 20 61 6e 64 20 77 72 69 74 65 73 20 69 74 20 74 6f 20 74 68 65 20 73 70 65 63 ersion.and.writes.it.to.the.spec
f360 69 66 69 65 64 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 ified.directory...<info>php.comp
f380 6f 73 65 72 2e 70 68 61 72 20 61 72 63 68 69 76 65 20 5b 2d 2d 66 6f 72 6d 61 74 3d 7a 69 70 5d oser.phar.archive.[--format=zip]
f3a0 20 5b 2d 2d 64 69 72 3d 2f 66 6f 6f 5d 20 5b 70 61 63 6b 61 67 65 20 5b 76 65 72 73 69 6f 6e 5d .[--dir=/foo].[package.[version]
f3c0 5d 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ]</info>..EOT.).;.}..protected.f
f3e0 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.$
f400 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).
f420 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 {.$config.=.Factory::createConfi
f440 67 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f g();.$composer.=.$this->getCompo
f460 73 65 72 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f ser(false);.if.($composer).{.$co
f480 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
f4a0 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 61 72 63 68 69 76 65 27 2c 20 uginEvents::COMMAND,.'archive',.
f4c0 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
f4e0 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
f500 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
f520 65 6e 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 ent);.$composer->getEventDispatc
f540 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 45 76 65 6e her()->dispatchScript(ScriptEven
f560 74 73 3a 3a 50 52 45 5f 41 52 43 48 49 56 45 5f 43 4d 44 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c ts::PRE_ARCHIVE_CMD);.}..if.(nul
f580 6c 20 3d 3d 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 l.===.$input->getOption('format'
f5a0 29 29 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 )).{.$input->setOption('format',
f5c0 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 61 72 63 68 69 76 65 2d 66 6f 72 6d 61 74 27 29 29 .$config->get('archive-format'))
f5e0 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 ;.}.if.(null.===.$input->getOpti
f600 6f 6e 28 27 64 69 72 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 on('dir')).{.$input->setOption('
f620 64 69 72 27 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 61 72 63 68 69 76 65 2d 64 69 72 27 dir',.$config->get('archive-dir'
f640 29 29 3b 0a 7d 0a 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 ));.}..$returnCode.=.$this->arch
f660 69 76 65 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 63 6f 6e 66 69 67 2c 0a 24 69 ive(.$this->getIO(),.$config,.$i
f680 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 nput->getArgument('package'),.$i
f6a0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 nput->getArgument('version'),.$i
f6c0 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 2c 0a 24 69 6e 70 75 nput->getOption('format'),.$inpu
f6e0 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 69 72 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 t->getOption('dir'),.$input->get
f700 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 0a 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 Option('file').);..if.(0.===.$re
f720 74 75 72 6e 43 6f 64 65 20 26 26 20 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 turnCode.&&.$composer).{.$compos
f740 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
f760 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 54 5f 41 52 43 48 chScript(ScriptEvents::POST_ARCH
f780 49 56 45 5f 43 4d 44 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 43 6f 64 65 3b IVE_CMD);.}..return.$returnCode;
f7a0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 49 .}..protected.function.archive(I
f7c0 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,.
f7e0 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 69 6f 6e 20 3d 20 $packageName.=.null,.$version.=.
f800 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 73 74 20 3d 20 27 null,.$format.=.'tar',.$dest.=.'
f820 2e 27 2c 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 66 61 63 74 6f 72 79 .',.$fileName.=.null).{.$factory
f840 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 3b 0a 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 .=.new.Factory;.$downloadManager
f860 20 3d 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 .=.$factory->createDownloadManag
f880 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 er($io,.$config);.$archiveManage
f8a0 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 6e 61 67 r.=.$factory->createArchiveManag
f8c0 65 72 28 24 63 6f 6e 66 69 67 2c 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 3b 0a 0a er($config,.$downloadManager);..
f8e0 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 if.($packageName).{.$package.=.$
f900 74 68 69 73 2d 3e 73 65 6c 65 63 74 50 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 70 61 63 6b 61 67 this->selectPackage($io,.$packag
f920 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 eName,.$version);..if.(!$package
f940 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 ).{.return.1;.}.}.else.{.$packag
f960 65 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 e.=.$this->getComposer()->getPac
f980 6b 61 67 65 28 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 kage();.}..$io->writeError('<inf
f9a0 6f 3e 43 72 65 61 74 69 6e 67 20 74 68 65 20 61 72 63 68 69 76 65 20 69 6e 74 6f 20 22 27 2e 24 o>Creating.the.archive.into."'.$
f9c0 64 65 73 74 2e 27 22 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 70 61 63 6b 61 67 65 50 61 74 68 20 dest.'".</info>');.$packagePath.
f9e0 3d 20 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2d 3e 61 72 63 68 69 76 65 28 24 70 61 63 6b =.$archiveManager->archive($pack
fa00 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 64 65 73 74 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b age,.$format,.$dest,.$fileName);
fa20 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 24 73 68 6f 72 74 50 61 74 .$fs.=.new.Filesystem;.$shortPat
fa40 68 20 3d 20 24 66 73 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 67 65 74 63 77 64 h.=.$fs->findShortestPath(getcwd
fa60 28 29 2c 20 24 70 61 63 6b 61 67 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 0a 24 69 6f 2d 3e 77 (),.$packagePath,.true);..$io->w
fa80 72 69 74 65 45 72 72 6f 72 28 27 43 72 65 61 74 65 64 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 riteError('Created:.',.false);.$
faa0 69 6f 2d 3e 77 72 69 74 65 28 73 74 72 6c 65 6e 28 24 73 68 6f 72 74 50 61 74 68 29 20 3c 20 73 io->write(strlen($shortPath).<.s
fac0 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 50 61 74 68 29 20 3f 20 24 73 68 6f 72 74 50 61 74 68 trlen($packagePath).?.$shortPath
fae0 20 3a 20 24 70 61 63 6b 61 67 65 50 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a .:.$packagePath);..return.0;.}..
fb00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 61 63 6b 61 67 65 protected.function.selectPackage
fb20 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 (IOInterface.$io,.$packageName,.
fb40 24 76 65 72 73 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 $version.=.null).{.$io->writeErr
fb60 6f 72 28 27 3c 69 6e 66 6f 3e 53 65 61 72 63 68 69 6e 67 20 66 6f 72 20 74 68 65 20 73 70 65 63 or('<info>Searching.for.the.spec
fb80 69 66 69 65 64 20 70 61 63 6b 61 67 65 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 63 ified.package.</info>');..if.($c
fba0 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c omposer.=.$this->getComposer(fal
fbc0 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 se)).{.$localRepo.=.$composer->g
fbe0 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
fc00 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 epository();.$repo.=.new.Composi
fc20 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($
fc40 6c 6f 63 61 6c 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 localRepo),.$composer->getReposi
fc60 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 toryManager()->getRepositories()
fc80 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 ));.}.else.{.$defaultRepos.=.Fac
fca0 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(
fcc0 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 $this->getIO());.$io->writeError
fce0 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 65 20 ('No.composer.json.found.in.the.
fd00 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 65 61 72 63 68 69 6e 67 20 70 61 63 current.directory,.searching.pac
fd20 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 kages.from.'...implode(',.',.arr
fd40 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 72 65 70 6f 20 ay_keys($defaultRepos)));.$repo.
fd60 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 64 65 66 61 75 =.new.CompositeRepository($defau
fd80 6c 74 52 65 70 6f 73 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 72 65 70 6f 2d 3e ltRepos);.}..$packages.=.$repo->
fda0 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 findPackages($packageName,.$vers
fdc0 69 6f 6e 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 ion);..if.(count($packages).>.1)
fde0 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);.
fe00 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 6d 75 6c $io->writeError('<info>Found.mul
fe20 74 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 tiple.matches,.selected.'.$packa
fe40 67 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 ge->getPrettyString().'.</info>'
fe60 29 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 );.$io->writeError('Alternatives
fe80 20 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 .were.'.implode(',.',.array_map(
fea0 66 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 function.($p).{.return.$p->getPr
fec0 65 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 ettyString();.},.$packages)).'.'
fee0 29 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 );.$io->writeError('<comment>Ple
ff00 61 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 ase.use.a.more.specific.constrai
ff20 6e 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 nt.to.pick.a.different.package.<
ff40 2f 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 /comment>');.}.elseif.($packages
ff60 29 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 ).{.$package.=.reset($packages);
ff80 0a 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 .$io->writeError('<info>Found.an
ffa0 20 65 78 61 63 74 20 6d 61 74 63 68 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 .exact.match.'.$package->getPret
ffc0 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b tyString().'.</info>');.}.else.{
ffe0 0a 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 .$io->writeError('<error>Could.n
10000 6f 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 ot.find.a.package.matching.'.$pa
10020 63 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 ckageName.'.</error>');..return.
10040 66 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 false;.}..return.$package;.}.}.<
10060 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
10080 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 61 63 68 65 3b er\Command;..use.Composer\Cache;
100a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f .use.Composer\Factory;.use.Symfo
100c0 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
100e0 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
10100 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;
10120 0a 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 .....class.ClearCacheCommand.ext
10140 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
10160 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(
10180 27 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 'clear-cache').->setAliases(arra
101a0 79 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 y('clearcache')).->setDescriptio
101c0 6e 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 n('Clears.composer\'s.internal.p
101e0 61 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 ackage.cache.').->setHelp(<<<EOT
10200 0a 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 .The.<info>clear-cache</info>.de
10220 6c 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 letes.all.cached.packages.from.c
10240 6f 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 omposer's.cache.directory..EOT.)
10260 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .;.}..protected.function.execute
10280 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
102a0 74 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 terface.$output).{.$config.=.Fac
102c0 74 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 tory::createConfig();.$io.=.$thi
102e0 73 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 s->getIO();..$cachePaths.=.array
10300 28 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 (.'cache-dir'.=>.$config->get('c
10320 61 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 ache-dir'),.'cache-files-dir'.=>
10340 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 64 69 72 27 29 .$config->get('cache-files-dir')
10360 2c 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 ,.'cache-repo-dir'.=>.$config->g
10380 65 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 et('cache-repo-dir'),.'cache-vcs
103a0 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 63 68 65 2d 76 63 73 -dir'.=>.$config->get('cache-vcs
103c0 2d 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 -dir'),.);..foreach.($cachePaths
103e0 20 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 .as.$key.=>.$cachePath).{.$cache
10400 50 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 Path.=.realpath($cachePath);.if.
10420 28 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 (!$cachePath).{.$io->writeError(
10440 22 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 "<info>Cache.directory.does.not.
10460 65 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 exist.($key):.$cachePath</info>"
10480 29 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 );..continue;.}.$cache.=.new.Cac
104a0 68 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 he($io,.$cachePath);.if.(!$cache
104c0 2d 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 ->isEnabled()).{.$io->writeError
104e0 28 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 ("<info>Cache.is.not.enabled.($k
10500 65 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 ey):.$cachePath</info>");..conti
10520 6e 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 nue;.}..$io->writeError("<info>C
10540 6c 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 learing.cache.($key):.$cachePath
10560 3c 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 </info>");.$cache->gc(0,.0);.}..
10580 24 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 $io->writeError('<info>All.cache
105a0 73 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 s.cleared.</info>');.}.}.<?php..
105c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d ..........namespace.Composer\Com
105e0 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 mand;..use.Composer\Composer;.us
10600 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a e.Composer\Console\Application;.
10620 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
10640 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 .Composer\IO\NullIO;.use.Symfony
10660 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
10680 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
106a0 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
106c0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d se.Symfony\Component\Console\Com
106e0 6d 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 mand\Command.as.BaseCommand;....
10700 0a 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 ....abstract.class.Command.exten
10720 64 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 ds.BaseCommand.{....private.$com
10740 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 poser;.....private.$io;........p
10760 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 24 72 65 71 75 ublic.function.getComposer($requ
10780 69 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 ired.=.true,.$disablePlugins.=.f
107a0 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 alse).{.if.(null.===.$this->comp
107c0 6f 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 oser).{.$application.=.$this->ge
107e0 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e tApplication();.if.($application
10800 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 .instanceof.Application).{..$thi
10820 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 s->composer.=.$application->getC
10840 6f 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 omposer($required,.$disablePlugi
10860 6e 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 ns);.}.elseif.($required).{.thro
10880 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 43 6f 75 6c 64 20 w.new.\RuntimeException(.'Could.
108a0 6e 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 not.create.a.Composer\Composer.i
108c0 6e 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 nstance,.you.must.inject.'..'one
108e0 20 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 .if.this.command.is.not.used.wit
10900 68 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 h.a.Composer\Console\Application
10920 20 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 .instance'.);.}.}..return.$this-
10940 3e 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 >composer;.}.....public.function
10960 20 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 .setComposer(Composer.$composer)
10980 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a .{.$this->composer.=.$composer;.
109a0 7d 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 }.....public.function.resetCompo
109c0 73 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 ser().{.$this->composer.=.null;.
109e0 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 72 65 73 65 74 43 6f $this->getApplication()->resetCo
10a00 6d 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 mposer();.}.....public.function.
10a20 67 65 74 49 4f 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6f getIO().{.if.(null.===.$this->io
10a40 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 41 70 70 ).{.$application.=.$this->getApp
10a60 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 69 6e 73 lication();.if.($application.ins
10a80 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 2d 3e 69 tanceof.Application).{..$this->i
10aa0 6f 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d 20 65 6c 73 o.=.$application->getIO();.}.els
10ac0 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 3b 0a 7d 0a e.{.$this->io.=.new.NullIO();.}.
10ae0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 }..return.$this->io;.}.....publi
10b00 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 4f 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f c.function.setIO(IOInterface.$io
10b20 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 ).{.$this->io.=.$io;.}.....prote
10b40 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e cted.function.initialize(InputIn
10b60 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.
10b80 24 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 $output).{.if.(true.===.$input->
10ba0 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 hasParameterOption(array('--no-a
10bc0 6e 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 nsi')).&&.$input->hasOption('no-
10be0 70 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 progress')).{.$input->setOption(
10c00 27 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 'no-progress',.true);.}..parent:
10c20 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 0a 7d 0a :initialize($input,.$output);.}.
10c40 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
10c60 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 70 poser\Command;..use.Symfony\Comp
10c80 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
10ca0 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
10cc0 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
10ce0 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
10d00 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Option;.use.Symfony\Component\Co
10d20 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
10d40 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c e.Composer\Config;.use.Composer\
10d60 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d Config\JsonConfigSource;.use.Com
10d80 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e poser\Factory;.use.Composer\Json
10da0 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 43 6f 6d 6d \JsonFile;......class.ConfigComm
10dc0 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 and.extends.Command.{....protect
10de0 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 ed.$config;.....protected.$confi
10e00 67 46 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 53 6f 75 72 gFile;.....protected.$configSour
10e20 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 43 6f 6e 66 69 67 46 69 6c ce;.....protected.$authConfigFil
10e40 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 e;.....protected.$authConfigSour
10e60 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 ce;.....protected.function.confi
10e80 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 63 6f 6e 66 69 67 gure().{.$this.->setName('config
10ea0 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 74 20 63 6f 6e 66 69 67 20 ').->setDescription('Set.config.
10ec0 6f 70 74 69 6f 6e 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 options').->setDefinition(array(
10ee0 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 2c 20 27 67 27 2c 20 .new.InputOption('global',.'g',.
10f00 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 70 70 6c 79 20 InputOption::VALUE_NONE,.'Apply.
10f20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 20 66 69 6c command.to.the.global.config.fil
10f40 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 2c 20 27 e'),.new.InputOption('editor',.'
10f60 65 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 4f 70 e',.InputOption::VALUE_NONE,.'Op
10f80 65 6e 20 65 64 69 74 6f 72 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 75 en.editor'),.new.InputOption('au
10fa0 74 68 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e th',.'a',.InputOption::VALUE_NON
10fc0 45 2c 20 27 41 66 66 65 63 74 20 61 75 74 68 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 28 6f 6e 6c E,.'Affect.auth.config.file.(onl
10fe0 79 20 75 73 65 64 20 66 6f 72 20 2d 2d 65 64 69 74 6f 72 29 27 29 2c 0a 6e 65 77 20 49 6e 70 75 y.used.for.--editor)'),.new.Inpu
11000 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 tOption('unset',.null,.InputOpti
11020 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 55 6e 73 65 74 20 74 68 65 20 67 69 76 65 6e on::VALUE_NONE,.'Unset.the.given
11040 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 .setting-key'),.new.InputOption(
11060 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 'list',.'l',.InputOption::VALUE_
11080 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 74 74 69 6e NONE,.'List.configuration.settin
110a0 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 2c 20 27 66 gs'),.new.InputOption('file',.'f
110c0 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,.
110e0 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 6f 6f 73 65 20 61 20 64 69 66 66 65 72 65 'If.you.want.to.choose.a.differe
11100 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 nt.composer.json.or.config.json'
11120 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 2c 20 6e ),.new.InputOption('absolute',.n
11140 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 52 ull,.InputOption::VALUE_NONE,.'R
11160 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 74 63 68 eturns.absolute.paths.when.fetch
11180 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 61 64 20 ing.*-dir.config.values.instead.
111a0 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 65 6e 74 of.relative'),.new.InputArgument
111c0 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 67 20 6b ('setting-key',.null,.'Setting.k
111e0 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 69 6e 67 ey'),.new.InputArgument('setting
11200 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 52 41 59 -value',.InputArgument::IS_ARRAY
11220 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 65 6c 70 ,.'Setting.value'),.)).->setHelp
11240 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 6f 75 20 (<<<EOT.This.command.allows.you.
11260 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 65 74 74 to.edit.some.basic.composer.sett
11280 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 6f 73 65 ings.in.either.the.local.compose
112a0 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 66 69 67 r.json.file.or.the.global.config
112c0 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 73 65 74 .json.file...To.set.a.config.set
112e0 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 66 75 6c ting:......<comment>%command.ful
11300 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 3e 0a 0a l_name%.bin-dir.bin/</comment>..
11320 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 20 20 3c To.read.a.config.setting:......<
11340 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 69 6e 2d comment>%command.full_name%.bin-
11360 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 6e 66 6f dir</comment>.....Outputs:.<info
11380 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 61 6c 20 >bin</info>..To.edit.the.global.
113a0 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 6e 74 3e config.json.file:......<comment>
113c0 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 2f 63 6f %command.full_name%.--global</co
113e0 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 0a 20 20 mment>..To.add.a.repository:....
11400 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 72 ..<comment>%command.full_name%.r
11420 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 72 2e 63 epositories.foo.vcs.http://bar.c
11440 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 6f 73 69 om</comment>..To.remove.a.reposi
11460 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 6f 72 20 tory.(repo.is.a.short.alias.for.
11480 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 25 63 6f repositories):......<comment>%co
114a0 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 2e 66 6f mmand.full_name%.--unset.repo.fo
114c0 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 67 69 73 o</comment>..To.disable.packagis
114e0 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 6c 5f 6e t:......<comment>%command.full_n
11500 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 6d 6d 65 ame%.repo.packagist.false</comme
11520 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 65 73 20 nt>..You.can.alter.repositories.
11540 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 65 20 62 in.the.global.config.json.file.b
11560 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 61 6c 3c y.passing.in.the.<info>--global<
11580 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 69 6c 65 /info>.option...To.edit.the.file
115a0 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 3c 63 6f .in.an.external.editor:......<co
115c0 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 64 69 74 mment>%command.full_name%.--edit
115e0 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 65 64 69 or</comment>..To.choose.your.edi
11600 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 65 6e 76 tor.you.can.set.the."EDITOR".env
11620 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 63 6f 6e .variable...To.get.a.list.of.con
11640 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 3a 0a 0a figuration.values.in.the.file:..
11660 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 25 ....<comment>%command.full_name%
11680 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 77 61 79 .--list</comment>..You.can.alway
116a0 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 41 73 20 s.pass.more.than.one.option..As.
116c0 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 69 74 20 an.example,.if.you.want.to.edit.
116e0 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 0a 20 20 the.global.config.json.file.....
11700 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 2d ..<comment>%command.full_name%.-
11720 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 54 0a 29 -editor.--global</comment>.EOT.)
11740 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 6e 69 74 .;.}.....protected.function.init
11760 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 20 4f 75 ialize(InputInterface.$input,.Ou
11780 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 6e 74 3a tputInterface.$output).{.parent:
117a0 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 0a 0a 69 :initialize($input,.$output);..i
117c0 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 29 20 26 f.($input->getOption('global').&
117e0 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 &.null.!==.$input->getOption('fi
11800 6c 65 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 le')).{.throw.new.\RuntimeExcept
11820 69 6f 6e 28 27 2d 2d 66 69 6c 65 20 61 6e 64 20 2d 2d 67 6c 6f 62 61 6c 20 63 61 6e 20 6e 6f 74 ion('--file.and.--global.can.not
11840 20 62 65 20 63 6f 6d 62 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 .be.combined');.}..$this->config
11860 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 24 74 68 69 73 2d 3e .=.Factory::createConfig($this->
11880 67 65 74 49 4f 28 29 29 3b 0a 0a 0a 20 0a 20 24 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 24 69 6e getIO());......$configFile.=.$in
118a0 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 0a 3f 20 28 24 74 68 69 put->getOption('global').?.($thi
118c0 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 6f 6e 66 69 s->config->get('home')...'/confi
118e0 67 2e 6a 73 6f 6e 27 29 0a 3a 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 g.json').:.($input->getOption('f
11900 69 6c 65 27 29 20 3f 3a 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 29 ile').?:.trim(getenv('COMPOSER')
11920 29 20 3f 3a 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a 0a 20 69 66 20 28 24 63 ).?:.'composer.json');....if.($c
11940 6f 6e 66 69 67 46 69 6c 65 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 26 26 onfigFile.===.'composer.json'.&&
11960 20 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 20 26 26 20 72 65 .!file_exists($configFile).&&.re
11980 61 6c 70 61 74 68 28 67 65 74 63 77 64 28 29 29 20 3d 3d 3d 20 72 65 61 6c 70 61 74 68 28 24 74 alpath(getcwd()).===.realpath($t
119a0 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 7b 0a 66 69 6c his->config->get('home'))).{.fil
119c0 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6f 6e 66 69 67 46 69 6c 65 2c 20 22 7b 5c 6e e_put_contents($configFile,."{\n
119e0 7d 5c 6e 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 6e 65 }\n");.}..$this->configFile.=.ne
11a00 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e w.JsonFile($configFile);.$this->
11a20 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 configSource.=.new.JsonConfigSou
11a40 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 0a 24 61 75 74 68 43 6f rce($this->configFile);..$authCo
11a60 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
11a80 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
11aa0 6d 65 27 29 20 2e 20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 29 0a 3a 20 64 69 72 6e 61 6d 65 28 72 me')...'/auth.json').:.dirname(r
11ac0 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 29 20 2e 20 27 2f 61 75 74 68 2e 6a ealpath($configFile))...'/auth.j
11ae0 73 6f 6e 27 3b 0a 0a 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 son';..$this->authConfigFile.=.n
11b00 65 77 20 4a 73 6f 6e 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 ew.JsonFile($authConfigFile);.$t
11b20 68 69 73 2d 3e 61 75 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 his->authConfigSource.=.new.Json
11b40 43 6f 6e 66 69 67 53 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 ConfigSource($this->authConfigFi
11b60 6c 65 2c 20 74 72 75 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 le,.true);....if.($input->getOpt
11b80 69 6f 6e 28 27 67 6c 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 ion('global').&&.!$this->configF
11ba0 69 6c 65 2d 3e 65 78 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 ile->exists()).{.touch($this->co
11bc0 6e 66 69 67 46 69 6c 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 nfigFile->getPath());.$this->con
11be0 66 69 67 46 69 6c 65 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 figFile->write(array('config'.=>
11c00 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 68 69 .new.\ArrayObject));.@chmod($thi
11c20 73 2d 3e 63 6f 6e 66 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 s->configFile->getPath(),.0600);
11c40 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 67 6c 6f 62 61 6c .}.if.($input->getOption('global
11c60 27 29 20 26 26 20 21 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 ').&&.!$this->authConfigFile->ex
11c80 69 73 74 73 28 29 29 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 ists()).{.touch($this->authConfi
11ca0 67 46 69 6c 65 2d 3e 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 gFile->getPath());.$this->authCo
11cc0 6e 66 69 67 46 69 6c 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 nfigFile->write(array('http-basi
11ce0 63 27 20 3d 3e 20 6e 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 c'.=>.new.\ArrayObject,.'github-
11d00 6f 61 75 74 68 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 2c 20 27 67 69 74 oauth'.=>.new.\ArrayObject,.'git
11d20 6c 61 62 2d 6f 61 75 74 68 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 29 29 lab-oauth'.=>.new.\ArrayObject))
11d40 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e ;.@chmod($this->authConfigFile->
11d60 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d getPath(),.0600);.}..if.(!$this-
11d80 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e >configFile->exists()).{.throw.n
11da0 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 69 ew.\RuntimeException(sprintf('Fi
11dc0 6c 65 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 le."%s".cannot.be.found.in.the.c
11de0 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 2c 20 24 63 6f 6e 66 69 67 46 69 6c 65 29 29 urrent.directory',.$configFile))
11e00 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 ;.}.}.....protected.function.exe
11e20 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 cute(InputInterface.$input,.Outp
11e40 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 69 66 20 28 24 69 6e utInterface.$output).{...if.($in
11e60 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 29 29 20 7b 0a 24 65 64 69 put->getOption('editor')).{.$edi
11e80 74 6f 72 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 28 67 65 74 65 6e 76 28 27 45 44 49 tor.=.escapeshellcmd(getenv('EDI
11ea0 54 4f 52 27 29 29 3b 0a 69 66 20 28 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 64 65 66 69 TOR'));.if.(!$editor).{.if.(defi
11ec0 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
11ee0 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 6c 73 65 20 ).{.$editor.=.'notepad';.}.else.
11f00 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 2c 20 27 6e {.foreach.(array('vim',.'vi',.'n
11f20 61 6e 6f 27 2c 20 27 70 69 63 6f 27 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 ano',.'pico',.'ed').as.$candidat
11f40 65 29 20 7b 0a 69 66 20 28 65 78 65 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 69 64 61 74 e).{.if.(exec('which.'.$candidat
11f60 65 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 e)).{.$editor.=.$candidate;.brea
11f80 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f k;.}.}.}.}..$file.=.$input->getO
11fa0 70 74 69 6f 6e 28 27 61 75 74 68 27 29 20 3f 20 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 ption('auth').?.$this->authConfi
11fc0 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 gFile->getPath().:.$this->config
11fe0 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 3b 0a 73 79 73 74 65 6d 28 24 65 64 69 74 6f 72 20 File->getPath();.system($editor.
12000 2e 20 27 20 27 20 2e 20 24 66 69 6c 65 20 2e 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 ..'.'...$file...(defined('PHP_WI
12020 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 3f 20 27 27 20 3a 20 27 20 3e NDOWS_VERSION_BUILD').?.''.:.'.>
12040 20 60 74 74 79 60 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 .`tty`'));..return.0;.}..if.(!$i
12060 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 29 20 7b 0a 24 74 68 nput->getOption('global')).{.$th
12080 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 is->config->merge($this->configF
120a0 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d 65 72 ile->read());.$this->config->mer
120c0 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d 3e 61 75 74 68 ge(array('config'.=>.$this->auth
120e0 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 20 3f 20 24 74 68 69 73 2d 3e 61 75 ConfigFile->exists().?.$this->au
12100 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 20 3a 20 61 72 72 61 79 28 29 29 29 thConfigFile->read().:.array()))
12120 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 ;.}....if.($input->getOption('li
12140 73 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e st')).{.$this->listConfiguration
12160 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f ($this->config->all(),.$this->co
12180 6e 66 69 67 2d 3e 72 61 77 28 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 nfig->raw(),.$output);..return.0
121a0 3b 0a 7d 0a 0a 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 ;.}..$settingKey.=.$input->getAr
121c0 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 3b 0a 69 66 20 28 21 24 73 65 74 gument('setting-key');.if.(!$set
121e0 74 69 6e 67 4b 65 79 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 tingKey).{.return.0;.}....if.(ar
12200 72 61 79 28 29 20 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 ray().!==.$input->getArgument('s
12220 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 etting-value').&&.$input->getOpt
12240 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ion('unset')).{.throw.new.\Runti
12260 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 meException('You.can.not.combine
12280 20 61 20 73 65 74 74 69 6e 67 20 76 61 6c 75 65 20 77 69 74 68 20 2d 2d 75 6e 73 65 74 27 29 3b .a.setting.value.with.--unset');
122a0 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 .}....if.(array().===.$input->ge
122c0 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 21 24 tArgument('setting-value').&&.!$
122e0 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 24 64 61 input->getOption('unset')).{.$da
12300 74 61 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 3b 0a 69 66 20 28 70 ta.=.$this->config->all();.if.(p
12320 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 29 3f 28 reg_match('/^repos?(?:itories)?(
12340 3f 3a 5c 2e 28 2e 2b 29 29 3f 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 ?:\.(.+))?/',.$settingKey,.$matc
12360 68 65 73 29 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 hes)).{.if.(empty($matches[1])).
12380 7b 0a 24 76 61 6c 75 65 20 3d 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f {.$value.=.isset($data['reposito
123a0 72 69 65 73 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 20 ries']).?.$data['repositories'].
123c0 3a 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 :.array();.}.else.{.if.(!isset($
123e0 64 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 data['repositories'][$matches[1]
12400 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
12420 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 72 65 20 69 73 20 6e 6f 20 27 2e 24 6d 61 74 63 68 65 Exception('There.is.no.'.$matche
12440 73 5b 31 5d 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 0a s[1].'.repository.defined');.}..
12460 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 $value.=.$data['repositories'][$
12480 6d 61 74 63 68 65 73 5b 31 5d 5d 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 70 6f 73 28 matches[1]];.}.}.elseif.(strpos(
124a0 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 27 2e 27 29 29 20 7b 0a 24 62 69 74 73 20 3d 20 65 78 70 $settingKey,.'.')).{.$bits.=.exp
124c0 6c 6f 64 65 28 27 2e 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 24 64 61 74 61 20 3d 20 lode('.',.$settingKey);.$data.=.
124e0 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d 3b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b $data['config'];.$match.=.false;
12500 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 24 6b 65 79 20 .foreach.($bits.as.$bit).{.$key.
12520 3d 20 69 73 73 65 74 28 24 6b 65 79 29 20 3f 20 24 6b 65 79 2e 27 2e 27 2e 24 62 69 74 20 3a 20 =.isset($key).?.$key.'.'.$bit.:.
12540 24 62 69 74 3b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 69 73 73 65 74 28 $bit;.$match.=.false;.if.(isset(
12560 24 64 61 74 61 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 24 $data[$key])).{.$match.=.true;.$
12580 64 61 74 61 20 3d 20 24 64 61 74 61 5b 24 6b 65 79 5d 3b 0a 75 6e 73 65 74 28 24 6b 65 79 29 3b data.=.$data[$key];.unset($key);
125a0 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 6d 61 74 63 68 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c .}.}..if.(!$match).{.throw.new.\
125c0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 69 RuntimeException($settingKey.'.i
125e0 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 64 s.not.defined.');.}..$value.=.$d
12600 61 74 61 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 63 6f 6e 66 ata;.}.elseif.(isset($data['conf
12620 69 67 27 5d 5b 24 73 65 74 74 69 6e 67 4b 65 79 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 ig'][$settingKey])).{.$value.=.$
12640 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 this->config->get($settingKey,.$
12660 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 62 73 6f 6c 75 74 65 27 29 20 3f 20 30 input->getOption('absolute').?.0
12680 20 3a 20 43 6f 6e 66 69 67 3a 3a 52 45 4c 41 54 49 56 45 5f 50 41 54 48 53 29 3b 0a 7d 20 65 6c .:.Config::RELATIVE_PATHS);.}.el
126a0 73 65 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 se.{.throw.new.\RuntimeException
126c0 28 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b ($settingKey.'.is.not.defined');
126e0 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c .}..if.(is_array($value)).{.$val
12700 75 65 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 74 68 ue.=.json_encode($value);.}..$th
12720 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 is->getIO()->write($value);..ret
12740 75 72 6e 20 30 3b 0a 7d 0a 0a 24 76 61 6c 75 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 urn.0;.}..$values.=.$input->getA
12760 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 3b 20 0a 0a 24 62 6f 6f rgument('setting-value');...$boo
12780 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 leanValidator.=.function.($val).
127a0 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 74 {.return.in_array($val,.array('t
127c0 72 75 65 27 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 rue',.'false',.'1',.'0'),.true);
127e0 20 7d 3b 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 66 75 6e 63 74 69 6f .};.$booleanNormalizer.=.functio
12800 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 n.($val).{.return.$val.!==.'fals
12820 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 20 7d 3b 0a 0a 0a 20 24 75 6e 69 71 75 65 e'.&&.(bool).$val;.};....$unique
12840 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 ConfigValues.=.array(.'process-t
12860 69 6d 65 6f 75 74 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 imeout'.=>.array('is_numeric',.'
12880 69 6e 74 76 61 6c 27 29 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 intval'),.'use-include-path'.=>.
128a0 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 6c 65 61 array($booleanValidator,.$boolea
128c0 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c nNormalizer),.'preferred-install
128e0 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 20 72 65 '.=>.array(.function.($val).{.re
12900 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 61 75 74 6f 27 turn.in_array($val,.array('auto'
12920 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 64 69 73 74 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 ,.'source',.'dist'),.true);.},.f
12940 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 2c unction.($val).{.return.$val;.},
12960 0a 29 2c 0a 27 73 74 6f 72 65 2d 61 75 74 68 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 .),.'store-auths'.=>.array(.func
12980 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 79 28 24 76 tion.($val).{.return.in_array($v
129a0 61 6c 2c 20 61 72 72 61 79 28 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 70 72 6f 6d al,.array('true',.'false',.'prom
129c0 70 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 6c 29 20 pt'),.true);.},.function.($val).
129e0 7b 0a 69 66 20 28 27 70 72 6f 6d 70 74 27 20 3d 3d 3d 20 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 {.if.('prompt'.===.$val).{.retur
12a00 6e 20 27 70 72 6f 6d 70 74 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 n.'prompt';.}..return.$val.!==.'
12a20 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 0a 7d 2c 0a 29 2c 0a 27 6e 6f false'.&&.(bool).$val;.},.),.'no
12a40 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 tify-on-install'.=>.array($boole
12a60 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)
12a80 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 ,.'vendor-dir'.=>.array('is_stri
12aa0 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 ng',.function.($val).{.return.$v
12ac0 61 6c 3b 20 7d 29 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 al;.}),.'bin-dir'.=>.array('is_s
12ae0 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 72 6e tring',.function.($val).{.return
12b00 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 61 72 63 68 69 76 65 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 .$val;.}),.'archive-dir'.=>.arra
12b20 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b y('is_string',.function.($val).{
12b40 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 61 72 63 68 69 76 65 2d 66 6f 72 6d 61 .return.$val;.}),.'archive-forma
12b60 74 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 6f t'.=>.array('is_string',.functio
12b80 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 63 n.($val).{.return.$val;.}),.'cac
12ba0 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 75 he-dir'.=>.array('is_string',.fu
12bc0 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 2c nction.($val).{.return.$val;.}),
12be0 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 5f .'cache-files-dir'.=>.array('is_
12c00 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 72 string',.function.($val).{.retur
12c20 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 20 n.$val;.}),.'cache-repo-dir'.=>.
12c40 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 array('is_string',.function.($va
12c60 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 73 l).{.return.$val;.}),.'cache-vcs
12c80 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 -dir'.=>.array('is_string',.func
12ca0 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 tion.($val).{.return.$val;.}),.'
12cc0 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 27 cache-ttl'.=>.array('is_numeric'
12ce0 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 3d ,.'intval'),.'cache-files-ttl'.=
12d00 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 2c >.array('is_numeric',.'intval'),
12d20 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 28 .'cache-files-maxsize'.=>.array(
12d40 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 6d .function.($val).{.return.preg_m
12d60 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 5d atch('/^\s*([0-9.]+)\s*(?:([kmg]
12d80 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 7d )(?:i?b)?)?\s*$/i',.$val).>.0;.}
12da0 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 3b ,.function.($val).{.return.$val;
12dc0 20 7d 2c 0a 29 2c 0a 27 62 69 6e 2d 63 6f 6d 70 61 74 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 .},.),.'bin-compat'.=>.array(.fu
12de0 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 79 28 nction.($val).{.return.in_array(
12e00 24 76 61 6c 2c 20 61 72 72 61 79 28 27 61 75 74 6f 27 2c 20 27 66 75 6c 6c 27 29 29 3b 20 7d 2c $val,.array('auto',.'full'));.},
12e20 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 3b 20 .function.($val).{.return.$val;.
12e40 7d 2c 0a 29 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 20 3d 3e 20 61 72 72 61 79 },.),.'discard-changes'.=>.array
12e60 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 72 (.function.($val).{.return.in_ar
12e80 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 2c ray($val,.array('stash',.'true',
12ea0 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 66 .'false',.'1',.'0'),.true);.},.f
12ec0 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 3d unction.($val).{.if.('stash'.===
12ee0 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 75 .$val).{.return.'stash';.}..retu
12f00 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 76 rn.$val.!==.'false'.&&.(bool).$v
12f20 61 6c 3b 0a 7d 2c 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 al;.},.),.'autoloader-suffix'.=>
12f40 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
12f60 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
12f80 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
12fa0 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
12fc0 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
12fe0 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
13000 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),
13020 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($
13040 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
13060 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'.
13080 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
130a0 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
130c0 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
130e0 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).{.
13100 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.'
13120 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
13140 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
13160 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')))
13180 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
131a0 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
131c0 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
131e0 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 2c 0a 29 2c 0a 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e turn.$vals;.},.),.'github-domain
13200 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).{.
13220 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.'
13240 61 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 array.expected';.}..return.true;
13260 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 74 75 72 6e 20 24 76 .},.function.($vals).{.return.$v
13280 61 6c 73 3b 0a 7d 2c 0a 29 2c 0a 27 67 69 74 6c 61 62 2d 64 6f 6d 61 69 6e 73 27 20 3d 3e 20 61 als;.},.),.'gitlab-domains'.=>.a
132a0 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 66 20 28 21 69 73 rray(.function.($vals).{.if.(!is
132c0 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 72 72 61 79 20 65 _array($vals)).{.return.'array.e
132e0 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 7d 2c 0a 66 75 6e xpected';.}..return.true;.},.fun
13300 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 2c ction.($vals).{.return.$vals;.},
13320 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 66 69 67 56 61 .),.);..foreach.($uniqueConfigVa
13340 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 20 7b 0a 69 lues.as.$name.=>.$callbacks).{.i
13360 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 69 66 20 28 f.($settingKey.===.$name).{.if.(
13380 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 72 65 $input->getOption('unset')).{.re
133a0 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 6d 6f 76 65 turn.$this->configSource->remove
133c0 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 7d 0a 0a 6c ConfigSetting($settingKey);.}..l
133e0 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 20 3d 20 24 ist($validator,.$normalizer).=.$
13400 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 24 76 61 6c 75 callbacks;.if.(1.!==.count($valu
13420 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 es)).{.throw.new.\RuntimeExcepti
13440 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 61 6c 75 65 2e on('You.can.only.pass.one.value.
13460 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
13480 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 0a 0a 69 66 20 ig.process-timeout.300');.}..if.
134a0 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 6c 69 64 61 74 (true.!==.$validation.=.$validat
134c0 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 20 5c 52 75 6e or($values[0])).{.throw.new.\Run
134e0 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 22 20 69 73 20 timeException(sprintf(.'"%s".is.
13500 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f an.invalid.value'.($validation.?
13520 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 24 76 61 .'.('.$validation.')'.:.''),.$va
13540 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 2d 3e 63 6f 6e lues[0].));.}..return.$this->con
13560 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 73 65 74 figSource->addConfigSetting($set
13580 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 73 5b 30 5d 29 tingKey,.$normalizer($values[0])
135a0 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 69 67 56 61 6c );.}.}..foreach.($multiConfigVal
135c0 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 20 7b 0a 69 66 ues.as.$name.=>.$callbacks).{.if
135e0 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 69 66 20 28 24 .($settingKey.===.$name).{.if.($
13600 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 72 65 74 input->getOption('unset')).{.ret
13620 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 6d 6f 76 65 43 urn.$this->configSource->removeC
13640 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 7d 0a 0a 6c 69 onfigSetting($settingKey);.}..li
13660 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 20 3d 20 24 63 st($validator,.$normalizer).=.$c
13680 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 69 64 61 74 69 allbacks;.if.(true.!==.$validati
136a0 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 0a 74 68 72 6f on.=.$validator($values)).{.thro
136c0 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 w.new.\RuntimeException(sprintf(
136e0 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 24 76 61 6c 69 .'%s.is.an.invalid.value'.($vali
13700 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 dation.?.'.('.$validation.')'.:.
13720 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 29 3b 0a 7d 0a ''),.json_encode($values).));.}.
13740 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 64 .return.$this->configSource->add
13760 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 24 6e 6f 72 6d ConfigSetting($settingKey,.$norm
13780 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 20 28 70 72 65 alizer($values));.}.}....if.(pre
137a0 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 29 3f 5c 2e 28 g_match('/^repos?(?:itories)?\.(
137c0 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 73 29 29 20 7b .+)/',.$settingKey,.$matches)).{
137e0 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'))
13800 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
13820 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 29 3b 0a 7d 0a emoveRepository($matches[1]);.}.
13840 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 7b 0a 72 65 74 .if.(2.===.count($values)).{.ret
13860 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 6f urn.$this->configSource->addRepo
13880 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 27 74 79 70 65 sitory($matches[1],.array(.'type
138a0 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 76 61 6c 75 65 '.=>.$values[0],.'url'.=>.$value
138c0 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 74 28 24 76 61 s[1],.));.}..if.(1.===.count($va
138e0 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 28 24 76 61 6c lues)).{.$bool.=.strtolower($val
13900 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 65 61 6e 56 61 ues[0]);.if.(true.===.$booleanVa
13920 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 20 24 62 6f 6f lidator($bool).&&.false.===.$boo
13940 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 74 75 72 6e 20 leanNormalizer($bool)).{.return.
13960 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f $this->configSource->addReposito
13980 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 0a 0a 74 68 72 ry($matches[1],.false);.}.}..thr
139a0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 ow.new.\RuntimeException('You.mu
139c0 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 20 45 78 61 6d st.pass.the.type.and.a.url..Exam
139e0 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 72 65 ple:.php.composer.phar.config.re
13a00 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 72 2e 63 6f positories.foo.vcs.http://bar.co
13a20 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 5e 70 6c 61 74 m');.}....if.(preg_match('/^plat
13a40 66 6f 72 6d 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 form\.(.+)/',.$settingKey,.$matc
13a60 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 hes)).{.if.($input->getOption('u
13a80 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f nset')).{.return.$this->configSo
13aa0 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 73 65 74 74 69 urce->removeConfigSetting($setti
13ac0 6e 67 4b 65 79 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 ngKey);.}..return.$this->configS
13ae0 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 73 65 74 74 69 6e 67 ource->addConfigSetting($setting
13b00 4b 65 79 2c 20 24 76 61 6c 75 65 73 5b 30 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f Key,.$values[0]);.}....if.(preg_
13b20 6d 61 74 63 68 28 27 2f 5e 28 67 69 74 68 75 62 2d 6f 61 75 74 68 7c 67 69 74 6c 61 62 2d 6f 61 match('/^(github-oauth|gitlab-oa
13b40 75 74 68 7c 68 74 74 70 2d 62 61 73 69 63 29 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 69 6e uth|http-basic)\.(.+)/',.$settin
13b60 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 gKey,.$matches)).{.if.($input->g
13b80 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 etOption('unset')).{.$this->auth
13ba0 43 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e ConfigSource->removeConfigSettin
13bc0 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 29 3b 0a g($matches[1].'.'.$matches[2]);.
13be0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 $this->configSource->removeConfi
13c00 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 74 63 68 65 gSetting($matches[1].'.'.$matche
13c20 73 5b 32 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b s[2]);..return;.}..if.($matches[
13c40 31 5d 20 3d 3d 3d 20 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 20 7c 7c 20 24 6d 61 74 63 68 65 1].===.'github-oauth'.||.$matche
13c60 73 5b 31 5d 20 3d 3d 3d 20 27 67 69 74 6c 61 62 2d 6f 61 75 74 68 27 29 20 7b 0a 69 66 20 28 31 s[1].===.'gitlab-oauth').{.if.(1
13c80 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 .!==.count($values)).{.throw.new
13ca0 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 61 72 67 .\RuntimeException('Too.many.arg
13cc0 75 6d 65 6e 74 73 2c 20 65 78 70 65 63 74 65 64 20 6f 6e 6c 79 20 6f 6e 65 20 74 6f 6b 65 6e 27 uments,.expected.only.one.token'
13ce0 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 );.}.$this->configSource->remove
13d00 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 27 2e 27 2e 24 6d ConfigSetting($matches[1].'.'.$m
13d20 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 atches[2]);.$this->authConfigSou
13d40 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 rce->addConfigSetting($matches[1
13d60 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 24 76 61 6c 75 65 73 5b 30 5d 29 3b 0a ].'.'.$matches[2],.$values[0]);.
13d80 7d 20 65 6c 73 65 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 68 74 74 70 2d }.elseif.($matches[1].===.'http-
13da0 62 61 73 69 63 27 29 20 7b 0a 69 66 20 28 32 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 basic').{.if.(2.!==.count($value
13dc0 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 69 6f s)).{.throw.new.\RuntimeExceptio
13de0 6e 28 27 45 78 70 65 63 74 65 64 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 20 28 75 73 65 72 6e n('Expected.two.arguments.(usern
13e00 61 6d 65 2c 20 70 61 73 73 77 6f 72 64 29 2c 20 67 6f 74 20 27 2e 63 6f 75 6e 74 28 24 76 61 6c ame,.password),.got.'.count($val
13e20 75 65 73 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 ues));.}.$this->configSource->re
13e40 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 27 2e moveConfigSetting($matches[1].'.
13e60 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 43 6f 6e 66 69 '.$matches[2]);.$this->authConfi
13e80 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 6d 61 74 63 68 gSource->addConfigSetting($match
13ea0 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 61 72 72 61 79 28 27 75 73 es[1].'.'.$matches[2],.array('us
13ec0 65 72 6e 61 6d 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 20 27 70 61 73 73 77 6f 72 64 ername'.=>.$values[0],.'password
13ee0 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 31 5d 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a '.=>.$values[1]));.}..return;.}.
13f00 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
13f20 74 69 6f 6e 28 27 53 65 74 74 69 6e 67 20 27 2e 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 64 6f tion('Setting.'.$settingKey.'.do
13f40 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 72 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 es.not.exist.or.is.not.supported
13f60 20 62 79 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .by.this.command');.}..........p
13f80 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 rotected.function.listConfigurat
13fa0 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 74 65 6e 74 73 2c 20 61 72 72 61 79 20 24 72 61 77 43 ion(array.$contents,.array.$rawC
13fc0 6f 6e 74 65 6e 74 73 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 ontents,.OutputInterface.$output
13fe0 2c 20 24 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 72 69 67 4b 20 3d 20 24 6b 3b 0a 24 69 6f 20 ,.$k.=.null).{.$origK.=.$k;.$io.
14000 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 =.$this->getIO();.foreach.($cont
14020 65 6e 74 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b ents.as.$key.=>.$value).{.if.($k
14040 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 72 72 .===.null.&&.!in_array($key,.arr
14060 61 79 28 27 63 6f 6e 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 29 20 7b ay('config',.'repositories'))).{
14080 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 61 77 56 61 6c 20 3d 20 69 73 73 65 74 28 24 72 .continue;.}..$rawVal.=.isset($r
140a0 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b 65 79 5d 29 20 3f 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 awContents[$key]).?.$rawContents
140c0 5b 24 6b 65 79 5d 20 3a 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 [$key].:.null;..if.(is_array($va
140e0 6c 75 65 29 20 26 26 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 76 61 6c 75 65 29 lue).&&.(!is_numeric(key($value)
14100 29 20 7c 7c 20 28 24 6b 65 79 20 3d 3d 3d 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 26 26 ).||.($key.===.'repositories'.&&
14120 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6b 29 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 65 70 .null.===.$k))).{.$k..=.preg_rep
14140 6c 61 63 65 28 27 7b 5e 63 6f 6e 66 69 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e 20 27 lace('{^config\.}',.'',.$key...'
14160 2e 27 29 3b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 76 .');.$this->listConfiguration($v
14180 61 6c 75 65 2c 20 24 72 61 77 56 61 6c 2c 20 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 24 6b 20 alue,.$rawVal,.$output,.$k);.$k.
141a0 3d 20 24 6f 72 69 67 4b 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 =.$origK;..continue;.}..if.(is_a
141c0 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 5f 6d rray($value)).{.$value.=.array_m
141e0 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 61 ap(function.($val).{.return.is_a
14200 72 72 61 79 28 24 76 61 6c 29 20 3f 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 29 20 3a rray($val).?.json_encode($val).:
14220 20 24 76 61 6c 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 24 76 61 6c 75 65 20 3d 20 27 5b 27 .$val;.},.$value);..$value.=.'['
14240 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 6c 75 65 29 2e 27 5d 27 3b 0a 7d 0a 0a 69 .implode(',.',.$value).']';.}..i
14260 66 20 28 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 76 f.(is_bool($value)).{.$value.=.v
14280 61 72 5f 65 78 70 6f 72 74 28 24 76 61 6c 75 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 ar_export($value,.true);.}..if.(
142a0 69 73 5f 73 74 72 69 6e 67 28 24 72 61 77 56 61 6c 29 20 26 26 20 24 72 61 77 56 61 6c 20 21 3d is_string($rawVal).&&.$rawVal.!=
142c0 20 24 76 61 6c 75 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 5b 3c 63 6f 6d 6d 65 6e 74 .$value).{.$io->write('[<comment
142e0 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 6e 74 3e 5d 20 3c 69 >'...$k...$key...'</comment>].<i
14300 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 24 76 61 6c 75 65 20 nfo>'...$rawVal...'.('...$value.
14320 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 69 6f 2d 3e 77 72 69 ..')</info>');.}.else.{.$io->wri
14340 74 65 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c te('[<comment>'...$k...$key...'<
14360 2f 63 6f 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 3c /comment>].<info>'...$value...'<
14380 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a /info>');.}.}.}.}.<?php.........
143a0 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;..
143c0 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
143e0 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 r\Factory;.use.Composer\Installe
14400 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 50 72 6f 6a 65 63 r;.use.Composer\Installer\Projec
14420 74 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c tInstaller;.use.Composer\Install
14440 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 er\InstallationManager;.use.Comp
14460 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
14480 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
144a0 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
144c0 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
144e0 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
14500 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 53 65 6c poser\Package\Version\VersionSel
14520 65 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 ector;.use.Composer\Repository\C
14540 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c omposerRepository;.use.Composer\
14560 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;.
14580 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 use.Composer\Repository\Filesyst
145a0 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 emRepository;.use.Composer\Repos
145c0 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 itory\InstalledFilesystemReposit
145e0 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 ory;.use.Composer\Script\ScriptE
14600 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e vents;.use.Symfony\Component\Con
14620 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
14640 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
14660 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
14680 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 ent\Console\Input\InputOption;.u
146a0 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
146c0 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
146e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f \Component\Finder\Finder;.use.Co
14700 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
14720 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 er\Config\JsonConfigSource;.use.
14740 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f Composer\Util\Filesystem;.use.Co
14760 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 mposer\Util\RemoteFilesystem;.us
14780 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
147a0 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 50 onParser;..........class.CreateP
147c0 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a rojectCommand.extends.Command.{.
147e0 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().{
14800 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 .$this.->setName('create-project
14820 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 6e 65 77 20 ').->setDescription('Create.new.
14840 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 67 69 76 65 project.from.a.package.into.give
14860 6e 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 n.directory.').->setDefinition(a
14880 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 rray(.new.InputArgument('package
148a0 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 ',.InputArgument::OPTIONAL,.'Pac
148c0 6b 61 67 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 27 29 2c 0a 6e 65 77 kage.name.to.be.installed'),.new
148e0 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 2c 20 49 6e 70 75 .InputArgument('directory',.Inpu
14900 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 44 69 72 65 63 74 6f 72 79 20 tArgument::OPTIONAL,.'Directory.
14920 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 72 65 61 74 65 where.the.files.should.be.create
14940 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 d'),.new.InputArgument('version'
14960 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 ,.InputArgument::OPTIONAL,.'Vers
14980 69 6f 6e 2c 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 20 74 6f 20 6c 61 74 65 73 74 27 29 2c 0a 6e ion,.will.default.to.latest'),.n
149a0 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 2c ew.InputOption('stability',.'s',
149c0 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 4d .InputOption::VALUE_REQUIRED,.'M
149e0 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 65 64 20 28 75 6e 6c 65 73 73 inimum-stability.allowed.(unless
14a00 20 61 20 76 65 72 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 29 2e 27 29 2c 0a 6e 65 77 .a.version.is.specified).'),.new
14a20 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 .InputOption('prefer-source',.nu
14a40 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f ll,.InputOption::VALUE_NONE,.'Fo
14a60 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 rces.installation.from.package.s
14a80 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 ources.when.possible,.including.
14aa0 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 VCS.information.'),.new.InputOpt
14ac0 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 ion('prefer-dist',.null,.InputOp
14ae0 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c tion::VALUE_NONE,.'Forces.instal
14b00 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f lation.from.package.dist.even.fo
14b20 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 r.dev.versions.'),.new.InputOpti
14b40 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 on('repository-url',.null,.Input
14b60 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 69 63 6b 20 61 20 Option::VALUE_REQUIRED,.'Pick.a.
14b80 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 74 6f 20 6c 6f 6f 6b different.repository.url.to.look
14ba0 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 .for.the.package.'),.new.InputOp
14bc0 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 tion('dev',.null,.InputOption::V
14be0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e ALUE_NONE,.'Enables.installation
14c00 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 .of.require-dev.packages.(enable
14c20 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 d.by.default,.only.present.for.B
14c40 43 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c C).'),.new.InputOption('no-dev',
14c60 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,.
14c80 27 44 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 'Disables.installation.of.requir
14ca0 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 e-dev.packages.'),.new.InputOpti
14cc0 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 on('no-plugins',.null,.InputOpti
14ce0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 61 on::VALUE_NONE,.'Whether.to.disa
14d00 62 6c 65 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ble.plugins.'),.new.InputOption(
14d20 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 'no-custom-installers',.null,.In
14d40 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 putOption::VALUE_NONE,.'DEPRECAT
14d60 45 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e ED:.Use.no-plugins.instead.'),.n
14d80 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c ew.InputOption('no-scripts',.nul
14da0 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 l,.InputOption::VALUE_NONE,.'Whe
14dc0 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c ther.to.prevent.execution.of.all
14de0 20 64 65 66 69 6e 65 64 20 73 63 72 69 70 74 73 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 63 .defined.scripts.in.the.root.pac
14e00 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f kage.'),.new.InputOption('no-pro
14e20 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 gress',.null,.InputOption::VALUE
14e40 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 _NONE,.'Do.not.output.download.p
14e60 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6b 65 65 rogress.'),.new.InputOption('kee
14e80 70 2d 76 63 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 p-vcs',.null,.InputOption::VALUE
14ea0 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 64 65 6c 65 74 _NONE,.'Whether.to.prevent.delet
14ec0 69 6f 6e 20 76 63 73 20 66 6f 6c 64 65 72 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 ion.vcs.folder.'),.new.InputOpti
14ee0 6f 6e 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 on('no-install',.null,.InputOpti
14f00 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 73 6b 69 70 on::VALUE_NONE,.'Whether.to.skip
14f20 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 65 70 .installation.of.the.package.dep
14f40 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 6e 28 27 69 endencies.'),.new.InputOption('i
14f60 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 2c 20 49 6e 70 75 gnore-platform-reqs',.null,.Inpu
14f80 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 72 65 20 70 6c 61 tOption::VALUE_NONE,.'Ignore.pla
14fa0 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 65 78 74 2d 20 70 tform.requirements.(php.&.ext-.p
14fc0 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 ackages).'),.)).->setHelp(<<<EOT
14fe0 0a 54 68 65 20 3c 69 6e 66 6f 3e 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e .The.<info>create-project</info>
15000 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 .command.creates.a.new.project.f
15020 72 6f 6d 20 61 20 67 69 76 65 6e 0a 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 rom.a.given.package.into.a.new.d
15040 69 72 65 63 74 6f 72 79 2e 20 49 66 20 65 78 65 63 75 74 65 64 20 77 69 74 68 6f 75 74 20 70 61 irectory..If.executed.without.pa
15060 72 61 6d 73 20 61 6e 64 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 0a 77 69 74 68 20 61 20 63 rams.and.in.a.directory.with.a.c
15080 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 74 20 69 6e 73 74 61 6c 6c 73 20 74 68 omposer.json.file.it.installs.th
150a0 65 20 70 61 63 6b 61 67 65 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 e.packages.for.the.current.proje
150c0 63 74 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f ct...You.can.use.this.command.to
150e0 20 62 6f 6f 74 73 74 72 61 70 20 6e 65 77 20 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 .bootstrap.new.projects.or.setup
15100 20 61 20 63 6c 65 61 6e 0a 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 .a.clean.version-controlled.inst
15120 61 6c 6c 61 74 69 6f 6e 20 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 allation.for.developers.of.your.
15140 70 72 6f 6a 65 63 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 project...<info>php.composer.pha
15160 72 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 r.create-project.vendor/project.
15180 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f target-directory.[version]</info
151a0 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 72 73 >..You.can.also.specify.the.vers
151c0 69 6f 6e 20 77 69 74 68 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 75 73 69 6e 67 20 ion.with.the.package.name.using.
151e0 3d 20 6f 72 20 3a 20 61 73 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c =.or.:.as.separator...To.install
15200 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 2c 20 65 69 74 68 65 72 20 73 70 65 63 69 .unstable.packages,.either.speci
15220 66 79 20 74 68 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 77 61 6e 74 2c 20 6f 72 20 75 73 65 20 fy.the.version.you.want,.or.use.
15240 74 68 65 0a 2d 2d 73 74 61 62 69 6c 69 74 79 3d 64 65 76 20 28 77 68 65 72 65 20 64 65 76 20 63 the.--stability=dev.(where.dev.c
15260 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 52 43 2c 20 62 65 74 61 2c 20 61 6c 70 68 61 20 6f 72 20 an.be.one.of.RC,.beta,.alpha.or.
15280 64 65 76 29 2e 0a 0a 54 6f 20 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b dev)...To.setup.a.developer.work
152a0 61 62 6c 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 able.version.you.should.create.t
152c0 68 65 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 he.project.using.the.source.cont
152e0 72 6f 6c 6c 65 64 20 63 6f 64 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e rolled.code.by.appending.the.<in
15300 66 6f 3e 27 2d 2d 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 fo>'--prefer-source'</info>.flag
15320 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f ...To.install.a.package.from.ano
15340 74 68 65 72 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 ther.repository.than.the.default
15360 20 6f 6e 65 20 79 6f 75 0a 63 61 6e 20 70 61 73 73 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 .one.you.can.pass.the.<info>'--r
15380 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 epository-url=http://myrepositor
153a0 79 2e 6f 72 67 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a y.org'</info>.flag...EOT.).;.}..
153c0 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
153e0 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
15400 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a e.$output).{.$config.=.Factory::
15420 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 2d 3e 67 65 74 createConfig();.$io.=.$this->get
15440 49 4f 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 50 72 65 66 65 72 72 65 64 4f 70 74 IO();..$this->updatePreferredOpt
15460 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 65 72 53 6f 75 ions($config,.$input,.$preferSou
15480 72 63 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 69 rce,.$preferDist,.true);..if.($i
154a0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 nput->getOption('no-custom-insta
154c0 6c 6c 65 72 73 27 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 llers')).{.$io->writeError('<war
154e0 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 ning>You.are.using.the.deprecate
15500 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 22 2e d.option."no-custom-installers".
15520 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 72 6e .Use."no-plugins".instead.</warn
15540 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c ing>');.$input->setOption('no-pl
15560 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ugins',.true);.}..return.$this->
15580 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 0a 24 69 6f 2c 0a 24 63 6f 6e 66 69 67 2c 0a 24 69 installProject(.$io,.$config,.$i
155a0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 nput->getArgument('package'),.$i
155c0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 29 2c 0a nput->getArgument('directory'),.
155e0 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a $input->getArgument('version'),.
15600 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 2c 0a $input->getOption('stability'),.
15620 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 0a 24 70 72 65 66 65 72 44 69 73 74 2c 0a 21 24 69 6e $preferSource,.$preferDist,.!$in
15640 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 0a 24 69 6e 70 75 74 put->getOption('no-dev'),.$input
15660 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 29 2c 0a 24 ->getOption('repository-url'),.$
15680 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 2c 0a input->getOption('no-plugins'),.
156a0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 2c $input->getOption('no-scripts'),
156c0 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 29 2c 0a .$input->getOption('keep-vcs'),.
156e0 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')
15700 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 ,.$input->getOption('no-install'
15720 29 2c 0a 24 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 ),.$input->getOption('ignore-pla
15740 74 66 6f 72 6d 2d 72 65 71 73 27 29 2c 0a 24 69 6e 70 75 74 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 tform-reqs'),.$input.);.}..publi
15760 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 49 4f 49 6e 74 65 c.function.installProject(IOInte
15780 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 70 61 63 6b rface.$io,.Config.$config,.$pack
157a0 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 2c 20 24 70 61 63 ageName,.$directory.=.null,.$pac
157c0 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 6c 69 74 79 20 3d kageVersion.=.null,.$stability.=
157e0 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 20 66 61 6c 73 65 .'stable',.$preferSource.=.false
15800 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 73 74 61 6c 6c 44 ,.$preferDist.=.false,.$installD
15820 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 evPackages.=.false,.$repositoryU
15840 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 20 3d 20 66 61 6c rl.=.null,.$disablePlugins.=.fal
15860 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 70 56 63 73 se,.$noScripts.=.false,.$keepVcs
15880 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 6c 73 65 2c 20 24 .=.false,.$noProgress.=.false,.$
158a0 6e 6f 49 6e 73 74 61 6c 6c 20 3d 20 66 61 6c 73 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f noInstall.=.false,.$ignorePlatfo
158c0 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 rmReqs.=.false,.InputInterface.$
158e0 69 6e 70 75 74 29 0a 7b 0a 24 6f 6c 64 43 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 0a 0a 20 input).{.$oldCwd.=.getcwd();....
15900 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);
15920 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 ..if.($packageName.!==.null).{.$
15940 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c installedFromVcs.=.$this->instal
15960 6c 52 6f 6f 74 50 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 63 6b lRootPackage($io,.$config,.$pack
15980 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 2c 20 24 70 61 63 6b 61 67 65 56 65 72 ageName,.$directory,.$packageVer
159a0 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c sion,.$stability,.$preferSource,
159c0 20 24 70 72 65 66 65 72 44 69 73 74 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 .$preferDist,.$installDevPackage
159e0 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 s,.$repositoryUrl,.$disablePlugi
15a00 6e 73 2c 20 24 6e 6f 53 63 72 69 70 74 73 2c 20 24 6b 65 65 70 56 63 73 2c 20 24 6e 6f 50 72 6f ns,.$noScripts,.$keepVcs,.$noPro
15a20 67 72 65 73 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 gress);.}.else.{.$installedFromV
15a40 63 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f cs.=.false;.}..$composer.=.Facto
15a60 72 79 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c ry::create($io,.null,.$disablePl
15a80 75 67 69 6e 73 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 ugins);.$composer->getDownloadMa
15aa0 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 6e 6f 50 nager()->setOutputProgress(!$noP
15ac0 72 6f 67 72 65 73 73 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 rogress);..$fs.=.new.Filesystem(
15ae0 29 3b 0a 0a 69 66 20 28 24 6e 6f 53 63 72 69 70 74 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a );..if.($noScripts.===.false).{.
15b00 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 ..$composer->getEventDispatcher(
15b20 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a )->dispatchScript(ScriptEvents::
15b40 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 2c 20 24 69 6e 73 74 POST_ROOT_PACKAGE_INSTALL,.$inst
15b60 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 24 72 6f 6f 74 50 61 63 6b 61 67 65 allDevPackages);.}..$rootPackage
15b80 43 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 3b Config.=.$composer->getConfig();
15ba0 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 50 72 65 66 65 72 72 65 64 4f 70 74 69 6f 6e 73 28 24 .$this->updatePreferredOptions($
15bc0 72 6f 6f 74 50 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 69 6e 70 75 74 2c 20 24 70 72 65 66 rootPackageConfig,.$input,.$pref
15be0 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 0a 20 69 66 20 28 24 erSource,.$preferDist);....if.($
15c00 6e 6f 49 6e 73 74 61 6c 6c 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 noInstall.===.false).{.$installe
15c20 72 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 r.=.Installer::create($io,.$comp
15c40 6f 73 65 72 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 oser);.$installer->setPreferSour
15c60 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 ce($preferSource).->setPreferDis
15c80 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 73 t($preferDist).->setDevMode($ins
15ca0 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 tallDevPackages).->setRunScripts
15cc0 28 21 24 6e 6f 53 63 72 69 70 74 73 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 (!$noScripts).->setIgnorePlatfor
15ce0 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 mRequirements($ignorePlatformReq
15d00 73 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6e 73 s);..if.($disablePlugins).{.$ins
15d20 74 61 6c 6c 65 72 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 24 73 74 taller->disablePlugins();.}..$st
15d40 61 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 30 20 atus.=.$installer->run();.if.(0.
15d60 21 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a 7d !==.$status).{.return.$status;.}
15d80 0a 7d 0a 0a 24 68 61 73 56 63 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 3b .}..$hasVcs.=.$installedFromVcs;
15da0 0a 69 66 20 28 21 24 6b 65 65 70 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d .if.(!$keepVcs.&&.$installedFrom
15dc0 56 63 73 0a 26 26 20 28 0a 21 24 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7c Vcs.&&.(.!$io->isInteractive().|
15de0 7c 20 24 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e 66 6f 3e 44 6f |.$io->askConfirmation('<info>Do
15e00 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 73 74 69 6e 67 .you.want.to.remove.the.existing
15e20 20 56 43 53 20 28 2e 67 69 74 2c 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 3f 3c 2f 69 6e .VCS.(.git,..svn..).history?</in
15e40 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 2c fo>.[<comment>Y,n</comment>]?.',
15e60 20 74 72 75 65 29 0a 29 0a 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 .true).).).{.$finder.=.new.Finde
15e80 72 28 29 3b 0a 24 66 69 6e 64 65 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 65 63 74 6f 72 r();.$finder->depth(0)->director
15ea0 69 65 73 28 29 2d 3e 69 6e 28 67 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 ies()->in(getcwd())->ignoreVCS(f
15ec0 61 6c 73 65 29 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 66 6f alse)->ignoreDotFiles(false);.fo
15ee0 72 65 61 63 68 20 28 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 reach.(array('.svn',.'_svn',.'CV
15f00 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e S',.'_darcs',.'.arch-params',.'.
15f20 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 monotone',.'.bzr',.'.git',.'.hg'
15f40 29 20 61 73 20 24 76 63 73 4e 61 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e 61 6d 65 28 24 ).as.$vcsName).{.$finder->name($
15f60 76 63 73 4e 61 6d 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 69 72 73 20 3d 20 69 74 65 72 61 vcsName);.}..try.{.$dirs.=.itera
15f80 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 66 69 tor_to_array($finder);.unset($fi
15fa0 6e 64 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b nder);.foreach.($dirs.as.$dir).{
15fc0 0a 69 66 20 28 21 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 .if.(!$fs->removeDirectory($dir)
15fe0 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(
16000 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 6d 6f 76 65 20 27 2e 24 64 69 72 29 3b 0a 7d 0a 7d 0a 7d 'Could.not.remove.'.$dir);.}.}.}
16020 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 .catch.(\Exception.$e).{.$io->wr
16040 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 41 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 iteError('<error>An.error.occurr
16060 65 64 20 77 68 69 6c 65 20 72 65 6d 6f 76 69 6e 67 20 74 68 65 20 56 43 53 20 6d 65 74 61 64 61 ed.while.removing.the.VCS.metada
16080 74 61 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e ta:.'.$e->getMessage().'</error>
160a0 27 29 3b 0a 7d 0a 0a 24 68 61 73 56 63 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 ');.}..$hasVcs.=.false;.}....if.
160c0 28 21 24 68 61 73 56 63 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 (!$hasVcs).{.$package.=.$compose
160e0 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d r->getPackage();.$configSource.=
16100 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 46 69 .new.JsonConfigSource(new.JsonFi
16120 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 le('composer.json'));.foreach.(B
16140 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 asePackage::$supportedLinkTypes.
16160 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6d 65 74 61 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 as.$type.=>.$meta).{.foreach.($p
16180 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6d 65 74 61 5b 27 6d 65 74 68 6f 64 27 5d 7d 28 ackage->{'get'.$meta['method']}(
161a0 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 50 72 65 74 ).as.$link).{.if.($link->getPret
161c0 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 3d 3d 3d 20 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e tyConstraint().===.'self.version
161e0 27 29 20 7b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 4c 69 6e 6b 28 24 74 79 70 ').{.$configSource->addLink($typ
16200 65 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 70 61 63 6b 61 67 65 2d e,.$link->getTarget(),.$package-
16220 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 7d 0a 7d 0a 0a 69 >getPrettyVersion());.}.}.}.}..i
16240 66 20 28 24 6e 6f 53 63 72 69 70 74 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 0a 20 24 63 6f f.($noScripts.===.false).{...$co
16260 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 mposer->getEventDispatcher()->di
16280 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 54 5f spatchScript(ScriptEvents::POST_
162a0 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 CREATE_PROJECT_CMD,.$installDevP
162c0 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 63 68 64 69 72 28 24 6f 6c 64 43 77 64 29 3b 0a 24 76 65 ackages);.}..chdir($oldCwd);.$ve
162e0 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 ndorComposerDir.=.$composer->get
16300 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f Config()->get('vendor-dir').'/co
16320 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f mposer';.if.(is_dir($vendorCompo
16340 73 65 72 44 69 72 29 20 26 26 20 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 6e 64 serDir).&&.$fs->isDirEmpty($vend
16360 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 6f 72 orComposerDir)).{.@rmdir($vendor
16380 43 6f 6d 70 6f 73 65 72 44 69 72 29 3b 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6d 70 ComposerDir);.$vendorDir.=.$comp
163a0 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 oser->getConfig()->get('vendor-d
163c0 69 72 27 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 20 26 26 20 ir');.if.(is_dir($vendorDir).&&.
163e0 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 40 $fs->isDirEmpty($vendorDir)).{.@
16400 72 6d 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 rmdir($vendorDir);.}.}..return.0
16420 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 52 ;.}..protected.function.installR
16440 6f 6f 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 ootPackage(IOInterface.$io,.Conf
16460 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 69 72 65 63 ig.$config,.$packageName,.$direc
16480 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e tory.=.null,.$packageVersion.=.n
164a0 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 24 70 72 65 ull,.$stability.=.'stable',.$pre
164c0 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 73 74 20 3d ferSource.=.false,.$preferDist.=
164e0 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 3d 20 66 61 .false,.$installDevPackages.=.fa
16500 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 24 64 69 73 lse,.$repositoryUrl.=.null,.$dis
16520 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 70 74 73 20 ablePlugins.=.false,.$noScripts.
16540 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 6e 6f 50 72 =.false,.$keepVcs.=.false,.$noPr
16560 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ogress.=.false).{.if.(null.===.$
16580 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e repositoryUrl).{.$sourceRepo.=.n
165a0 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 46 61 63 74 6f 72 79 3a 3a ew.CompositeRepository(Factory::
165c0 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 69 6f 2c 20 24 createDefaultRepositories($io,.$
165e0 63 6f 6e 66 69 67 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 config));.}.elseif.("json".===.p
16600 61 74 68 69 6e 66 6f 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 50 41 54 48 49 4e 46 4f athinfo($repositoryUrl,.PATHINFO
16620 5f 45 58 54 45 4e 53 49 4f 4e 29 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 72 65 70 6f _EXTENSION).&&.file_exists($repo
16640 73 69 74 6f 72 79 55 72 6c 29 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 sitoryUrl)).{.$json.=.new.JsonFi
16660 6c 65 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c le($repositoryUrl,.new.RemoteFil
16680 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 61 74 61 20 3d 20 esystem($io,.$config));.$data.=.
166a0 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b $json->read();.if.(!empty($data[
166c0 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 69 6e 'packages']).||.!empty($data['in
166e0 63 6c 75 64 65 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 cludes']).||.!empty($data['provi
16700 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d der-includes'])).{.$sourceRepo.=
16720 20 6e 65 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 .new.ComposerRepository(array('u
16740 72 6c 27 20 3d 3e 20 27 66 69 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 72 65 61 6c 70 61 74 rl'.=>.'file://'...strtr(realpat
16760 68 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 2c 20 h($repositoryUrl),.'\\',.'/')),.
16780 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 6f 75 72 63 65 52 $io,.$config);.}.else.{.$sourceR
167a0 65 70 6f 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 24 epo.=.new.FilesystemRepository($
167c0 6a 73 6f 6e 29 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 json);.}.}.elseif.(0.===.strpos(
167e0 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 27 68 74 74 70 27 29 29 20 7b 0a 24 73 6f 75 72 $repositoryUrl,.'http')).{.$sour
16800 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 ceRepo.=.new.ComposerRepository(
16820 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 array('url'.=>.$repositoryUrl),.
16840 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 $io,.$config);.}.else.{.throw.ne
16860 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 w.\InvalidArgumentException("Inv
16880 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 67 69 76 65 6e 2e 20 48 61 73 20 74 alid.repository.url.given..Has.t
168a0 6f 20 62 65 20 61 20 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 61 6e 20 68 74 74 70 20 75 72 6c o.be.a..json.file.or.an.http.url
168c0 2e 22 29 3b 0a 7d 0a 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 .");.}..$parser.=.new.VersionPar
168e0 73 65 72 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 70 61 72 73 65 72 2d 3e ser();.$requirements.=.$parser->
16900 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 28 24 70 61 63 parseNameVersionPairs(array($pac
16920 6b 61 67 65 4e 61 6d 65 29 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 kageName));.$name.=.strtolower($
16940 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 21 24 requirements[0]['name']);.if.(!$
16960 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 26 26 20 69 73 73 65 74 28 24 72 65 71 75 69 72 65 packageVersion.&&.isset($require
16980 6d 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ments[0]['version'])).{.$package
169a0 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 Version.=.$requirements[0]['vers
169c0 69 6f 6e 27 5d 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 61 62 69 6c 69 74 ion'];.}..if.(null.===.$stabilit
169e0 79 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 5d 2a 3f 40 y).{.if.(preg_match('{^[^,\s]*?@
16a00 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 50 ('.implode('|',.array_keys(BaseP
16a20 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 24 ackage::$stabilities)).')$}i',.$
16a40 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 73 74 61 62 packageVersion,.$match)).{.$stab
16a60 69 6c 69 74 79 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 61 ility.=.$match[1];.}.else.{.$sta
16a80 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 53 74 61 bility.=.VersionParser::parseSta
16aa0 62 69 6c 69 74 79 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 24 73 bility($packageVersion);.}.}..$s
16ac0 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 6e 6f 72 6d 61 6c tability.=.VersionParser::normal
16ae0 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 69 66 20 28 21 izeStability($stability);..if.(!
16b00 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b isset(BasePackage::$stabilities[
16b20 24 73 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c $stability])).{.throw.new.\Inval
16b40 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 73 74 61 idArgumentException('Invalid.sta
16b60 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 73 74 61 62 69 6c 69 74 79 2e 27 29 bility.provided.('.$stability.')
16b80 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 ,.must.be.one.of:.'.implode(',.'
16ba0 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 69 ,.array_keys(BasePackage::$stabi
16bc0 6c 69 74 69 65 73 29 29 29 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 24 lities)));.}..$pool.=.new.Pool($
16be0 73 74 61 62 69 6c 69 74 79 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 stability);.$pool->addRepository
16c00 28 24 73 6f 75 72 63 65 52 65 70 6f 29 3b 0a 0a 0a 20 24 70 68 70 56 65 72 73 69 6f 6e 20 3d 20 ($sourceRepo);....$phpVersion.=.
16c20 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 4f 4e 2e 27 2e 27 2e 50 48 50 5f 4d 49 4e 4f 52 5f PHP_MAJOR_VERSION.'.'.PHP_MINOR_
16c40 56 45 52 53 49 4f 4e 2e 27 2e 27 2e 50 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 4f 4e 3b VERSION.'.'.PHP_RELEASE_VERSION;
16c60 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 72 73 69 ....$versionSelector.=.new.Versi
16c80 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 20 24 76 onSelector($pool);.$package.=.$v
16ca0 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 64 61 74 ersionSelector->findBestCandidat
16cc0 65 28 24 6e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2c 20 24 70 68 70 56 65 e($name,.$packageVersion,.$phpVe
16ce0 72 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 rsion,.$stability);..if.(!$packa
16d00 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 74 ge).{.throw.new.\InvalidArgument
16d20 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 Exception("Could.not.find.packag
16d40 65 20 24 6e 61 6d 65 22 20 2e 20 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 22 20 e.$name"...($packageVersion.?.".
16d60 77 69 74 68 20 76 65 72 73 69 6f 6e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2e 22 20 3a with.version.$packageVersion.".:
16d80 20 22 20 77 69 74 68 20 73 74 61 62 69 6c 69 74 79 20 24 73 74 61 62 69 6c 69 74 79 2e 22 29 29 .".with.stability.$stability."))
16da0 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a ;.}..if.(null.===.$directory).{.
16dc0 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 6e 61 6d 65 2c 20 32 29 3b $parts.=.explode("/",.$name,.2);
16de0 0a 24 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f .$directory.=.getcwd()...DIRECTO
16e00 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 RY_SEPARATOR...array_pop($parts)
16e20 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 63 6e 74 ;.}....if.(function_exists('pcnt
16e40 6c 5f 73 69 67 6e 61 6c 27 29 29 20 7b 0a 64 65 63 6c 61 72 65 20 28 74 69 63 6b 73 20 3d 20 31 l_signal')).{.declare.(ticks.=.1
16e60 30 30 29 3b 0a 70 63 6e 74 6c 5f 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 66 75 6e 63 74 69 00);.pcntl_signal(SIGINT,.functi
16e80 6f 6e 20 28 29 20 75 73 65 20 28 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 66 73 20 3d 20 6e on.().use.($directory).{.$fs.=.n
16ea0 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 ew.Filesystem();.$fs->removeDire
16ec0 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 65 78 69 74 28 31 33 30 29 3b 0a 7d 29 ctory($directory);.exit(130);.})
16ee0 3b 0a 7d 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 49 6e 73 74 ;.}..$io->writeError('<info>Inst
16f00 61 6c 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e alling.'...$package->getName()..
16f20 20 27 20 28 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 .'.('...$package->getFullPrettyV
16f40 65 72 73 69 6f 6e 28 66 61 6c 73 65 29 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 ersion(false)...')</info>');..if
16f60 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 .($disablePlugins).{.$io->writeE
16f80 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 50 6c 75 67 69 6e 73 20 68 61 76 65 20 62 65 65 6e 20 64 69 rror('<info>Plugins.have.been.di
16fa0 73 61 62 6c 65 64 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 sabled.</info>');.}..if.(0.===.s
16fc0 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e trpos($package->getPrettyVersion
16fe0 28 29 2c 20 27 64 65 76 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 (),.'dev-').&&.in_array($package
17000 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 ->getSourceType(),.array('git',.
17020 27 68 67 27 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 'hg'))).{.$package->setSourceRef
17040 65 72 65 6e 63 65 28 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 erence(substr($package->getPrett
17060 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d yVersion(),.4));.}..$dm.=.$this-
17080 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 63 6f 6e >createDownloadManager($io,.$con
170a0 66 69 67 29 3b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 fig);.$dm->setPreferSource($pref
170c0 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 65 erSource).->setPreferDist($prefe
170e0 72 44 69 73 74 29 0a 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 6e 6f 50 rDist).->setOutputProgress(!$noP
17100 72 6f 67 72 65 73 73 29 3b 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 3d 20 6e rogress);..$projectInstaller.=.n
17120 65 77 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 ew.ProjectInstaller($directory,.
17140 24 64 6d 29 3b 0a 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c $dm);.$im.=.$this->createInstall
17160 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 ationManager();.$im->addInstalle
17180 72 28 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 69 6d 2d 3e 69 6e 73 74 61 r($projectInstaller);.$im->insta
171a0 6c 6c 28 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 6f 73 69 ll(new.InstalledFilesystemReposi
171c0 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 tory(new.JsonFile('php://memory'
171e0 29 29 2c 20 6e 65 77 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 )),.new.InstallOperation($packag
17200 65 29 29 3b 0a 24 69 6d 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 24 69 6f 29 3b 0a 0a e));.$im->notifyInstalls($io);..
17220 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d $installedFromVcs.=.'source'.===
17240 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 .$package->getInstallationSource
17260 28 29 3b 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 ();..$io->writeError('<info>Crea
17280 74 65 64 20 70 72 6f 6a 65 63 74 20 69 6e 20 27 20 2e 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 ted.project.in.'...$directory...
172a0 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 63 68 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a '</info>');.chdir($directory);..
172c0 24 5f 53 45 52 56 45 52 5b 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 $_SERVER['COMPOSER_ROOT_VERSION'
172e0 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 ].=.$package->getPrettyVersion()
17300 3b 0a 70 75 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 3d ;.putenv('COMPOSER_ROOT_VERSION=
17320 27 2e 24 5f 53 45 52 56 45 52 5b 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f '.$_SERVER['COMPOSER_ROOT_VERSIO
17340 4e 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 3b N']);..return.$installedFromVcs;
17360 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 44 6f 77 .}..protected.function.createDow
17380 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f nloadManager(IOInterface.$io,.Co
173a0 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 nfig.$config).{.$factory.=.new.F
173c0 61 63 74 6f 72 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 actory();..return.$factory->crea
173e0 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b teDownloadManager($io,.$config);
17400 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 49 6e 73 .}..protected.function.createIns
17420 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 tallationManager().{.return.new.
17440 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a InstallationManager();.}........
17460 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 50 72 65 66 65 72 .protected.function.updatePrefer
17480 72 65 64 4f 70 74 69 6f 6e 73 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 49 6e 70 75 74 redOptions(Config.$config,.Input
174a0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 26 24 70 72 65 66 65 72 53 6f 75 72 63 65 Interface.$input,.&$preferSource
174c0 2c 20 26 24 70 72 65 66 65 72 44 69 73 74 2c 20 24 6b 65 65 70 56 63 73 52 65 71 75 69 72 65 73 ,.&$preferDist,.$keepVcsRequires
174e0 50 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 70 72 65 66 65 72 53 PreferSource.=.false).{.$preferS
17500 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 20 66 61 6c ource.=.false;.$preferDist.=.fal
17520 73 65 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 se;..switch.($config->get('prefe
17540 72 72 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 rred-install')).{.case.'source':
17560 0a 24 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 .$preferSource.=.true;.break;.ca
17580 73 65 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 se.'dist':.$preferDist.=.true;.b
175a0 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 72 reak;.case.'auto':.default:...br
175c0 65 61 6b 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 70 eak;.}..if.($input->getOption('p
175e0 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 3e 67 65 74 4f 70 74 refer-source').||.$input->getOpt
17600 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 20 7c 7c 20 28 24 6b 65 65 70 56 63 73 52 ion('prefer-dist').||.($keepVcsR
17620 65 71 75 69 72 65 73 50 72 65 66 65 72 53 6f 75 72 63 65 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 equiresPreferSource.&&.$input->g
17640 65 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 29 29 29 20 7b 0a 24 70 72 65 66 65 72 etOption('keep-vcs'))).{.$prefer
17660 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 70 72 65 66 Source.=.$input->getOption('pref
17680 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 28 24 6b 65 65 70 56 63 73 52 65 71 75 69 72 65 73 er-source').||.($keepVcsRequires
176a0 50 72 65 66 65 72 53 6f 75 72 63 65 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f PreferSource.&&.$input->getOptio
176c0 6e 28 27 6b 65 65 70 2d 76 63 73 27 29 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 n('keep-vcs'));.$preferDist.=.$i
176e0 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 0a nput->getOption('prefer-dist');.
17700 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 }.}.}.<?php............namespace
17720 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 .Composer\Command;..use.Composer
17740 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f \DependencyResolver\Pool;.use.Co
17760 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 mposer\Package\Link;.use.Compose
17780 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 r\Package\PackageInterface;.use.
177a0 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 Composer\Repository\ArrayReposit
177c0 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 43 6f 6d ory;.use.Composer\Repository\Com
177e0 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 50 positeRepository;.use.Composer\P
17800 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 lugin\CommandEvent;.use.Composer
17820 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 6e \Plugin\PluginEvents;.use.Symfon
17840 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
17860 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\
17880 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 Console\Input\InputArgument;.use
178a0 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
178c0 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
178e0 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
17900 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 78 ce;......class.DependsCommand.ex
17920 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 54 tends.Command.{.protected.$linkT
17940 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 79 ypes.=.array(.'require'.=>.array
17960 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 69 ('requires',.'requires'),.'requi
17980 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 20 re-dev'.=>.array('devRequires',.
179a0 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 64 'requires.(dev)'),.);..protected
179c0 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.->
179e0 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 74 setName('depends').->setDescript
17a00 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 64 ion('Shows.which.packages.depend
17a20 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 66 .on.the.given.package').->setDef
17a40 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
17a60 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 49 ('package',.InputArgument::REQUI
17a80 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 20 RED,.'Package.to.inspect'),.new.
17aa0 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 70 InputOption('link-type',.'',.Inp
17ac0 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 74 utOption::VALUE_REQUIRED.|.Input
17ae0 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 79 Option::VALUE_IS_ARRAY,.'Link.ty
17b00 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 65 pes.to.show.(require,.require-de
17b20 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 73 v)',.array_keys($this->linkTypes
17b40 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 73 )),.)).->setHelp(<<<EOT.Displays
17b60 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 72 .detailed.information.about.wher
17b80 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 66 e.a.package.is.referenced...<inf
17ba0 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 70 o>php.composer.phar.depends.comp
17bc0 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 0a oser/composer</info>..EOT.).;.}.
17be0 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 75 .protected.function.execute(Inpu
17c00 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 tInterface.$input,.OutputInterfa
17c20 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 2d ce.$output).{.$composer.=.$this-
17c40 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 3d >getComposer();..$commandEvent.=
17c60 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 3a .new.CommandEvent(PluginEvents::
17c80 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 74 COMMAND,.'depends',.$input,.$out
17ca0 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 63 put);.$composer->getEventDispatc
17cc0 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 67 her()->dispatch($commandEvent->g
17ce0 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 6f etName(),.$commandEvent);..$repo
17d00 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 .=.new.CompositeRepository(array
17d20 28 0a 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 63 6f 6d (.new.ArrayRepository(array($com
17d40 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 29 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 poser->getPackage())),.$composer
17d60 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 ->getRepositoryManager()->getLoc
17d80 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 0a 29 29 3b 0a 24 6e 65 65 64 6c 65 20 3d 20 24 69 alRepository(),.));.$needle.=.$i
17da0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 3b 0a 0a 24 nput->getArgument('package');..$
17dc0 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 pool.=.new.Pool();.$pool->addRep
17de0 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6f ository($repo);..$packages.=.$po
17e00 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 65 65 64 6c 65 29 3b 0a 69 66 20 28 65 ol->whatProvides($needle);.if.(e
17e20 6d 70 74 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e mpty($packages)).{.throw.new.\In
17e40 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f validArgumentException('Could.no
17e60 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 20 69 6e 20 t.find.package."'.$needle.'".in.
17e80 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e 27 29 3b 0a 7d 0a 0a 24 6c 69 6e 6b 54 79 70 65 73 20 3d your.project.');.}..$linkTypes.=
17ea0 20 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 3b 0a 0a 24 74 79 70 65 73 20 3d 20 61 72 72 .$this->linkTypes;..$types.=.arr
17ec0 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 29 20 75 73 65 20 28 24 6c 69 ay_map(function.($type).use.($li
17ee0 6e 6b 54 79 70 65 73 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 6d 28 24 74 79 70 65 2c 20 nkTypes).{.$type.=.rtrim($type,.
17f00 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 's');.if.(!isset($linkTypes[$typ
17f20 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 6d 65 6e e])).{.throw.new.\InvalidArgumen
17f40 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6c 69 6e 6b 20 74 79 70 65 tException('Unexpected.link.type
17f60 3a 20 27 2e 24 74 79 70 65 2e 27 2c 20 76 61 6c 69 64 20 74 79 70 65 73 3a 20 27 2e 69 6d 70 6c :.'.$type.',.valid.types:.'.impl
17f80 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6c 69 6e 6b 54 79 70 65 73 29 ode(',.',.array_keys($linkTypes)
17fa0 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 79 70 65 3b 0a 7d 2c 20 24 69 6e 70 75 74 2d 3e ));.}..return.$type;.},.$input->
17fc0 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 29 3b 0a 0a 24 6d 65 73 73 61 getOption('link-type'));..$messa
17fe0 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 20 3d ges.=.array();.$outputPackages.=
18000 20 61 72 72 61 79 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a .array();.$io.=.$this->getIO();.
18020 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
18040 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 s.$package).{.foreach.($types.as
18060 20 24 74 79 70 65 29 20 7b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 .$type).{..foreach.($package->{'
18080 67 65 74 27 2e 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 5b 30 5d 7d 28 29 20 61 73 20 get'.$linkTypes[$type][0]}().as.
180a0 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().
180c0 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 75 74 70 75 ===.$needle).{.if.(!isset($outpu
180e0 74 50 61 63 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 29 29 tPackages[$package->getName()]))
18100 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 63 6b 61 .{.$messages[].=.'<info>'.$packa
18120 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 ge->getPrettyName()...'</info>.'
18140 20 2e 20 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 5b 31 5d 20 2e 20 27 20 27 20 2e 20 ...$linkTypes[$type][1]...'.'...
18160 24 6e 65 65 64 6c 65 20 2e 27 20 28 3c 69 6e 66 6f 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 $needle..'.(<info>'...$link->get
18180 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 29 27 3b PrettyConstraint()...'</info>)';
181a0 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 .$outputPackages[$package->getNa
181c0 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 65 me()].=.true;.}.}.}.}.}..if.($me
181e0 73 73 61 67 65 73 29 20 7b 0a 73 6f 72 74 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 24 69 6f 2d 3e ssages).{.sort($messages);.$io->
18200 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e write($messages);.}.else.{.$io->
18220 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 73 20 6e 6f 20 69 6e writeError('<info>There.is.no.in
18240 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 20 6f 6e 20 22 27 2e stalled.package.depending.on."'.
18260 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 0a 7d 0a 3c 3f 70 68 $needle.'".</info>');.}.}.}.<?ph
18280 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\
182a0 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b Command;..use.Composer\Composer;
182c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f .use.Composer\Factory;.use.Compo
182e0 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 6f ser\Downloader\TransportExceptio
18300 6e 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 64 45 76 n;.use.Composer\Plugin\CommandEv
18320 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 69 6e 45 ent;.use.Composer\Plugin\PluginE
18340 76 65 6e 74 73 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 56 vents;.use.Composer\Util\ConfigV
18360 61 6c 69 64 61 74 6f 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 alidator;.use.Composer\Util\Proc
18380 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 5c 52 essExecutor;.use.Composer\Util\R
183a0 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 55 74 emoteFilesystem;.use.Composer\Ut
183c0 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d il\StreamContextFactory;.use.Sym
183e0 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
18400 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
18420 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 nt\Console\Output\OutputInterfac
18440 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 20 65 78 74 e;.....class.DiagnoseCommand.ext
18460 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a ends.Command.{..protected.$rfs;.
18480 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 ..protected.$process;...protecte
184a0 64 20 24 66 61 69 6c 75 72 65 73 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 d.$failures.=.0;..protected.func
184c0 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 tion.configure().{.$this.->setNa
184e0 6d 65 28 27 64 69 61 67 6e 6f 73 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 me('diagnose').->setDescription(
18500 27 44 69 61 67 6e 6f 73 65 73 20 74 68 65 20 73 79 73 74 65 6d 20 74 6f 20 69 64 65 6e 74 69 66 'Diagnoses.the.system.to.identif
18520 79 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c y.common.errors.').->setHelp(<<<
18540 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 64 69 61 67 6e 6f 73 65 3c 2f 69 6e 66 6f 3e 20 63 6f EOT.The.<info>diagnose</info>.co
18560 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 20 74 6f 20 68 65 mmand.checks.common.errors.to.he
18580 6c 70 20 64 65 62 75 67 67 69 6e 67 20 70 72 6f 62 6c 65 6d 73 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a lp.debugging.problems...EOT.).;.
185a0 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 75 74 65 }.....protected.function.execute
185c0 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
185e0 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 terface.$output).{.$composer.=.$
18600 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 24 69 6f 20 3d 20 this->getComposer(false);.$io.=.
18620 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 $this->getIO();..if.($composer).
18640 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 {.$commandEvent.=.new.CommandEve
18660 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 69 61 67 6e nt(PluginEvents::COMMAND,.'diagn
18680 6f 73 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 ose',.$input,.$output);.$compose
186a0 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 r->getEventDispatcher()->dispatc
186c0 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d h($commandEvent->getName(),.$com
186e0 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e mandEvent);..$io->write('Checkin
18700 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 0a 24 74 68 69 g.composer.json:.',.false);.$thi
18720 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 43 6f 6d 70 s->outputResult($this->checkComp
18740 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 6f 73 65 72 29 oserSchema());.}..if.($composer)
18760 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 43 6f 6e 66 69 .{.$config.=.$composer->getConfi
18780 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 74 6f 72 79 3a g();.}.else.{.$config.=.Factory:
187a0 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 72 66 73 20 3d :createConfig();.}..$this->rfs.=
187c0 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 66 .new.RemoteFilesystem($io,.$conf
187e0 69 67 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 ig);.$this->process.=.new.Proces
18800 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 65 sExecutor($io);..$io->write('Che
18820 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 2c 20 66 61 6c 73 cking.platform.settings:.',.fals
18840 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 68 69 73 2d 3e 63 e);.$this->outputResult($this->c
18860 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 heckPlatform());..$io->write('Ch
18880 65 63 6b 69 6e 67 20 67 69 74 20 73 65 74 74 69 6e 67 73 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a ecking.git.settings:.',.false);.
188a0 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 6b $this->outputResult($this->check
188c0 47 69 74 28 29 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 68 74 Git());..$io->write('Checking.ht
188e0 74 70 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 20 74 6f 20 70 61 63 6b 61 67 69 73 74 3a 20 27 2c tp.connectivity.to.packagist:.',
18900 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 68 .false);.$this->outputResult($th
18920 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 28 27 68 74 74 70 27 29 29 3b 0a 0a 24 69 6f 2d 3e 77 72 is->checkHttp('http'));..$io->wr
18940 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 68 74 74 70 73 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 ite('Checking.https.connectivity
18960 20 74 6f 20 70 61 63 6b 61 67 69 73 74 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d .to.packagist:.',.false);.$this-
18980 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 28 27 >outputResult($this->checkHttp('
189a0 68 74 74 70 73 27 29 29 3b 0a 0a 24 6f 70 74 73 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 https'));..$opts.=.stream_contex
189c0 74 5f 67 65 74 5f 6f 70 74 69 6f 6e 73 28 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f t_get_options(StreamContextFacto
189e0 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 27 68 74 74 70 3a 2f 2f 65 78 61 6d 70 6c 65 2e 6f ry::getContext('http://example.o
18a00 72 67 27 29 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6f 70 74 73 5b 27 68 74 74 70 27 5d 5b rg'));.if.(!empty($opts['http'][
18a20 27 70 72 6f 78 79 27 5d 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 'proxy'])).{.$io->write('Checkin
18a40 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 2d 3e g.HTTP.proxy:.',.false);.$this->
18a60 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 72 6f outputResult($this->checkHttpPro
18a80 78 79 28 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 50 xy());.$io->write('Checking.HTTP
18aa0 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 6c 75 .proxy.support.for.request_fullu
18ac0 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 73 75 ri:.',.false);.$this->outputResu
18ae0 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 lt($this->checkHttpProxyFullUriR
18b00 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 65 63 equestParam());.$io->write('Chec
18b20 6b 69 6e 67 20 48 54 54 50 53 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 65 71 king.HTTPS.proxy.support.for.req
18b40 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 73 2d 3e uest_fulluri:.',.false);.$this->
18b60 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 73 50 72 outputResult($this->checkHttpsPr
18b80 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 7d 0a 0a 69 66 oxyFullUriRequestParam());.}..if
18ba0 20 28 24 6f 61 75 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d .($oauth.=.$config->get('github-
18bc0 6f 61 75 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 61 75 74 68 20 61 73 20 24 64 oauth')).{.foreach.($oauth.as.$d
18be0 6f 6d 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 omain.=>.$token).{.$io->write('C
18c00 68 65 63 6b 69 6e 67 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 6f 61 75 74 68 20 61 63 63 65 73 73 hecking.'.$domain.'.oauth.access
18c20 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 75 6c 74 :.',.false);.$this->outputResult
18c40 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 61 69 6e ($this->checkGithubOauth($domain
18c60 2c 20 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 ,.$token));.}.}.else.{.$io->writ
18c80 65 28 27 43 68 65 63 6b 69 6e 67 20 67 69 74 68 75 62 2e 63 6f 6d 20 72 61 74 65 20 6c 69 6d 69 e('Checking.github.com.rate.limi
18ca0 74 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 74 72 79 20 7b 0a 24 72 61 74 65 20 3d 20 24 74 68 69 t:.',.false);.try.{.$rate.=.$thi
18cc0 73 2d 3e 67 65 74 47 69 74 68 75 62 52 61 74 65 4c 69 6d 69 74 28 27 67 69 74 68 75 62 2e 63 6f s->getGithubRateLimit('github.co
18ce0 6d 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 74 72 75 65 29 3b 0a m');.$this->outputResult(true);.
18d00 69 66 20 28 31 30 20 3e 20 24 72 61 74 65 5b 27 72 65 6d 61 69 6e 69 6e 67 27 5d 29 20 7b 0a 24 if.(10.>.$rate['remaining']).{.$
18d20 69 6f 2d 3e 77 72 69 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 io->write('<warning>WARNING</war
18d40 6e 69 6e 67 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 0a 27 3c 63 ning>');.$io->write(sprintf(.'<c
18d60 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 69 74 20 6f omment>Github.has.a.rate.limit.o
18d80 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 74 6c 79 20 n.their.API..'...'You.currently.
18da0 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 6e 73 3d 62 have.<options=bold>%u</options=b
18dc0 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 6c 64 3e 25 old>.'...'out.of.<options=bold>%
18de0 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 66 74 2e 27 u</options=bold>.requests.left.'
18e00 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 76 65 6c 6f ...PHP_EOL...'See.https://develo
18e20 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 74 69 6e 67 per.github.com/v3/#rate-limiting
18e40 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 68 74 74 70 .and.also'...PHP_EOL...'....http
18e60 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 63 6c 65 73 s://getcomposer.org/doc/articles
18e80 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 2d 6c 69 6d /troubleshooting.md#api-rate-lim
18ea0 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 3e 27 2c 0a it-and-oauth-tokens</comment>',.
18ec0 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 69 6d 69 74 $rate['remaining'],.$rate['limit
18ee0 27 5d 0a 29 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 '].));.}.}.catch.(\Exception.$e)
18f00 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 78 .{.if.($e.instanceof.TransportEx
18f20 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 31 ception.&&.$e->getCode().===.401
18f40 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 27 3c 63 6f 6d 6d 65 6e ).{.$this->outputResult('<commen
18f60 74 3e 54 68 65 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 67 69 74 68 75 62 2e 63 6f 6d t>The.oauth.token.for.github.com
18f80 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 63 6f .seems.invalid,.run."composer.co
18fa0 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 61 75 nfig.--global.--unset.github-oau
18fc0 74 68 2e 67 69 74 68 75 62 2e 63 6f 6d 22 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 3c 2f 63 6f 6d th.github.com".to.remove.it</com
18fe0 6d 65 6e 74 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 ment>');.}.else.{.$this->outputR
19000 65 73 75 6c 74 28 24 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 43 68 esult($e);.}.}.}..$io->write('Ch
19020 65 63 6b 69 6e 67 20 64 69 73 6b 20 66 72 65 65 20 73 70 61 63 65 3a 20 27 2c 20 66 61 6c 73 65 ecking.disk.free.space:.',.false
19040 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 68 69 73 2d 3e 63 68 );.$this->outputResult($this->ch
19060 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 29 3b 0a 0a 24 69 6f 2d 3e 77 72 eckDiskSpace($config));..$io->wr
19080 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 72 73 69 6f 6e 3a 20 ite('Checking.composer.version:.
190a0 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 75 6c 74 28 24 ',.false);.$this->outputResult($
190c0 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 65 74 75 72 6e 20 24 this->checkVersion());..return.$
190e0 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 65 20 66 75 6e 63 74 this->failures;.}..private.funct
19100 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 0a 7b 0a 24 76 61 6c ion.checkComposerSchema().{.$val
19120 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 74 6f 72 28 24 74 68 idator.=.new.ConfigValidator($th
19140 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 73 2c 20 2c 20 24 77 is->getIO());.list($errors,.,.$w
19160 61 72 6e 69 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 arnings).=.$validator->validate(
19180 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 29 3b 0a 0a 69 66 Factory::getComposerFile());..if
191a0 20 28 24 65 72 72 6f 72 73 20 7c 7c 20 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 6d 65 73 73 61 .($errors.||.$warnings).{.$messa
191c0 67 65 73 20 3d 20 61 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 ges.=.array(.'error'.=>.$errors,
191e0 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 0a 24 6f 75 .'warning'.=>.$warnings,.);..$ou
19200 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 73 20 61 73 tput.=.'';.foreach.($messages.as
19220 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 28 24 6d 73 .$style.=>.$msgs).{.foreach.($ms
19240 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 20 2e 20 24 gs.as.$msg).{.$output..=.'<'...$
19260 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 24 73 74 79 style...'>'...$msg...'</'...$sty
19280 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 75 72 6e 20 le...'>'...PHP_EOL;.}.}..return.
192a0 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 75 65 3b 0a rtrim($output);.}..return.true;.
192c0 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 28 29 0a 7b }..private.function.checkGit().{
192e0 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 74 20 63 6f .$this->process->execute('git.co
19300 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 20 28 73 74 nfig.color.ui',.$output);.if.(st
19320 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 27 61 6c 77 rtolower(trim($output)).===.'alw
19340 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 72 20 67 69 ays').{.return.'<comment>Your.gi
19360 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 20 61 6c 77 t.color.ui.setting.is.set.to.alw
19380 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 20 69 73 73 ays,.this.is.known.to.create.iss
193a0 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 6c 20 63 6f ues..Use."git.config.--global.co
193c0 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 63 74 6c 79 lor.ui.true".to.set.it.correctly
193e0 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 3b 0a 7d 0a .</comment>';.}..return.true;.}.
19400 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 24 70 72 6f .private.function.checkHttp($pro
19420 74 6f 29 0a 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 to).{.try.{.$this->rfs->getConte
19440 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 20 2e 20 27 3a nts('packagist.org',.$proto...':
19460 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 6f 6e 27 2c 20 //packagist.org/packages.json',.
19480 66 61 6c 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 false);.}.catch.(\Exception.$e).
194a0 7b 0a 72 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 {.return.$e;.}..return.true;.}..
194c0 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 28 private.function.checkHttpProxy(
194e0 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
19500 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';.
19520 74 72 79 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 try.{.$json.=.json_decode($this-
19540 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 >rfs->getContents('packagist.org
19560 27 2c 20 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 ',.$protocol...'://packagist.org
19580 2f 70 61 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 /packages.json',.false),.true);.
195a0 24 68 61 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 $hash.=.reset($json['provider-in
195c0 63 6c 75 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 cludes']);.$hash.=.$hash['sha256
195e0 27 5d 3b 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 '];.$path.=.str_replace('%hash%'
19600 2c 20 24 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 ,.$hash,.key($json['provider-inc
19620 6c 75 64 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 ludes']));.$provider.=.$this->rf
19640 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',.
19660 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 27 2e $protocol...'://packagist.org/'.
19680 24 70 61 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 $path,.false);..if.(hash('sha256
196a0 27 2c 20 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 ',.$provider).!==.$hash).{.retur
196c0 6e 20 27 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 n.'It.seems.that.your.proxy.is.m
196e0 6f 64 69 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 odifying.http.traffic.on.the.fly
19700 27 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 ';.}.}.catch.(\Exception.$e).{.r
19720 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 0a 0a 0a eturn.$e;.}..return.true;.}.....
19740 0a 0a 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 50 72 ....private.function.checkHttpPr
19760 6f 78 79 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 oxyFullUriRequestParam().{.$url.
19780 3d 20 27 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 =.'http://packagist.org/packages
197a0 2e 6a 73 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 .json';.try.{.$this->rfs->getCon
197c0 74 65 6e 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 tents('packagist.org',.$url,.fal
197e0 73 65 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 se);.}.catch.(TransportException
19800 20 24 65 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 .$e).{.try.{.$this->rfs->getCont
19820 65 6e 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 ents('packagist.org',.$url,.fals
19840 65 2c 20 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 e,.array('http'.=>.array('reques
19860 74 5f 66 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 t_fulluri'.=>.false)));.}.catch.
19880 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 72 65 74 75 72 6e (TransportException.$e).{.return
198a0 20 27 55 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 .'Unable.to.assess.the.situation
198c0 2c 20 6d 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 ,.maybe.packagist.org.is.down.('
198e0 2e 24 65 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 .$e->getMessage().')';.}..return
19900 20 27 49 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 .'It.seems.there.is.a.problem.wi
19920 74 68 20 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 th.your.proxy.server,.try.settin
19940 67 20 74 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 g.the."HTTP_PROXY_REQUEST_FULLUR
19960 49 22 20 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 I".and."HTTPS_PROXY_REQUEST_FULL
19980 55 52 49 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 URI".environment.variables.to."f
199a0 61 6c 73 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 alse"';.}..return.true;.}.......
199c0 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 73 50 72 6f ..private.function.checkHttpsPro
199e0 78 79 46 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 xyFullUriRequestParam().{.if.(!e
19a00 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 72 65 xtension_loaded('openssl')).{.re
19a20 74 75 72 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 turn.'You.need.the.openssl.exten
19a40 73 69 6f 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 sion.installed.for.this.check';.
19a60 7d 0a 0a 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 }..$url.=.'https://api.github.co
19a80 6d 2f 72 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 m/repos/Seldaek/jsonlint/zipball
19aa0 2f 31 2e 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 /1.0.0';.try.{.$this->rfs->getCo
19ac0 6e 74 65 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 ntents('github.com',.$url,.false
19ae0 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.$
19b00 65 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 e).{.try.{.$this->rfs->getConten
19b20 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 2c 20 61 72 ts('github.com',.$url,.false,.ar
19b40 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 71 75 65 73 74 5f 66 75 6c ray('http'.=>.array('request_ful
19b60 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e luri'.=>.false)));.}.catch.(Tran
19b80 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 55 6e 61 sportException.$e).{.return.'Una
19ba0 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 61 79 ble.to.assess.the.situation,.may
19bc0 62 65 20 67 69 74 68 75 62 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 be.github.is.down.('.$e->getMess
19be0 61 67 65 28 29 2e 27 29 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 age().')';.}..return.'It.seems.t
19c00 68 65 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 72 20 70 72 6f 78 here.is.a.problem.with.your.prox
19c20 79 20 73 65 72 76 65 72 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 22 48 54 54 50 53 y.server,.try.setting.the."HTTPS
19c40 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 69 72 6f 6e 6d _PROXY_REQUEST_FULLURI".environm
19c60 65 6e 74 20 76 61 72 69 61 62 6c 65 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d 0a 0a 72 65 74 ent.variable.to."false"';.}..ret
19c80 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 urn.true;.}..private.function.ch
19ca0 65 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 0a eckGithubOauth($domain,.$token).
19cc0 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 {.$this->getIO()->setAuthenticat
19ce0 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 ion($domain,.$token,.'x-oauth-ba
19d00 73 69 63 27 29 3b 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 24 64 6f 6d 61 69 6e 20 3d 3d 3d 20 sic');.try.{.$url.=.$domain.===.
19d20 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 27 2e 24 64 'github.com'.?.'https://api.'.$d
19d40 6f 6d 61 69 6e 2e 27 2f 75 73 65 72 2f 72 65 70 6f 73 27 20 3a 20 27 68 74 74 70 73 3a 2f 2f 27 omain.'/user/repos'.:.'https://'
19d60 2e 24 64 6f 6d 61 69 6e 2e 27 2f 61 70 69 2f 76 33 2f 75 73 65 72 2f 72 65 70 6f 73 27 3b 0a 0a .$domain.'/api/v3/user/repos';..
19d80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 return.$this->rfs->getContents($
19da0 64 6f 6d 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 domain,.$url,.false,.array(.'ret
19dc0 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 2c 0a 29 29 20 3f 20 ry-auth-failure'.=>.false,.)).?.
19de0 74 72 75 65 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 true.:.'Unexpected.error';.}.cat
19e00 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 ch.(\Exception.$e).{.if.($e.inst
19e20 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d anceof.TransportException.&&.$e-
19e40 3e 67 65 74 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 >getCode().===.401).{.return.'<c
19e60 6f 6d 6d 65 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 omment>The.oauth.token.for.'.$do
19e80 6d 61 69 6e 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 main.'.seems.invalid,.run."compo
19ea0 73 65 72 20 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 ser.config.--global.--unset.gith
19ec0 75 62 2d 6f 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 ub-oauth.'.$domain.'".to.remove.
19ee0 69 74 3c 2f 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 it</comment>';.}..return.$e;.}.}
19f00 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 68 ........private.function.getGith
19f20 75 62 52 61 74 65 4c 69 6d 69 74 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 20 3d 20 6e 75 ubRateLimit($domain,.$token.=.nu
19f40 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f ll).{.if.($token).{.$this->getIO
19f60 28 29 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 24 ()->setAuthentication($domain,.$
19f80 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 0a 24 75 72 6c token,.'x-oauth-basic');.}..$url
19fa0 20 3d 20 24 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 .=.$domain.===.'github.com'.?.'h
19fc0 74 74 70 73 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 ttps://api.'.$domain.'/rate_limi
19fe0 74 27 20 3a 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 t'.:.'https://'.$domain.'/api/ra
1a000 74 65 5f 6c 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 te_limit';.$json.=.$this->rfs->g
1a020 65 74 43 6f 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 etContents($domain,.$url,.false,
1a040 20 61 72 72 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 .array('retry-auth-failure'.=>.f
1a060 61 6c 73 65 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 alse));.$data.=.json_decode($jso
1a080 6e 2c 20 74 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 n,.true);..return.$data['resourc
1a0a0 65 73 27 5d 5b 27 63 6f 72 65 27 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f es']['core'];.}..private.functio
1a0c0 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
1a0e0 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 20 2a 20 31 30 32 34 3b 0a 69 66 20 28 28 28 24 SpaceFree.=.1024.*.1024;.if.((($
1a100 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
1a120 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.&&
1a140 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.=
1a160 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
1a180 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.
1a1a0 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 20 7b 0a 72 65 74 75 &&.$df.<.$minSpaceFree).).{.retu
1a1c0 72 6e 20 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b 20 68 6f 73 74 69 6e 67 20 27 2e 24 64 rn.'<error>The.disk.hosting.'.$d
1a1e0 69 72 2e 27 20 69 73 20 66 75 6c 6c 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e ir.'.is.full</error>';.}..return
1a200 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
1a220 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f Version().{.$protocol.=.extensio
1a240 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 n_loaded('openssl').?.'https'.:.
1a260 27 68 74 74 70 27 3b 0a 24 6c 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 66 'http';.$latest.=.trim($this->rf
1a280 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 s->getContents('getcomposer.org'
1a2a0 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 ,.$protocol...'://getcomposer.or
1a2c0 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 g/version',.false));..if.(Compos
1a2e0 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 20 26 26 20 43 6f 6d 70 6f er::VERSION.!==.$latest.&&.Compo
1a300 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 27 40 70 61 63 6b 61 67 65 5f 76 65 72 73 69 ser::VERSION.!==.'@package_versi
1a320 6f 6e 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 on@').{.return.'<comment>You.are
1a340 20 6e 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 2c .not.running.the.latest.version,
1a360 20 72 75 6e 20 60 63 6f 6d 70 6f 73 65 72 20 73 65 6c 66 2d 75 70 64 61 74 65 60 20 74 6f 20 75 .run.`composer.self-update`.to.u
1a380 70 64 61 74 65 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 pdate</comment>';.}..return.true
1a3a0 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 6f 75 74 70 75 74 52 ;.}.....private.function.outputR
1a3c0 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 esult($result).{.$io.=.$this->ge
1a3e0 74 49 4f 28 29 3b 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 tIO();.if.(true.===.$result).{.$
1a400 69 6f 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 20 io->write('<info>OK</info>');.}.
1a420 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 2b 2b 3b 0a 24 69 6f 2d 3e 77 else.{.$this->failures++;.$io->w
1a440 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 41 49 4c 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 69 66 20 rite('<error>FAIL</error>');.if.
1a460 28 24 72 65 73 75 6c 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 45 78 63 65 70 74 69 6f 6e 29 20 ($result.instanceof.\Exception).
1a480 7b 0a 24 69 6f 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 {.$io->write('['.get_class($resu
1a4a0 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());
1a4c0 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 73 75 6c 74 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 .}.elseif.($result).{.$io->write
1a4e0 28 74 72 69 6d 28 24 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 (trim($result));.}.}.}..private.
1a500 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 24 6f 75 74 70 function.checkPlatform().{.$outp
1a520 75 74 20 3d 20 27 27 3b 0a 24 6f 75 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 73 67 2c 20 ut.=.'';.$out.=.function.($msg,.
1a540 24 73 74 79 6c 65 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 $style).use.(&$output).{.$output
1a560 20 2e 3d 20 27 3c 27 2e 24 73 74 79 6c 65 2e 27 3e 27 2e 24 6d 73 67 2e 27 3c 2f 27 2e 24 73 74 ..=.'<'.$style.'>'.$msg.'</'.$st
1a580 79 6c 65 2e 27 3e 27 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 3b 0a 0a 0a 20 24 65 72 72 6f 72 73 20 3d yle.'>'.PHP_EOL;.};....$errors.=
1a5a0 20 61 72 72 61 79 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a .array();.$warnings.=.array();..
1a5c0 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 69 6c 65 28 29 $iniPath.=.php_ini_loaded_file()
1a5e0 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 66 61 6c 73 65 3b 0a 69 66 ;.$displayIniMessage.=.false;.if
1a600 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 5f .($iniPath).{.$iniMessage.=.PHP_
1a620 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 EOL.PHP_EOL.'The.php.ini.used.by
1a640 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 20 2e 20 24 .your.command-line.PHP.is:.'...$
1a660 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 65 20 3d 20 iniPath;.}.else.{.$iniMessage.=.
1a680 50 48 50 5f 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 PHP_EOL.PHP_EOL.'A.php.ini.file.
1a6a0 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f does.not.exist..You.will.have.to
1a6c0 20 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 3d 20 .create.one.';.}.$iniMessage..=.
1a6e0 50 48 50 5f 45 4f 4c 2e 27 49 66 20 79 6f 75 20 63 61 6e 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 PHP_EOL.'If.you.can.not.modify.t
1a700 68 65 20 69 6e 69 20 66 69 6c 65 2c 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 72 75 6e 20 60 70 he.ini.file,.you.can.also.run.`p
1a720 68 70 20 2d 64 20 6f 70 74 69 6f 6e 3d 76 61 6c 75 65 60 20 74 6f 20 6d 6f 64 69 66 79 20 69 6e hp.-d.option=value`.to.modify.in
1a740 69 20 76 61 6c 75 65 73 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 i.values.on.the.fly..You.can.use
1a760 20 2d 64 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 27 3b 0a 0a 69 66 20 28 21 66 75 6e 63 .-d.multiple.times.';..if.(!func
1a780 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6a 73 6f 6e 5f 64 65 63 6f 64 65 27 29 29 20 7b 0a 24 65 tion_exists('json_decode')).{.$e
1a7a0 72 72 6f 72 73 5b 27 6a 73 6f 6e 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 rrors['json'].=.true;.}..if.(!ex
1a7c0 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 50 68 61 72 27 29 29 20 7b 0a 24 65 72 72 6f 72 tension_loaded('Phar')).{.$error
1a7e0 73 5b 27 70 68 61 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 s['phar'].=.true;.}..if.(!extens
1a800 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 66 69 6c 74 65 72 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b ion_loaded('filter')).{.$errors[
1a820 27 66 69 6c 74 65 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 'filter'].=.true;.}..if.(!extens
1a840 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 68 61 73 68 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 68 ion_loaded('hash')).{.$errors['h
1a860 61 73 68 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 69 5f 67 65 74 28 27 61 ash'].=.true;.}..if.(!ini_get('a
1a880 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 61 6c 6c llow_url_fopen')).{.$errors['all
1a8a0 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 65 78 ow_url_fopen'].=.true;.}..if.(ex
1a8c0 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 69 6f 6e 43 75 62 65 20 4c 6f 61 64 65 72 27 29 tension_loaded('ionCube.Loader')
1a8e0 20 26 26 20 69 6f 6e 63 75 62 65 5f 6c 6f 61 64 65 72 5f 69 76 65 72 73 69 6f 6e 28 29 20 3c 20 .&&.ioncube_loader_iversion().<.
1a900 34 30 30 30 39 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 69 6f 6e 63 75 62 65 27 5d 20 3d 20 69 6f 40009).{.$errors['ioncube'].=.io
1a920 6e 63 75 62 65 5f 6c 6f 61 64 65 72 5f 76 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 69 66 20 28 50 ncube_loader_version();.}..if.(P
1a940 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 3c 20 35 30 33 30 32 29 20 7b 0a 24 65 72 72 6f 72 73 HP_VERSION_ID.<.50302).{.$errors
1a960 5b 27 70 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 69 ['php'].=.PHP_VERSION;.}..if.(!i
1a980 73 73 65 74 28 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 29 20 26 26 20 50 48 50 5f 56 45 52 53 sset($errors['php']).&&.PHP_VERS
1a9a0 49 4f 4e 5f 49 44 20 3c 20 35 30 33 30 34 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 70 68 70 ION_ID.<.50304).{.$warnings['php
1a9c0 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 65 78 74 65 6e 73 '].=.PHP_VERSION;.}..if.(!extens
1a9e0 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 24 65 72 72 6f 72 73 ion_loaded('openssl')).{.$errors
1aa00 5b 27 6f 70 65 6e 73 73 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 64 65 66 69 ['openssl'].=.true;.}..if.(!defi
1aa20 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f ned('HHVM_VERSION').&&.!extensio
1aa40 6e 5f 6c 6f 61 64 65 64 28 27 61 70 63 75 27 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 70 63 n_loaded('apcu').&&.ini_get('apc
1aa60 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 61 70 63 5f .enable_cli')).{.$warnings['apc_
1aa80 63 6c 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 cli'].=.true;.}..ob_start();.php
1aaa0 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 24 70 68 70 69 6e 66 6f 20 3d 20 6f info(INFO_GENERAL);.$phpinfo.=.o
1aac0 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b b_get_clean();.if.(preg_match('{
1aae0 43 6f 6e 66 69 67 75 72 65 20 43 6f 6d 6d 61 6e 64 28 3f 3a 20 2a 3c 2f 74 64 3e 3c 74 64 20 63 Configure.Command(?:.*</td><td.c
1ab00 6c 61 73 73 3d 22 76 22 3e 7c 20 2a 3d 3e 20 2a 29 28 2e 2a 3f 29 28 3f 3a 3c 2f 74 64 3e 7c 24 lass="v">|.*=>.*)(.*?)(?:</td>|$
1ab20 29 7d 6d 27 2c 20 24 70 68 70 69 6e 66 6f 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 66 )}m',.$phpinfo,.$match)).{.$conf
1ab40 69 67 75 72 65 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d igure.=.$match[1];..if.(false.!=
1ab60 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 =.strpos($configure,.'--enable-s
1ab80 69 67 63 68 69 6c 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 73 69 67 63 68 69 6c 64 igchild')).{.$warnings['sigchild
1aba0 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 '].=.true;.}..if.(false.!==.strp
1abc0 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 os($configure,.'--with-curlwrapp
1abe0 65 72 73 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 63 75 72 6c 77 72 61 70 70 65 72 73 ers')).{.$warnings['curlwrappers
1ac00 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 '].=.true;.}.}..if.(ini_get('xde
1ac20 62 75 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 bug.profiler_enabled')).{.$warni
1ac40 6e 67 73 5b 27 78 64 65 62 75 67 5f 70 72 6f 66 69 6c 65 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 ngs['xdebug_profile'].=.true;.}.
1ac60 65 6c 73 65 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 78 64 65 62 75 67 elseif.(extension_loaded('xdebug
1ac80 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 78 64 65 62 75 67 5f 6c 6f 61 64 65 64 27 5d ')).{.$warnings['xdebug_loaded']
1aca0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 65 72 72 6f 72 73 29 29 .=.true;.}..if.(!empty($errors))
1acc0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 65 72 72 6f 72 20 3d 3e .{.foreach.($errors.as.$error.=>
1ace0 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 65 72 72 6f 72 29 20 7b 0a 63 .$current).{.switch.($error).{.c
1ad00 61 73 65 20 27 6a 73 6f 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 ase.'json':.$text.=.PHP_EOL."The
1ad20 20 6a 73 6f 6e 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 .json.extension.is.missing.".PHP
1ad40 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 65 _EOL;.$text..=."Install.it.or.re
1ad60 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 6a 73 compile.php.without.--disable-js
1ad80 6f 6e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 68 61 72 27 3a 0a 24 74 65 78 74 20 on";.break;..case.'phar':.$text.
1ada0 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 70 68 61 72 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 =.PHP_EOL."The.phar.extension.is
1adc0 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 22 49 6e .missing.".PHP_EOL;.$text..=."In
1ade0 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 68 6f 75 stall.it.or.recompile.php.withou
1ae00 74 20 2d 2d 64 69 73 61 62 6c 65 2d 70 68 61 72 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 t.--disable-phar";.break;..case.
1ae20 27 66 69 6c 74 65 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 66 'filter':.$text.=.PHP_EOL."The.f
1ae40 69 6c 74 65 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 ilter.extension.is.missing.".PHP
1ae60 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 65 _EOL;.$text..=."Install.it.or.re
1ae80 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 66 69 compile.php.without.--disable-fi
1aea0 6c 74 65 72 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 61 73 68 27 3a 0a 24 74 65 78 lter";.break;..case.'hash':.$tex
1aec0 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 68 61 73 68 20 65 78 74 65 6e 73 69 6f 6e 20 t.=.PHP_EOL."The.hash.extension.
1aee0 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 22 is.missing.".PHP_EOL;.$text..=."
1af00 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 68 Install.it.or.recompile.php.with
1af20 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 68 61 73 68 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 out.--disable-hash";.break;..cas
1af40 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 54 68 e.'unicode':.$text.=.PHP_EOL."Th
1af60 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 62 65 e.detect_unicode.setting.must.be
1af80 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 22 41 .disabled.".PHP_EOL;.$text..=."A
1afa0 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 20 79 dd.the.following.to.the.end.of.y
1afc0 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 20 2e our.`php.ini`:".PHP_EOL;.$text..
1afe0 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 24 64 =."....detect_unicode.=.Off";.$d
1b000 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 3b 0a isplayIniMessage.=.true;.break;.
1b020 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 4f 4c .case.'suhosin':.$text.=.PHP_EOL
1b040 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 2e 77 ."The.suhosin.executor.include.w
1b060 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 22 2e hitelist.setting.is.incorrect.".
1b080 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
1b0a0 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
1b0c0 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 20 5b `.or.suhosin.ini.(Example.path.[
1b0e0 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 66 2e for.Debian]:./etc/php5/cli/conf.
1b100 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 74 20 d/suhosin.ini):".PHP_EOL;.$text.
1b120 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 64 65 .=."....suhosin.executor.include
1b140 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 24 64 .whitelist.=.phar.".$current;.$d
1b160 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 3b 0a isplayIniMessage.=.true;.break;.
1b180 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f .case.'php':.$text.=.PHP_EOL."Yo
1b1a0 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 69 73 20 74 6f 6f 20 6f 6c 64 2c 20 ur.PHP.({$current}).is.too.old,.
1b1c0 79 6f 75 20 6d 75 73 74 20 75 70 67 72 61 64 65 20 74 6f 20 50 48 50 20 35 2e 33 2e 32 20 6f 72 you.must.upgrade.to.PHP.5.3.2.or
1b1e0 20 68 69 67 68 65 72 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 61 6c 6c 6f 77 5f 75 .higher.";.break;..case.'allow_u
1b200 72 6c 5f 66 6f 70 65 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 rl_fopen':.$text.=.PHP_EOL."The.
1b220 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 allow_url_fopen.setting.is.incor
1b240 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 64 20 74 68 rect.".PHP_EOL;.$text..=."Add.th
1b260 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 6f 75 72 20 60 e.following.to.the.end.of.your.`
1b280 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 php.ini`:".PHP_EOL;.$text..=."..
1b2a0 20 20 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 3d 20 4f 6e 22 3b 0a 24 64 69 73 70 6c 61 ..allow_url_fopen.=.On";.$displa
1b2c0 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 73 65 yIniMessage.=.true;.break;..case
1b2e0 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 6f 75 .'ioncube':.$text.=.PHP_EOL."You
1b300 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 75 72 r.ionCube.Loader.extension.($cur
1b320 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 72 20 rent).is.incompatible.with.Phar.
1b340 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 72 61 files.".PHP_EOL;.$text..=."Upgra
1b360 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 6f 72 de.to.ionCube.4.0.9.or.higher.or
1b380 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 20 64 .remove.this.line.(path.may.be.d
1b3a0 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 74 6f ifferent).from.your.`php.ini`.to
1b3c0 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 3d 20 .disable.it:".PHP_EOL;.$text..=.
1b3e0 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 2f 70 "....zend_extension.=./usr/lib/p
1b400 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 72 5f hp5/20090626+lfs/ioncube_loader_
1b420 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 65 20 lin_5.3.so";.$displayIniMessage.
1b440 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 3a 0a =.true;.break;..case.'openssl':.
1b460 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 78 74 $text.=.PHP_EOL."The.openssl.ext
1b480 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 20 74 ension.is.missing,.which.means.t
1b4a0 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 20 69 hat.secure.HTTPS.transfers.are.i
1b4c0 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 22 49 mpossible.".PHP_EOL;.$text..=."I
1b4e0 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 74 20 f.possible.you.should.enable.it.
1b500 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 70 65 or.recompile.php.with.--with-ope
1b520 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 72 72 nssl";.break;.}.$out($text,.'err
1b540 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 0a 0a or');.}..$output..=.PHP_EOL;.}..
1b560 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 63 68 if.(!empty($warnings)).{.foreach
1b580 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 72 72 .($warnings.as.$warning.=>.$curr
1b5a0 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 65 20 ent).{.switch.($warning).{.case.
1b5c0 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 61 62 'apc_cli':.$text.=."The.apc.enab
1b5e0 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 50 48 le_cli.setting.is.incorrect.".PH
1b600 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 77 69 P_EOL;.$text..=."Add.the.followi
1b620 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 60 3a ng.to.the.end.of.your.`php.ini`:
1b640 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 62 6c ".PHP_EOL;.$text..=."..apc.enabl
1b660 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 67 65 e_cli.=.Off";.$displayIniMessage
1b680 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 64 27 .=.true;.break;..case.'sigchild'
1b6a0 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 74 68 :.$text.=."PHP.was.compiled.with
1b6c0 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 61 75 .--enable-sigchild.which.can.cau
1b6e0 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 50 48 se.issues.on.some.platforms.".PH
1b700 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 77 69 P_EOL;.$text..=."Recompile.it.wi
1b720 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 65 65 thout.this.flag.if.possible,.see
1b740 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 74 74 .also:".PHP_EOL;.$text..=."..htt
1b760 70 73 3a 2f 2f 62 75 67 73 2e 70 68 70 2e 6e 65 74 2f 62 75 67 2e 70 68 70 3f 69 64 3d 32 32 39 ps://bugs.php.net/bug.php?id=229
1b780 39 39 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 63 75 72 6c 77 72 61 70 70 65 72 73 27 99";.break;..case.'curlwrappers'
1b7a0 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 74 68 :.$text.=."PHP.was.compiled.with
1b7c0 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 6c 20 .--with-curlwrappers.which.will.
1b7e0 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 69 63 cause.issues.with.HTTP.authentic
1b800 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 65 78 ation.and.GitHub.".PHP_EOL;.$tex
1b820 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 69 73 t..=.".Recompile.it.without.this
1b840 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 73 65 .flag.if.possible";.break;..case
1b860 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 75 72 .'php':.$text.=."Your.PHP.({$cur
1b880 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 20 74 rent}).is.quite.old,.upgrading.t
1b8a0 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 6d 65 o.PHP.5.3.4.or.higher.is.recomme
1b8c0 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 70 6f nded.".PHP_EOL;.$text..=.".Compo
1b8e0 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 20 70 ser.works.with.5.3.2+.for.most.p
1b900 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 20 63 eople,.but.there.might.be.edge.c
1b920 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 65 62 ase.issues.";.break;..case.'xdeb
1b940 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 67 20 ug_loaded':.$text.=."The.xdebug.
1b960 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 73 6c extension.is.loaded,.this.can.sl
1b980 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 50 5f ow.down.Composer.a.little.".PHP_
1b9a0 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 68 65 EOL;.$text..=.".Disabling.it.whe
1b9c0 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 64 2e n.using.Composer.is.recommended.
1b9e0 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 65 27 ";.break;..case.'xdebug_profile'
1ba00 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 5f 65 :.$text.=."The.xdebug.profiler_e
1ba20 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 73 20 nabled.setting.is.enabled,.this.
1ba40 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 2e 50 can.slow.down.Composer.a.lot.".P
1ba60 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 77 HP_EOL;.$text..=."Add.the.follow
1ba80 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 60 ing.to.the.end.of.your.`php.ini`
1baa0 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 74 20 .to.disable.it:".PHP_EOL;.$text.
1bac0 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 3d 20 .=."..xdebug.profiler_enabled.=.
1bae0 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 0a 62 0";.$displayIniMessage.=.true;.b
1bb00 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 3b 0a reak;.}.$out($text,.'comment');.
1bb20 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 0a 24 }.}..if.($displayIniMessage).{.$
1bb40 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 0a 0a out($iniMessage,.'comment');.}..
1bb60 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 3f 20 return.!$warnings.&&.!$errors.?.
1bb80 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 0a 0a true.:.$output;.}.}.<?php.......
1bba0 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;
1bbc0 0a 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 ..use.Composer\Plugin\CommandEve
1bbe0 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 69 6e 45 76 nt;.use.Composer\Plugin\PluginEv
1bc00 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 ents;.use.Symfony\Component\Cons
1bc20 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 ole\Input\InputInterface;.use.Sy
1bc40 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
1bc60 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 putOption;.use.Symfony\Component
1bc80 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;
1bca0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 20 65 .....class.DumpAutoloadCommand.e
1bcc0 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 xtends.Command.{.protected.funct
1bce0 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d ion.configure().{.$this.->setNam
1bd00 65 28 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 e('dump-autoload').->setAliases(
1bd20 61 72 72 61 79 28 27 64 75 6d 70 61 75 74 6f 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 array('dumpautoload')).->setDesc
1bd40 72 69 70 74 69 6f 6e 28 27 44 75 6d 70 73 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 27 29 0a ription('Dumps.the.autoloader').
1bd60 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 ->setDefinition(array(.new.Input
1bd80 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 Option('no-scripts',.null,.Input
1bda0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 Option::VALUE_NONE,.'Skips.the.e
1bdc0 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 xecution.of.all.scripts.defined.
1bde0 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e in.composer.json.file.'),.new.In
1be00 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 putOption('optimize',.'o',.Input
1be20 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 73 20 50 Option::VALUE_NONE,.'Optimizes.P
1be40 53 52 30 20 61 6e 64 20 50 53 52 34 20 70 61 63 6b 61 67 65 73 20 74 6f 20 62 65 20 6c 6f 61 64 SR0.and.PSR4.packages.to.be.load
1be60 65 64 20 77 69 74 68 20 63 6c 61 73 73 6d 61 70 73 20 74 6f 6f 2c 20 67 6f 6f 64 20 66 6f 72 20 ed.with.classmaps.too,.good.for.
1be80 70 72 6f 64 75 63 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 production.'),.new.InputOption('
1bea0 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 2c 20 27 61 27 2c 20 49 6e classmap-authoritative',.'a',.In
1bec0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 75 74 6f 6c 6f 61 64 putOption::VALUE_NONE,.'Autoload
1bee0 20 63 6c 61 73 73 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6c 61 73 73 6d 61 70 20 6f 6e 6c 79 2e .classes.from.the.classmap.only.
1bf00 20 49 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 60 2d 2d 6f 70 74 69 6d 69 7a 65 60 .Implicitly.enables.`--optimize`
1bf20 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e .'),.new.InputOption('no-dev',.n
1bf40 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 ull,.InputOption::VALUE_NONE,.'D
1bf60 69 73 61 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 isables.autoload-dev.rules.'),.)
1bf80 29 0a 2d 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 ).->setHelp(<<<EOT.<info>php.com
1bfa0 70 6f 73 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 poser.phar.dump-autoload</info>.
1bfc0 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 EOT.).;.}..protected.function.ex
1bfe0 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 ecute(InputInterface.$input,.Out
1c000 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 putInterface.$output).{.$compose
1c020 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 0a 24 63 6f 6d 6d r.=.$this->getComposer();..$comm
1c040 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 67 andEvent.=.new.CommandEvent(Plug
1c060 69 6e 45 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 inEvents::COMMAND,.'dump-autoloa
1c080 64 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 d',.$input,.$output);.$composer-
1c0a0 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(
1c0c0 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
1c0e0 6e 64 45 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 ndEvent);..$installationManager.
1c100 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 =.$composer->getInstallationMana
1c120 67 65 72 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 ger();.$localRepo.=.$composer->g
1c140 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
1c160 65 70 6f 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 epository();.$package.=.$compose
1c180 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 r->getPackage();.$config.=.$comp
1c1a0 6f 73 65 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 oser->getConfig();..$optimize.=.
1c1c0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 29 20 7c 7c $input->getOption('optimize').||
1c1e0 20 24 63 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 .$config->get('optimize-autoload
1c200 65 72 27 29 3b 0a 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 er');.$authoritative.=.$input->g
1c220 65 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 etOption('classmap-authoritative
1c240 27 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 ').||.$config->get('classmap-aut
1c260 68 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 20 7c 7c 20 horitative');..if.($optimize.||.
1c280 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 $authoritative).{.$this->getIO()
1c2a0 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 20 6f ->writeError('<info>Generating.o
1c2c0 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 27 29 ptimized.autoload.files</info>')
1c2e0 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 3e 77 72 69 74 65 ;.}.else.{.$this->getIO()->write
1c300 45 72 72 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 Error('<info>Generating.autoload
1c320 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d .files</info>');.}..$generator.=
1c340 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 .$composer->getAutoloadGenerator
1c360 28 29 3b 0a 24 67 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 21 24 69 6e 70 ();.$generator->setDevMode(!$inp
1c380 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 3b 0a 24 67 65 6e 65 72 ut->getOption('no-dev'));.$gener
1c3a0 61 74 6f 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 24 ator->setClassMapAuthoritative($
1c3c0 61 75 74 68 6f 72 69 74 61 74 69 76 65 29 3b 0a 24 67 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 52 authoritative);.$generator->setR
1c3e0 75 6e 53 63 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f unScripts(!$input->getOption('no
1c400 2d 73 63 72 69 70 74 73 27 29 29 3b 0a 24 67 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 63 -scripts'));.$generator->dump($c
1c420 6f 6e 66 69 67 2c 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 onfig,.$localRepo,.$package,.$in
1c440 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 stallationManager,.'composer',.$
1c460 6f 70 74 69 6d 69 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 optimize);.}.}.<?php............
1c480 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
1c4a0 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 79 5c 43 .Composer\Factory;.use.Symfony\C
1c4c0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
1c4e0 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
1c500 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
1c520 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 53 74 mfony\Component\Console\Input\St
1c540 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 ringInput;.use.Symfony\Component
1c560 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;
1c580 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 .....class.GlobalCommand.extends
1c5a0 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 63 6f .Command.{.protected.function.co
1c5c0 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 67 6c 6f nfigure().{.$this.->setName('glo
1c5e0 62 61 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 6c 6c 6f 77 73 20 72 bal').->setDescription('Allows.r
1c600 75 6e 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f unning.commands.in.the.global.co
1c620 6d 70 6f 73 65 72 20 64 69 72 20 28 24 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 29 2e 27 29 0a 2d mposer.dir.($COMPOSER_HOME).').-
1c640 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 >setDefinition(array(.new.InputA
1c660 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 rgument('command-name',.InputArg
1c680 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 ument::REQUIRED,.''),.new.InputA
1c6a0 72 67 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 rgument('args',.InputArgument::I
1c6c0 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 4e 41 S_ARRAY.|.InputArgument::OPTIONA
1c6e0 4c 2c 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 55 73 65 20 L,.''),.)).->setHelp(<<<EOT.Use.
1c700 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 73 20 61 20 77 72 61 70 70 65 72 20 74 6f 20 72 75 6e this.command.as.a.wrapper.to.run
1c720 20 6f 74 68 65 72 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 73 0a 77 69 74 68 69 6e 20 .other.Composer.commands.within.
1c740 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 43 4f 4d 50 4f 53 45 52 5f 48 the.global.context.of.COMPOSER_H
1c760 4f 4d 45 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 74 6f 20 69 6e 73 74 61 6c OME...You.can.use.this.to.instal
1c780 6c 20 43 4c 49 20 75 74 69 6c 69 74 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2c 20 61 6c 6c 20 79 6f l.CLI.utilities.globally,.all.yo
1c7a0 75 20 6e 65 65 64 0a 69 73 20 74 6f 20 61 64 64 20 74 68 65 20 43 4f 4d 50 4f 53 45 52 5f 48 4f u.need.is.to.add.the.COMPOSER_HO
1c7c0 4d 45 2f 76 65 6e 64 6f 72 2f 62 69 6e 20 64 69 72 20 74 6f 20 79 6f 75 72 20 50 41 54 48 20 65 ME/vendor/bin.dir.to.your.PATH.e
1c7e0 6e 76 20 76 61 72 2e 0a 0a 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 69 73 20 63 3a 5c 55 73 65 nv.var...COMPOSER_HOME.is.c:\Use
1c800 72 73 5c 3c 75 73 65 72 3e 5c 41 70 70 44 61 74 61 5c 52 6f 61 6d 69 6e 67 5c 43 6f 6d 70 6f 73 rs\<user>\AppData\Roaming\Compos
1c820 65 72 20 6f 6e 20 57 69 6e 64 6f 77 73 0a 61 6e 64 20 2f 68 6f 6d 65 2f 3c 75 73 65 72 3e 2f 2e er.on.Windows.and./home/<user>/.
1c840 63 6f 6d 70 6f 73 65 72 20 6f 6e 20 75 6e 69 78 20 73 79 73 74 65 6d 73 2e 0a 0a 4e 6f 74 65 3a composer.on.unix.systems...Note:
1c860 20 54 68 69 73 20 70 61 74 68 20 6d 61 79 20 76 61 72 79 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e .This.path.may.vary.depending.on
1c880 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 62 69 6e 2d 64 69 72 20 69 6e 0a 63 6f .customizations.to.bin-dir.in.co
1c8a0 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 61 6c mposer.json.or.the.environmental
1c8c0 20 76 61 72 69 61 62 6c 65 20 43 4f 4d 50 4f 53 45 52 5f 42 49 4e 5f 44 49 52 2e 0a 0a 45 4f 54 .variable.COMPOSER_BIN_DIR...EOT
1c8e0 0a 29 0a 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 .).;.}..public.function.run(Inpu
1c900 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 tInterface.$input,.OutputInterfa
1c920 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 6f 6b 65 6e 73 20 3d 20 70 72 65 67 5f 73 ce.$output).{...$tokens.=.preg_s
1c940 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 69 6e 70 75 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 plit('{\s+}',.$input->__toString
1c960 28 29 29 3b 0a 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ());.$args.=.array();.foreach.($
1c980 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 tokens.as.$token).{.if.($token.&
1c9a0 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b 0a 24 61 72 67 73 5b 5d 20 3d &.$token[0].!==.'-').{.$args[].=
1c9c0 20 24 74 6f 6b 65 6e 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 72 67 73 29 20 3e 3d 20 32 29 20 .$token;.if.(count($args).>=.2).
1c9e0 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 61 72 67 {.break;.}.}.}....if.(count($arg
1ca00 73 29 20 3c 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e s).<.2).{.return.parent::run($in
1ca20 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 46 61 put,.$output);.}....$config.=.Fa
1ca40 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 63 68 64 69 72 28 24 63 6f ctory::createConfig();.chdir($co
1ca60 6e 66 69 67 2d 3e 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 nfig->get('home'));.$this->getIO
1ca80 28 29 2d 3e 77 72 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 ()->writeError('<info>Changed.cu
1caa0 72 72 65 6e 74 20 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 rrent.directory.to.'.$config->ge
1cac0 74 28 27 68 6f 6d 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 t('home').'</info>');....$input.
1cae0 3d 20 6e 65 77 20 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 =.new.StringInput(preg_replace('
1cb00 7b 5c 62 67 28 3f 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 {\bg(?:l(?:o(?:b(?:a(?:l)?)?)?)?
1cb20 29 3f 5c 62 7d 27 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 )?\b}',.'',.$input->__toString()
1cb40 2c 20 31 29 29 3b 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 ,.1));..return.$this->getApplica
1cb60 74 69 6f 6e 28 29 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 tion()->run($input,.$output);.}.
1cb80 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
1cba0 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 poser\Command;..use.Composer\Fac
1cbc0 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 43 6f 6d 70 6c tory;.use.Composer\Package\Compl
1cbe0 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 6f 73 65 etePackageInterface;.use.Compose
1cc00 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 61 63 65 r\Repository\RepositoryInterface
1cc20 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 ;.use.Composer\Repository\ArrayR
1cc40 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f epository;.use.Composer\Util\Pro
1cc60 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e cessExecutor;.use.Symfony\Compon
1cc80 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;
1cca0 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
1ccc0 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
1cce0 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
1cd00 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
1cd20 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;.....
1cd40 63 6c 61 73 73 20 48 6f 6d 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e class.HomeCommand.extends.Comman
1cd60 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 d.{....protected.function.config
1cd80 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 62 72 6f 77 73 65 27 ure().{.$this.->setName('browse'
1cda0 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 68 6f 6d 65 27 29 29 0a 2d 3e ).->setAliases(array('home')).->
1cdc0 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4f 70 65 6e 73 20 74 68 65 20 70 61 63 6b 61 67 setDescription('Opens.the.packag
1cde0 65 5c 27 73 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 20 6f 72 20 68 6f 6d 65 70 61 67 65 20 e\'s.repository.URL.or.homepage.
1ce00 69 6e 20 79 6f 75 72 20 62 72 6f 77 73 65 72 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 in.your.browser.').->setDefiniti
1ce20 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
1ce40 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 kages',.InputArgument::IS_ARRAY.
1ce60 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b |.InputArgument::REQUIRED,.'Pack
1ce80 61 67 65 28 73 29 20 74 6f 20 62 72 6f 77 73 65 20 74 6f 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 age(s).to.browse.to.'),.new.Inpu
1cea0 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 48 27 2c 20 49 6e 70 75 74 4f 70 tOption('homepage',.'H',.InputOp
1cec0 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e 20 74 68 65 20 68 6f 6d 65 tion::VALUE_NONE,.'Open.the.home
1cee0 70 61 67 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 55 page.instead.of.the.repository.U
1cf00 52 4c 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 68 6f 77 27 2c 20 27 RL.'),.new.InputOption('show',.'
1cf20 73 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 4f 6e s',.InputOption::VALUE_NONE,.'On
1cf40 6c 79 20 73 68 6f 77 20 74 68 65 20 68 6f 6d 65 70 61 67 65 20 6f 72 20 72 65 70 6f 73 69 74 6f ly.show.the.homepage.or.reposito
1cf60 72 79 20 55 52 4c 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 ry.URL.'),.)).->setHelp(<<<EOT.T
1cf80 68 65 20 68 6f 6d 65 20 63 6f 6d 6d 61 6e 64 20 6f 70 65 6e 73 20 6f 72 20 73 68 6f 77 73 20 61 he.home.command.opens.or.shows.a
1cfa0 20 70 61 63 6b 61 67 65 27 73 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 20 6f 72 0a 68 6f 6d .package's.repository.URL.or.hom
1cfc0 65 70 61 67 65 20 69 6e 20 79 6f 75 72 20 64 65 66 61 75 6c 74 20 62 72 6f 77 73 65 72 2e 0a 0a epage.in.your.default.browser...
1cfe0 54 6f 20 6f 70 65 6e 20 74 68 65 20 68 6f 6d 65 70 61 67 65 20 62 79 20 64 65 66 61 75 6c 74 2c To.open.the.homepage.by.default,
1d000 20 75 73 65 20 2d 48 20 6f 72 20 2d 2d 68 6f 6d 65 70 61 67 65 2e 0a 54 6f 20 73 68 6f 77 20 69 .use.-H.or.--homepage..To.show.i
1d020 6e 73 74 65 61 64 20 6f 66 20 6f 70 65 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 6f 72 nstead.of.open.the.repository.or
1d040 20 68 6f 6d 65 70 61 67 65 20 55 52 4c 2c 20 75 73 65 20 2d 73 20 6f 72 20 2d 2d 73 68 6f 77 2e .homepage.URL,.use.-s.or.--show.
1d060 0a 45 4f 54 0a 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 .EOT.);.}.....protected.function
1d080 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 .execute(InputInterface.$input,.
1d0a0 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 72 65 70 6f OutputInterface.$output).{.$repo
1d0c0 73 20 3d 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 52 65 70 6f 73 28 29 3b 0a 24 69 s.=.$this->initializeRepos();.$i
1d0e0 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 72 65 74 75 72 6e 20 3d 20 30 3b o.=.$this->getIO();.$return.=.0;
1d100 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 ..foreach.($input->getArgument('
1d120 70 61 63 6b 61 67 65 73 27 29 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 68 packages').as.$packageName).{.$h
1d140 61 6e 64 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 24 70 61 63 6b 61 67 65 45 78 69 73 74 73 20 3d andled.=.false;.$packageExists.=
1d160 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f .false;.foreach.($repos.as.$repo
1d180 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 ).{.foreach.($repo->findPackages
1d1a0 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 ($packageName).as.$package).{.$p
1d1c0 61 63 6b 61 67 65 45 78 69 73 74 73 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e ackageExists.=.true;.if.($this->
1d1e0 68 61 6e 64 6c 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 70 75 74 2d 3e handlePackage($package,.$input->
1d200 67 65 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 getOption('homepage'),.$input->g
1d220 65 74 4f 70 74 69 6f 6e 28 27 73 68 6f 77 27 29 29 29 20 7b 0a 24 68 61 6e 64 6c 65 64 20 3d 20 etOption('show'))).{.$handled.=.
1d240 74 72 75 65 3b 0a 62 72 65 61 6b 20 32 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 70 61 63 6b true;.break.2;.}.}.}..if.(!$pack
1d260 61 67 65 45 78 69 73 74 73 29 20 7b 0a 24 72 65 74 75 72 6e 20 3d 20 31 3b 0a 24 69 6f 2d 3e 77 ageExists).{.$return.=.1;.$io->w
1d280 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 65 20 27 2e 24 70 riteError('<warning>Package.'.$p
1d2a0 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 72 6e 69 6e 67 3e ackageName.'.not.found</warning>
1d2c0 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 68 61 6e 64 6c 65 64 29 20 7b 0a 24 72 65 74 75 72 6e 20 ');.}..if.(!$handled).{.$return.
1d2e0 3d 20 31 3b 0a 24 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 27 =.1;.$io->writeError('<warning>'
1d300 2e 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 .($input->getOption('homepage').
1d320 3f 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 ?.'Invalid.or.missing.homepage'.
1d340 3a 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 :.'Invalid.or.missing.repository
1d360 20 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 .URL').'.for.'.$packageName.'</w
1d380 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 3b 0a arning>');.}.}..return.$return;.
1d3a0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 50 61 63 6b 61 67 }..private.function.handlePackag
1d3c0 65 28 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b e(CompletePackageInterface.$pack
1d3e0 61 67 65 2c 20 24 73 68 6f 77 48 6f 6d 65 70 61 67 65 2c 20 24 73 68 6f 77 4f 6e 6c 79 29 0a 7b age,.$showHomepage,.$showOnly).{
1d400 0a 24 73 75 70 70 6f 72 74 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 .$support.=.$package->getSupport
1d420 28 29 3b 0a 24 75 72 6c 20 3d 20 69 73 73 65 74 28 24 73 75 70 70 6f 72 74 5b 27 73 6f 75 72 63 ();.$url.=.isset($support['sourc
1d440 65 27 5d 29 20 3f 20 24 73 75 70 70 6f 72 74 5b 27 73 6f 75 72 63 65 27 5d 20 3a 20 24 70 61 63 e']).?.$support['source'].:.$pac
1d460 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 69 66 20 28 21 24 75 72 6c 20 kage->getSourceUrl();.if.(!$url.
1d480 7c 7c 20 24 73 68 6f 77 48 6f 6d 65 70 61 67 65 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b ||.$showHomepage).{.$url.=.$pack
1d4a0 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 20 28 21 24 75 72 6c age->getHomepage();.}..if.(!$url
1d4c0 20 7c 7c 20 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 .||.!filter_var($url,.FILTER_VAL
1d4e0 49 44 41 54 45 5f 55 52 4c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 IDATE_URL)).{.return.false;.}..i
1d500 66 20 28 24 73 68 6f 77 4f 6e 6c 79 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e f.($showOnly).{.$this->getIO()->
1d520 77 72 69 74 65 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 27 2c write(sprintf('<info>%s</info>',
1d540 20 24 75 72 6c 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 65 6e 42 72 6f .$url));.}.else.{.$this->openBro
1d560 77 73 65 72 28 24 75 72 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a wser($url);.}..return.true;.}...
1d580 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
1d5a0 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:
1d5c0 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
1d5e0 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
1d600 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
1d620 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(
1d640 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
1d660 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.
1d680 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
1d6a0 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
1d6c0 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);.}.
1d6e0 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
1d700 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
1d720 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:.'..
1d740 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
1d760 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
1d780 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);.
1d7a0 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 5f 6d .if.($composer).{.return.array_m
1d7c0 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 erge(.array(new.ArrayRepository(
1d7e0 61 72 72 61 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 29 29 29 array($composer->getPackage())))
1d800 2c 20 0a 20 61 72 72 61 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ,...array($composer->getReposito
1d820 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(
1d840 29 29 2c 20 0a 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 )),...$composer->getRepositoryMa
1d860 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 20 0a 20 29 3b 0a nager()->getRepositories()...);.
1d880 7d 0a 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 }..$defaultRepos.=.Factory::crea
1d8a0 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 teDefaultRepositories($this->get
1d8c0 49 4f 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 3b 0a 7d 0a IO());..return.$defaultRepos;.}.
1d8e0 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
1d900 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 44 65 70 poser\Command;..use.Composer\Dep
1d920 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
1d940 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 46 er\Json\JsonFile;.use.Composer\F
1d960 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 42 61 73 actory;.use.Composer\Package\Bas
1d980 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 ePackage;.use.Composer\Package\V
1d9a0 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 6f 73 ersion\VersionParser;.use.Compos
1d9c0 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 53 65 6c 65 63 74 er\Package\Version\VersionSelect
1d9e0 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 or;.use.Composer\Repository\Comp
1da00 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
1da20 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 pository\PlatformRepository;.use
1da40 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;.
1da60 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
1da80 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
1daa0 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
1dac0 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
1dae0 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 53 le\Output\OutputInterface;.use.S
1db00 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 ymfony\Component\Process\Process
1db20 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c ;.use.Symfony\Component\Process\
1db40 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 69 ExecutableFinder;......class.Ini
1db60 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 70 72 6f 74 tCommand.extends.Command.{..prot
1db80 65 63 74 65 64 20 24 72 65 70 6f 73 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 67 69 74 43 6f 6e 66 ected.$repos;...private.$gitConf
1dba0 69 67 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ig;...private.$pool;.....protect
1dbc0 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 0a ed.function.configure().{.$this.
1dbe0 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 69 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 ->setName('init').->setDescripti
1dc00 6f 6e 28 27 43 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f on('Creates.a.basic.composer.jso
1dc20 6e 20 66 69 6c 65 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d n.file.in.current.directory.').-
1dc40 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f >setDefinition(array(.new.InputO
1dc60 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a ption('name',.null,.InputOption:
1dc80 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4e 61 6d 65 20 6f 66 20 74 68 65 20 70 61 :VALUE_REQUIRED,.'Name.of.the.pa
1dca0 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 64 65 73 63 72 69 ckage'),.new.InputOption('descri
1dcc0 70 74 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ption',.null,.InputOption::VALUE
1dce0 5f 52 45 51 55 49 52 45 44 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 61 63 6b 61 _REQUIRED,.'Description.of.packa
1dd00 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 ge'),.new.InputOption('author',.
1dd20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 null,.InputOption::VALUE_REQUIRE
1dd40 44 2c 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 0a 20 D,.'Author.name.of.package'),...
1dd60 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 74 79 70 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e new.InputOption('type',.null,.In
1dd80 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 79 70 65 putOption::VALUE_OPTIONAL,.'Type
1dda0 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 .of.package'),.new.InputOption('
1ddc0 68 6f 6d 65 70 61 67 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 homepage',.null,.InputOption::VA
1dde0 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 48 6f 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b 61 LUE_REQUIRED,.'Homepage.of.packa
1de00 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c ge'),.new.InputOption('require',
1de20 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 .null,.InputOption::VALUE_IS_ARR
1de40 41 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 AY.|.InputOption::VALUE_REQUIRED
1de60 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 77 69 74 68 20 61 20 76 65 72 ,.'Package.to.require.with.a.ver
1de80 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e sion.constraint,.e.g..foo/bar:1.
1dea0 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 72 0.0.or.foo/bar=1.0.0.or."foo/bar
1dec0 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 .1.0.0"'),.new.InputOption('requ
1dee0 69 72 65 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c ire-dev',.null,.InputOption::VAL
1df00 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 UE_IS_ARRAY.|.InputOption::VALUE
1df20 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 66 _REQUIRED,.'Package.to.require.f
1df40 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f or.development.with.a.version.co
1df60 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 nstraint,.e.g..foo/bar:1.0.0.or.
1df80 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 foo/bar=1.0.0.or."foo/bar.1.0.0"
1dfa0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c '),.new.InputOption('stability',
1dfc0 20 27 73 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 .'s',.InputOption::VALUE_REQUIRE
1dfe0 44 2c 20 27 4d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 28 65 6d 70 74 79 20 6f 72 20 D,.'Minimum.stability.(empty.or.
1e000 6f 6e 65 20 6f 66 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 one.of:.'.implode(',.',.array_ke
1e020 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 ys(BasePackage::$stabilities)).'
1e040 29 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 )'),.new.InputOption('license',.
1e060 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 'l',.InputOption::VALUE_REQUIRED
1e080 2c 20 27 4c 69 63 65 6e 73 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 29 29 0a 2d 3e 73 65 ,.'License.of.package'),.)).->se
1e0a0 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c 2f 69 6e 66 tHelp(<<<EOT.The.<info>init</inf
1e0c0 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f o>.command.creates.a.basic.compo
1e0e0 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 ser.json.file.in.the.current.dir
1e100 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 ectory...<info>php.composer.phar
1e120 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 0a 0a 0a 70 72 6f 74 .init</info>..EOT.).;.}.....prot
1e140 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
1e160 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
1e180 75 74 70 75 74 29 0a 7b 0a 24 77 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 6e 61 6d utput).{.$whitelist.=.array('nam
1e1a0 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 27 61 75 74 68 6f 72 27 2c 20 27 74 79 e',.'description',.'author',.'ty
1e1c0 70 65 27 2c 20 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 71 pe',.'homepage',.'require',.'req
1e1e0 75 69 72 65 2d 64 65 76 27 2c 20 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 6c 69 63 65 6e 73 65 uire-dev',.'stability',.'license
1e200 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 ');..$options.=.array_filter(arr
1e220 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 ay_intersect_key($input->getOpti
1e240 6f 6e 73 28 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 74 65 6c 69 73 74 29 29 29 3b ons(),.array_flip($whitelist)));
1e260 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 29 ..if.(isset($options['author']))
1e280 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e .{.$options['authors'].=.$this->
1e2a0 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d formatAuthors($options['author']
1e2c0 29 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 7d 0a );.unset($options['author']);.}.
1e2e0 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d .if.(isset($options['stability']
1e300 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 )).{.$options['minimum-stability
1e320 27 5d 20 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 3b 0a 75 6e 73 65 '].=.$options['stability'];.unse
1e340 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 t($options['stability']);.}..$op
1e360 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e tions['require'].=.isset($option
1e380 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 s['require']).?.$this->formatReq
1e3a0 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3a uirements($options['require']).:
1e3c0 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 .new.\stdClass;.if.(array().===.
1e3e0 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b $options['require']).{.$options[
1e400 27 72 65 71 75 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 0a 69 'require'].=.new.\stdClass;.}..i
1e420 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d f.(isset($options['require-dev']
1e440 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 24 )).{.$options['require-dev'].=.$
1e460 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e this->formatRequirements($option
1e480 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d s['require-dev']);.if.(array().=
1e4a0 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 7b 0a 24 6f ==.$options['require-dev']).{.$o
1e4c0 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 ptions['require-dev'].=.new.\std
1e4e0 43 6c 61 73 73 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 Class;.}.}..$file.=.new.JsonFile
1e500 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 ('composer.json');.$json.=.$file
1e520 2d 3e 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d ->encode($options);.$io.=.$this-
1e540 3e 67 65 74 49 4f 28 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 >getIO();..if.($input->isInterac
1e560 74 69 76 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 tive()).{.$io->writeError(array(
1e580 27 27 2c 20 24 6a 73 6f 6e 2c 20 27 27 29 29 3b 0a 69 66 20 28 21 24 69 6f 2d 3e 61 73 6b 43 6f '',.$json,.''));.if.(!$io->askCo
1e5a0 6e 66 69 72 6d 61 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 nfirmation('Do.you.confirm.gener
1e5c0 61 74 69 6f 6e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 ation.[<comment>yes</comment>]?.
1e5e0 27 2c 20 74 72 75 65 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 ',.true)).{.$io->writeError('<er
1e600 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 3b 0a 0a ror>Command.aborted</error>');..
1e620 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 6f 70 74 return.1;.}.}..$file->write($opt
1e640 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 ions);..if.($input->isInteractiv
1e660 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 6f 72 65 e().&&.is_dir('.git')).{.$ignore
1e680 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 3b 0a 0a File.=.realpath('.gitignore');..
1e6a0 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 24 69 67 if.(false.===.$ignoreFile).{.$ig
1e6c0 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 2e 67 69 noreFile.=.realpath('.')...'/.gi
1e6e0 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 65 6e 64 tignore';.}..if.(!$this->hasVend
1e700 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 73 74 69 orIgnore($ignoreFile)).{.$questi
1e720 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 6f 3e 76 on.=.'Would.you.like.the.<info>v
1e740 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 74 6f 20 endor</info>.directory.added.to.
1e760 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 5b 3c 63 your.<info>.gitignore</info>.[<c
1e780 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 3b 0a 0a 69 66 20 28 24 omment>yes</comment>]?.';..if.($
1e7a0 69 6f 2d 3e 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 74 io->askConfirmation($question,.t
1e7c0 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 rue)).{.$this->addVendorIgnore($
1e7e0 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ignoreFile);.}.}.}.}.....protect
1e800 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 ed.function.interact(InputInterf
1e820 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
1e840 70 75 74 29 0a 7b 0a 24 67 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 74 43 6f 6e 66 69 put).{.$git.=.$this->getGitConfi
1e860 67 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 66 6f 72 6d g();.$io.=.$this->getIO();.$form
1e880 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 atter.=.$this->getHelperSet()->g
1e8a0 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f et('formatter');..$io->writeErro
1e8c0 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 42 r(array(.'',.$formatter->formatB
1e8e0 6c 6f 63 6b 28 27 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 63 6f lock('Welcome.to.the.Composer.co
1e900 6e 66 69 67 20 67 65 6e 65 72 61 74 6f 72 27 2c 20 27 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 nfig.generator',.'bg=blue;fg=whi
1e920 74 65 27 2c 20 74 72 75 65 29 2c 0a 27 27 2c 0a 29 29 3b 0a 0a 0a 20 24 69 6f 2d 3e 77 72 69 74 te',.true),.'',.));....$io->writ
1e940 65 45 72 72 6f 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 eError(array(.'',.'This.command.
1e960 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 63 72 65 61 74 69 6e 67 20 will.guide.you.through.creating.
1e980 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 63 6f 6e 66 69 67 2e 27 2c 0a 27 27 2c your.composer.json.config.',.'',
1e9a0 0a 29 29 3b 0a 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 22 2e 22 29 3b 0a 0a 69 66 20 .));..$cwd.=.realpath(".");..if.
1e9c0 28 21 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d (!$name.=.$input->getOption('nam
1e9e0 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 24 e')).{.$name.=.basename($cwd);.$
1ea00 6e 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 2d 7a 5d 29 name.=.preg_replace('{(?:([a-z])
1ea20 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 7d 27 2c 20 ([A-Z])|([A-Z])([A-Z][a-z]))}',.
1ea40 27 5c 5c 31 5c 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 '\\1\\3-\\2\\4',.$name);.$name.=
1ea60 20 73 74 72 74 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 .strtolower($name);.if.(isset($g
1ea80 69 74 5b 27 67 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 it['github.user'])).{.$name.=.$g
1eaa0 69 74 5b 27 67 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 it['github.user']...'/'...$name;
1eac0 0a 7d 20 65 6c 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 .}.elseif.(!empty($_SERVER['USER
1eae0 4e 41 4d 45 27 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 NAME'])).{.$name.=.$_SERVER['USE
1eb00 52 4e 41 4d 45 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 RNAME']...'/'...$name;.}.elseif.
1eb20 28 67 65 74 5f 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 (get_current_user()).{.$name.=.g
1eb40 65 74 5f 63 75 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 et_current_user()...'/'...$name;
1eb60 0a 7d 20 65 6c 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 .}.else.{...$name.=.$name...'/'.
1eb80 2e 20 24 6e 61 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 ..$name;.}.}.else.{.if.(!preg_ma
1eba0 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b tch('{^[a-z0-9_.-]+/[a-z0-9_.-]+
1ebc0 24 7d 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 $}',.$name)).{.throw.new.\Invali
1ebe0 64 41 72 67 75 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 dArgumentException(.'The.package
1ec00 20 6e 61 6d 65 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 .name.'.$name.'.is.invalid,.it.s
1ec20 68 6f 75 6c 64 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 hould.be.lowercase.and.have.a.ve
1ec40 6e 64 6f 72 20 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 ndor.name,.a.forward.slash,.and.
1ec60 61 20 70 61 63 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 a.package.name,.matching:.[a-z0-
1ec80 39 5f 2e 2d 5d 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 9_.-]+/[a-z0-9_.-]+'.);.}.}..$na
1eca0 6d 65 20 3d 20 24 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 27 50 61 63 6b 61 me.=.$io->askAndValidate(.'Packa
1ecc0 67 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e 2f 3c 6e 61 6d 65 3e 29 20 5b 3c 63 6f 6d 6d ge.name.(<vendor>/<name>).[<comm
1ece0 65 6e 74 3e 27 2e 24 6e 61 6d 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 20 27 2c 0a 66 75 6e ent>'.$name.'</comment>]:.',.fun
1ed00 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 0a 69 66 20 ction.($value).use.($name).{.if.
1ed20 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 6e 61 6d 65 (null.===.$value).{.return.$name
1ed40 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 30 2d 39 5f ;.}..if.(!preg_match('{^[a-z0-9_
1ed60 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 29 29 20 7b .-]+/[a-z0-9_.-]+$}',.$value)).{
1ed80 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
1eda0 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 61 6c 75 65 tion(.'The.package.name.'.$value
1edc0 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 6c 6f 77 65 .'.is.invalid,.it.should.be.lowe
1ede0 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 2c 20 61 20 rcase.and.have.a.vendor.name,.a.
1ee00 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 20 6e 61 6d forward.slash,.and.a.package.nam
1ee20 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 2d 7a 30 2d e,.matching:.[a-z0-9_.-]+/[a-z0-
1ee40 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 0a 7d 2c 0a 9_.-]+'.);.}..return.$value;.},.
1ee60 6e 75 6c 6c 2c 0a 24 6e 61 6d 65 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e null,.$name.);.$input->setOption
1ee80 28 27 6e 61 6d 65 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d ('name',.$name);..$description.=
1eea0 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 .$input->getOption('description'
1eec0 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 69 6f 2d 3e ).?:.false;.$description.=.$io->
1eee0 61 73 6b 28 0a 27 44 65 73 63 72 69 70 74 69 6f 6e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 64 ask(.'Description.[<comment>'.$d
1ef00 65 73 63 72 69 70 74 69 6f 6e 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 20 27 2c 0a 24 64 65 73 escription.'</comment>]:.',.$des
1ef20 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
1ef40 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.
1ef60 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
1ef80 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
1efa0 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
1efc0 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
1efe0 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'],.
1f000 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.
1f020 3d 20 24 74 68 69 73 3b 0a 24 61 75 74 68 6f 72 20 3d 20 24 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 =.$this;.$author.=.$io->askAndVa
1f040 6c 69 64 61 74 65 28 0a 27 41 75 74 68 6f 72 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 61 75 74 lidate(.'Author.[<comment>'.$aut
1f060 68 6f 72 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 20 27 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 hor.'</comment>]:.',.function.($
1f080 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 61 75 74 68 6f 72 29 20 7b 0a 24 76 value).use.($self,.$author).{.$v
1f0a0 61 6c 75 65 20 3d 20 24 76 61 6c 75 65 20 3f 3a 20 24 61 75 74 68 6f 72 3b 0a 24 61 75 74 68 6f alue.=.$value.?:.$author;.$autho
1f0c0 72 20 3d 20 24 73 65 6c 66 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 76 61 r.=.$self->parseAuthorString($va
1f0e0 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c lue);..return.sprintf('%s.<%s>',
1f100 20 24 61 75 74 68 6f 72 5b 27 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c .$author['name'],.$author['email
1f120 27 5d 29 3b 0a 7d 2c 0a 6e 75 6c 6c 2c 0a 24 61 75 74 68 6f 72 0a 29 3b 0a 24 69 6e 70 75 74 2d ']);.},.null,.$author.);.$input-
1f140 3e 73 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 3b 0a 0a >setOption('author',.$author);..
1f160 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f $minimumStability.=.$input->getO
1f180 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 24 6d 69 6e ption('stability').?:.null;.$min
1f1a0 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 imumStability.=.$io->askAndValid
1f1c0 61 74 65 28 0a 27 4d 69 6e 69 6d 75 6d 20 53 74 61 62 69 6c 69 74 79 20 5b 3c 63 6f 6d 6d 65 6e ate(.'Minimum.Stability.[<commen
1f1e0 74 3e 27 2e 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 t>'.$minimumStability.'</comment
1f200 3e 5d 3a 20 27 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 >]:.',.function.($value).use.($s
1f220 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 75 elf,.$minimumStability).{.if.(nu
1f240 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 6d ll.===.$value).{.return.$minimum
1f260 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 63 Stability;.}..if.(!isset(BasePac
1f280 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 74 kage::$stabilities[$value])).{.t
1f2a0 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
1f2c0 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 22 on(.'Invalid.minimum.stability."
1f2e0 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 6e '.$value.'"..Must.be.empty.or.on
1f300 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 79 e.of:.'..implode(',.',.array_key
1f320 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 3b s(BasePackage::$stabilities)).);
1f340 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 2c 0a 6e 75 6c 6c 2c 0a 24 6d 69 6e .}..return.$value;.},.null,.$min
1f360 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 imumStability.);.$input->setOpti
1f380 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 on('stability',.$minimumStabilit
1f3a0 79 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 y);..$type.=.$input->getOption('
1f3c0 74 79 70 65 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 74 79 70 65 20 3d 20 24 69 6f 2d 3e 61 73 type').?:.false;.$type.=.$io->as
1f3e0 6b 28 0a 27 50 61 63 6b 61 67 65 20 54 79 70 65 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 74 79 k(.'Package.Type.[<comment>'.$ty
1f400 70 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 20 27 2c 0a 24 74 79 70 65 0a 29 3b 0a 24 69 6e pe.'</comment>]:.',.$type.);.$in
1f420 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 74 79 70 65 27 2c 20 24 74 79 70 65 29 3b 0a 0a put->setOption('type',.$type);..
1f440 24 6c 69 63 65 6e 73 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 $license.=.$input->getOption('li
1f460 63 65 6e 73 65 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 69 6f cense').?:.false;.$license.=.$io
1f480 2d 3e 61 73 6b 28 0a 27 4c 69 63 65 6e 73 65 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 6c 69 63 ->ask(.'License.[<comment>'.$lic
1f4a0 65 6e 73 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 20 27 2c 0a 24 6c 69 63 65 6e 73 65 0a 29 ense.'</comment>]:.',.$license.)
1f4c0 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 24 ;.$input->setOption('license',.$
1f4e0 6c 69 63 65 6e 73 65 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 license);..$io->writeError(array
1f500 28 27 27 2c 20 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 2e 27 ('',.'Define.your.dependencies.'
1f520 2c 20 27 27 29 29 3b 0a 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 ,.''));..$question.=.'Would.you.
1f540 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 like.to.define.your.dependencies
1f560 20 28 72 65 71 75 69 72 65 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 5b 3c 63 6f 6d 6d 65 .(require).interactively.[<comme
1f580 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 3b 0a 24 72 65 71 75 69 72 65 6d 65 nt>yes</comment>]?.';.$requireme
1f5a0 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 nts.=.array();.if.($io->askConfi
1f5c0 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 74 72 75 65 29 29 20 7b 0a 24 72 65 71 rmation($question,.true)).{.$req
1f5e0 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
1f600 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
1f620 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
1f640 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
1f660 6d 65 6e 74 73 29 3b 0a 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 ments);..$question.=.'Would.you.
1f680 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 76 20 64 65 70 65 6e 64 65 6e like.to.define.your.dev.dependen
1f6a0 63 69 65 73 20 28 72 65 71 75 69 72 65 2d 64 65 76 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 cies.(require-dev).interactively
1f6c0 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 3b 0a 24 64 .[<comment>yes</comment>]?.';.$d
1f6e0 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 69 evRequirements.=.array();.if.($i
1f700 6f 2d 3e 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 74 72 o->askConfirmation($question,.tr
1f720 75 65 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d ue)).{.$devRequirements.=.$this-
1f740 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 >determineRequirements($input,.$
1f760 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 output,.$input->getOption('requi
1f780 72 65 2d 64 65 76 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 re-dev'));.}.$input->setOption('
1f7a0 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b require-dev',.$devRequirements);
1f7c0 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 61 72 73 65 41 75 .}.......public.function.parseAu
1f7e0 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 65 67 5f 6d thorString($author).{.if.(preg_m
1f800 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 5c 70 7b 4e atch('/^(?P<name>[-.\.,\p{L}\p{N
1f820 7d 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 }\'...]+).<(?P<email>.+?)>$/u',.
1f840 24 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 $author,.$match)).{.if.($this->i
1f860 73 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 sValidEmail($match['email'])).{.
1f880 72 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 return.array(.'name'.=>.trim($ma
1f8a0 74 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 tch['name']),.'email'.=>.$match[
1f8c0 27 65 6d 61 69 6c 27 5d 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 'email'],.);.}.}..throw.new.\Inv
1f8e0 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 alidArgumentException(.'Invalid.
1f900 61 75 74 68 6f 72 20 73 74 72 69 6e 67 2e 20 20 4d 75 73 74 20 62 65 20 69 6e 20 74 68 65 20 66 author.string...Must.be.in.the.f
1f920 6f 72 6d 61 74 3a 20 27 2e 0a 27 4a 6f 68 6e 20 53 6d 69 74 68 20 3c 6a 6f 68 6e 40 65 78 61 6d ormat:.'..'John.Smith.<john@exam
1f940 70 6c 65 2e 63 6f 6d 3e 27 0a 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ple.com>'.);.}..protected.functi
1f960 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 on.findPackages($name).{.return.
1f980 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 28 29 2d 3e 73 65 61 72 63 68 28 24 6e 61 6d 65 29 $this->getRepos()->search($name)
1f9a0 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 52 65 70 6f 73 ;.}..protected.function.getRepos
1f9c0 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 70 6f 73 29 20 7b 0a 24 74 68 69 73 2d ().{.if.(!$this->repos).{.$this-
1f9e0 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 >repos.=.new.CompositeRepository
1fa00 28 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d (array_merge(.array(new.Platform
1fa20 52 65 70 6f 73 69 74 6f 72 79 29 2c 0a 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 Repository),.Factory::createDefa
1fa40 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 0a ultRepositories($this->getIO()).
1fa60 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 3b 0a 7d 0a 0a 70 ));.}..return.$this->repos;.}..p
1fa80 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 rotected.function.determineRequi
1faa0 72 65 6d 65 6e 74 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f rements(InputInterface.$input,.O
1fac0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 72 65 71 75 69 72 65 utputInterface.$output,.$require
1fae0 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 70 68 70 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 s.=.array(),.$phpVersion.=.null)
1fb00 0a 7b 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 .{.if.($requires).{.$requires.=.
1fb20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 $this->normalizeRequirements($re
1fb40 71 75 69 72 65 73 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6f 20 quires);.$result.=.array();.$io.
1fb60 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 =.$this->getIO();..foreach.($req
1fb80 75 69 72 65 73 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 uires.as.$requirement).{.if.(!is
1fba0 73 65 74 28 24 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 set($requirement['version'])).{.
1fbc0 0a 20 24 76 65 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 ..$version.=.$this->findBestVers
1fbe0 69 6f 6e 46 6f 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 ionForPackage($input,.$requireme
1fc00 6e 74 5b 27 6e 61 6d 65 27 5d 2c 20 24 70 68 70 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 71 75 69 nt['name'],.$phpVersion);.$requi
1fc20 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 24 rement['version'].=.$version;..$
1fc40 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 55 73 69 6e 67 20 76 io->writeError(sprintf(.'Using.v
1fc60 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 6f ersion.<info>%s</info>.for.<info
1fc80 3e 25 73 3c 2f 69 6e 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 >%s</info>',.$requirement['versi
1fca0 6f 6e 27 5d 2c 0a 24 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 on'],.$requirement['name'].));.}
1fcc0 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 ..$result[].=.$requirement['name
1fce0 27 5d 20 2e 20 27 20 27 20 2e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e ']...'.'...$requirement['version
1fd00 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 24 76 65 72 73 69 '];.}..return.$result;.}..$versi
1fd20 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();.
1fd40 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 77 68 69 6c 65 20 28 6e 75 6c $io.=.$this->getIO();.while.(nul
1fd60 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 24 69 6f 2d 3e 61 73 6b 28 27 53 65 61 72 63 l.!==.$package.=.$io->ask('Searc
1fd80 68 20 66 6f 72 20 61 20 70 61 63 6b 61 67 65 3a 20 27 29 29 20 7b 0a 24 6d 61 74 63 68 65 73 20 h.for.a.package:.')).{.$matches.
1fda0 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 29 3b =.$this->findPackages($package);
1fdc0 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 65 78 61 63 74 4d ..if.(count($matches)).{.$exactM
1fde0 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b atch.=.null;.$choices.=.array();
1fe00 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 .foreach.($matches.as.$position.
1fe20 3d 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 =>.$foundPackage).{.$choices[].=
1fe40 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 35 73 3c 2f 69 6e 66 6f 3e 20 25 73 27 2c .sprintf('.<info>%5s</info>.%s',
1fe60 20 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 ."[$position]",.$foundPackage['n
1fe80 61 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 ame']);.if.($foundPackage['name'
1fea0 5d 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 ].===.$package).{.$exactMatch.=.
1fec0 74 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 true;.break;.}.}....if.(!$exactM
1fee0 61 74 63 68 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 atch).{.$io->writeError(array(.'
1ff00 27 2c 0a 73 70 72 69 6e 74 66 28 27 46 6f 75 6e 64 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f ',.sprintf('Found.<info>%s</info
1ff20 3e 20 70 61 63 6b 61 67 65 73 20 6d 61 74 63 68 69 6e 67 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e >.packages.matching.<info>%s</in
1ff40 66 6f 3e 27 2c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 2c 20 24 70 61 63 6b 61 67 65 29 fo>',.count($matches),.$package)
1ff60 2c 0a 27 27 2c 0a 29 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 68 6f 69 ,.'',.));..$io->writeError($choi
1ff80 63 65 73 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 0a 24 76 61 6c ces);.$io->writeError('');..$val
1ffa0 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 75 idator.=.function.($selection).u
1ffc0 73 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 se.($matches,.$versionParser).{.
1ffe0 69 66 20 28 27 27 20 3d 3d 3d 20 24 73 65 6c 65 63 74 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 if.(''.===.$selection).{.return.
20000 66 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 false;.}..if.(is_numeric($select
20020 69 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 ion).&&.isset($matches[(int).$se
20040 6c 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 lection])).{.$package.=.$matches
20060 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 [(int).$selection];..return.$pac
20080 6b 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 kage['name'];.}..if.(preg_match(
200a0 27 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 '{^\s*(?P<name>[\S/]+)(?:\s+(?P<
200c0 76 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 version>\S+))?\s*$}',.$selection
200e0 2c 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 ,.$packageMatches)).{.if.(isset(
20100 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 29 20 7b 0a 0a $packageMatches['version'])).{..
20120 0a 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 ...$versionParser->parseConstrai
20140 6e 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 nts($packageMatches['version']);
20160 0a 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 ..return.$packageMatches['name']
20180 2e 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 .'.'.$packageMatches['version'];
201a0 0a 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 .}....return.$packageMatches['na
201c0 6d 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 me'];.}..throw.new.\Exception('N
201e0 6f 74 20 61 20 76 61 6c 69 64 20 73 65 6c 65 63 74 69 6f 6e 27 29 3b 0a 7d 3b 0a 0a 24 70 61 63 ot.a.valid.selection');.};..$pac
20200 6b 61 67 65 20 3d 20 24 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 27 45 6e 74 kage.=.$io->askAndValidate(.'Ent
20220 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
20240 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
20260 69 73 74 65 64 3a 20 27 2c 0a 24 76 61 6c 69 64 61 74 6f 72 2c 0a 33 2c 0a 66 61 6c 73 65 0a 29 isted:.',.$validator,.3,.false.)
20280 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 20 26 26 ;.}....if.(false.!==.$package.&&
202a0 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 20 27 29 .false.===.strpos($package,.'.')
202c0 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 6e 70 75 ).{.$validator.=.function.($inpu
202e0 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 72 65 74 t).{.$input.=.trim($input);..ret
20300 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 73 74 72 urn.$input.?:.false;.};..$constr
20320 61 69 6e 74 20 3d 20 24 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 27 45 6e 74 aint.=.$io->askAndValidate(.'Ent
20340 65 72 20 74 68 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 72 65 71 er.the.version.constraint.to.req
20360 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 20 74 68 65 20 uire.(or.leave.blank.to.use.the.
20380 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 29 3a 20 27 2c 0a 24 76 61 6c 69 64 61 74 6f 72 2c 0a latest.version):.',.$validator,.
203a0 33 2c 0a 66 61 6c 73 65 0a 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 73 3,.false.);..if.(false.===.$cons
203c0 74 72 61 69 6e 74 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 66 traint).{.$constraint.=.$this->f
203e0 69 6e 64 42 65 73 74 56 65 72 73 69 6f 6e 46 6f 72 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2c indBestVersionForPackage($input,
20400 20 24 70 61 63 6b 61 67 65 2c 20 24 70 68 70 56 65 72 73 69 6f 6e 29 3b 0a 0a 24 69 6f 2d 3e 77 .$package,.$phpVersion);..$io->w
20420 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 76 65 72 73 69 6f riteError(sprintf(.'Using.versio
20440 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 6f 3e 25 73 3c 2f n.<info>%s</info>.for.<info>%s</
20460 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 61 67 65 0a 29 29 info>',.$constraint,.$package.))
20480 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 74 72 61 69 6e 74 ;.}..$package..=.'.'.$constraint
204a0 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 65 29 20 7b 0a 24 ;.}..if.(false.!==.$package).{.$
204c0 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 requires[].=.$package;.}.}.}..re
204e0 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e turn.$requires;.}..protected.fun
20500 63 74 69 6f 6e 20 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 61 75 74 68 6f 72 29 0a 7b 0a 72 ction.formatAuthors($author).{.r
20520 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 eturn.array($this->parseAuthorSt
20540 72 69 6e 67 28 24 61 75 74 68 6f 72 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ring($author));.}..protected.fun
20560 63 74 69 6f 6e 20 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 ction.formatRequirements(array.$
20580 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 requirements).{.$requires.=.arra
205a0 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d y();.$requirements.=.$this->norm
205c0 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 6d 65 6e 74 73 29 alizeRequirements($requirements)
205e0 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 72 65 71 ;.foreach.($requirements.as.$req
20600 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 75 69 72 65 6d 65 uirement).{.$requires[$requireme
20620 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 5b 27 76 65 72 73 nt['name']].=.$requirement['vers
20640 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 3b 0a 7d 0a 0a 70 ion'];.}..return.$requires;.}..p
20660 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 6e 66 69 67 28 29 rotected.function.getGitConfig()
20680 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 43 6f 6e 66 69 67 .{.if.(null.!==.$this->gitConfig
206a0 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 67 3b 0a 7d 0a 0a ).{.return.$this->gitConfig;.}..
206c0 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 6e 64 65 72 28 29 $finder.=.new.ExecutableFinder()
206e0 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 27 67 69 74 27 29 ;.$gitBin.=.$finder->find('git')
20700 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 6e 74 66 28 27 25 ;..$cmd.=.new.Process(sprintf('%
20720 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 74 6f 72 3a 3a 65 s.config.-l',.ProcessExecutor::e
20740 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 6e 28 29 3b 0a 0a scape($gitBin)));.$cmd->run();..
20760 69 66 20 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 if.($cmd->isSuccessful()).{.$thi
20780 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 s->gitConfig.=.array();.preg_mat
207a0 63 68 5f 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 ch_all('{^([^=]+)=(.*)$}m',.$cmd
207c0 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 ->getOutput(),.$matches,.PREG_SE
207e0 54 5f 4f 52 44 45 52 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 T_ORDER);.foreach.($matches.as.$
20800 6d 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 match).{.$this->gitConfig[$match
20820 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 [1]].=.$match[2];.}..return.$thi
20840 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 s->gitConfig;.}..return.$this->g
20860 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a itConfig.=.array();.}...........
20880 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 56 65 6e .......protected.function.hasVen
208a0 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d dorIgnore($ignoreFile,.$vendor.=
208c0 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 .'vendor').{.if.(!file_exists($i
208e0 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 gnoreFile)).{.return.false;.}..$
20900 70 61 74 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 27 7b 5e 2f 3f 25 73 28 2f 5c 2a 3f 29 3f pattern.=.sprintf('{^/?%s(/\*?)?
20920 24 7d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 6e 64 6f 72 29 29 3b 0a 0a 24 6c 69 6e $}',.preg_quote($vendor));..$lin
20940 65 73 20 3d 20 66 69 6c 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 46 49 4c 45 5f 49 47 4e 4f es.=.file($ignoreFile,.FILE_IGNO
20960 52 45 5f 4e 45 57 5f 4c 49 4e 45 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 RE_NEW_LINES);.foreach.($lines.a
20980 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 s.$line).{.if.(preg_match($patte
209a0 72 6e 2c 20 24 6c 69 6e 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a rn,.$line)).{.return.true;.}.}..
209c0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 return.false;.}..protected.funct
209e0 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 ion.normalizeRequirements(array.
20a00 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 $requirements).{.$parser.=.new.V
20a20 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 72 73 65 72 2d ersionParser();..return.$parser-
20a40 3e 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 24 72 65 71 75 69 72 65 6d >parseNameVersionPairs($requirem
20a60 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 ents);.}..protected.function.add
20a80 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f VendorIgnore($ignoreFile,.$vendo
20aa0 72 20 3d 20 27 2f 76 65 6e 64 6f 72 2f 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 22 r.=.'/vendor/').{.$contents.=.""
20ac0 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 ;.if.(file_exists($ignoreFile)).
20ae0 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 {.$contents.=.file_get_contents(
20b00 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 0a 69 66 20 28 22 5c 6e 22 20 21 3d 3d 20 73 75 62 73 $ignoreFile);..if.("\n".!==.subs
20b20 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 2d 31 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 tr($contents,.0,.-1)).{.$content
20b40 73 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 s..=."\n";.}.}..file_put_content
20b60 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 20 2e 20 24 76 65 6e 64 s($ignoreFile,.$contents...$vend
20b80 6f 72 2e 20 22 5c 6e 22 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e or.."\n");.}..protected.function
20ba0 20 69 73 56 61 6c 69 64 45 6d 61 69 6c 28 24 65 6d 61 69 6c 29 0a 7b 0a 0a 20 69 66 20 28 21 66 .isValidEmail($email).{...if.(!f
20bc0 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 29 20 7b 0a unction_exists('filter_var')).{.
20be0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f return.true;.}....if.(PHP_VERSIO
20c00 4e 5f 49 44 20 3c 20 35 30 33 30 33 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a N_ID.<.50303).{.return.true;.}..
20c20 72 65 74 75 72 6e 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 return.false.!==.filter_var($ema
20c40 69 6c 2c 20 46 49 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 il,.FILTER_VALIDATE_EMAIL);.}..p
20c60 72 69 76 61 74 65 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 rivate.function.getPool(InputInt
20c80 65 72 66 61 63 65 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 erface.$input).{.if.(!$this->poo
20ca0 6c 29 20 7b 0a 24 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 l).{.$this->pool.=.new.Pool($thi
20cc0 73 2d 3e 67 65 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 29 3b s->getMinimumStability($input));
20ce0 0a 24 74 68 69 73 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 .$this->pool->addRepository($thi
20d00 73 2d 3e 67 65 74 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 s->getRepos());.}..return.$this-
20d20 3e 70 6f 6f 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 >pool;.}..private.function.getMi
20d40 6e 69 6d 75 6d 53 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 nimumStability(InputInterface.$i
20d60 6e 70 75 74 29 0a 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 nput).{.if.($input->hasOption('s
20d80 74 61 62 69 6c 69 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 tability')).{.return.$input->get
20da0 4f 70 74 69 6f 6e 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 Option('stability').?:.'stable';
20dc0 0a 7d 0a 0a 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 65 72 .}..$file.=.Factory::getComposer
20de0 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 69 73 File();.if.(is_file($file).&&.is
20e00 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 63 6f _readable($file).&&.is_array($co
20e20 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 63 6f mposer.=.json_decode(file_get_co
20e40 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 21 65 6d ntents($file),.true))).{.if.(!em
20e60 70 74 79 28 24 63 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 pty($composer['minimum-stability
20e80 27 5d 29 29 20 7b 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 '])).{.return.$composer['minimum
20ea0 2d 73 74 61 62 69 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 -stability'];.}.}..return.'stabl
20ec0 65 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 e';.}.............private.functi
20ee0 6f 6e 20 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 28 49 6e 70 on.findBestVersionForPackage(Inp
20f00 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 24 6e 61 6d 65 2c 20 24 70 68 70 56 utInterface.$input,.$name,.$phpV
20f20 65 72 73 69 6f 6e 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 20 3d 20 6e ersion).{...$versionSelector.=.n
20f40 65 77 20 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 50 6f 6f ew.VersionSelector($this->getPoo
20f60 6c 28 24 69 6e 70 75 74 29 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 76 65 72 73 69 6f 6e 53 l($input));.$package.=.$versionS
20f80 65 6c 65 63 74 6f 72 2d 3e 66 69 6e 64 42 65 73 74 43 61 6e 64 69 64 61 74 65 28 24 6e 61 6d 65 elector->findBestCandidate($name
20fa0 2c 20 6e 75 6c 6c 2c 20 24 70 68 70 56 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 ,.null,.$phpVersion);..if.(!$pac
20fc0 6b 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 kage).{.throw.new.\InvalidArgume
20fe0 6e 74 45 78 63 65 70 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 ntException(sprintf(.'Could.not.
21000 66 69 6e 64 20 70 61 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 find.package.%s.at.any.version.f
21020 6f 72 20 79 6f 75 72 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 or.your.minimum-stability.(%s)..
21040 43 68 65 63 6b 20 74 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 Check.the.package.spelling.or.yo
21060 75 72 20 6d 69 6e 69 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 ur.minimum-stability',.$name,.$t
21080 68 69 73 2d 3e 67 65 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 his->getMinimumStability($input)
210a0 0a 29 29 3b 0a 7d 0a 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 .));.}..return.$versionSelector-
210c0 3e 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 73 69 6f 6e 28 24 >findRecommendedRequireVersion($
210e0 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e package);.}.}.<?php............n
21100 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.
21120 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 65 72 Composer\Installer;.use.Composer
21140 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 6f 73 \Plugin\CommandEvent;.use.Compos
21160 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 er\Plugin\PluginEvents;.use.Symf
21180 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
211a0 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
211c0 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 t\Console\Input\InputOption;.use
211e0 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
21200 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
21220 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
21240 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e face;........class.InstallComman
21260 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 d.extends.Command.{.protected.fu
21280 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 nction.configure().{.$this.->set
212a0 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e Name('install').->setDescription
212c0 28 27 49 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e 63 ('Installs.the.project.dependenc
212e0 69 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 ies.from.the.composer.lock.file.
21300 69 66 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 6f 6e 20 74 68 65 if.present,.or.falls.back.on.the
21320 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f .composer.json.').->setDefinitio
21340 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 n(array(.new.InputOption('prefer
21360 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c -source',.null,.InputOption::VAL
21380 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 UE_NONE,.'Forces.installation.fr
213a0 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 om.package.sources.when.possible
213c0 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a ,.including.VCS.information.'),.
213e0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e new.InputOption('prefer-dist',.n
21400 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 ull,.InputOption::VALUE_NONE,.'F
21420 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 orces.installation.from.package.
21440 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e dist.even.for.dev.versions.'),.n
21460 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 ew.InputOption('dry-run',.null,.
21480 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 InputOption::VALUE_NONE,.'Output
214a0 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 s.the.operations.but.will.not.ex
214c0 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c ecute.anything.(implicitly.enabl
214e0 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f es.--verbose).'),.new.InputOptio
21500 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
21520 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 E_NONE,.'Enables.installation.of
21540 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 62 .require-dev.packages.(enabled.b
21560 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 2e y.default,.only.present.for.BC).
21580 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 '),.new.InputOption('no-dev',.nu
215a0 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 ll,.InputOption::VALUE_NONE,.'Di
215c0 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 sables.installation.of.require-d
215e0 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ev.packages.'),.new.InputOption(
21600 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 'no-plugins',.null,.InputOption:
21620 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 70 6c 75 67 69 :VALUE_NONE,.'Disables.all.plugi
21640 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f ns.'),.new.InputOption('no-custo
21660 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e m-installers',.null,.InputOption
21680 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e ::VALUE_NONE,.'DEPRECATED:.Use.n
216a0 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f o-plugins.instead.'),.new.InputO
216c0 70 74 69 6f 6e 28 27 6e 6f 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 ption('no-autoloader',.null,.Inp
216e0 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 61 75 74 utOption::VALUE_NONE,.'Skips.aut
21700 6f 6c 6f 61 64 65 72 20 67 65 6e 65 72 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f oloader.generation'),.new.InputO
21720 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f ption('no-scripts',.null,.InputO
21740 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 ption::VALUE_NONE,.'Skips.the.ex
21760 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 ecution.of.all.scripts.defined.i
21780 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 n.composer.json.file.'),.new.Inp
217a0 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e utOption('no-progress',.null,.In
217c0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f putOption::VALUE_NONE,.'Do.not.o
217e0 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 utput.download.progress.'),.new.
21800 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 InputOption('verbose',.'v|vv|vvv
21820 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f ',.InputOption::VALUE_NONE,.'Sho
21840 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 6f ws.more.details.including.new.co
21860 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 61 mmits.pulled.in.when.updating.pa
21880 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 ckages.'),.new.InputOption('opti
218a0 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 mize-autoloader',.'o',.InputOpti
218c0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c 6f on::VALUE_NONE,.'Optimize.autolo
218e0 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 27 29 2c 0a 6e ader.during.autoloader.dump'),.n
21900 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 ew.InputOption('classmap-authori
21920 74 61 74 69 76 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 tative',.'a',.InputOption::VALUE
21940 5f 4e 4f 4e 45 2c 20 27 41 75 74 6f 6c 6f 61 64 20 63 6c 61 73 73 65 73 20 66 72 6f 6d 20 74 68 _NONE,.'Autoload.classes.from.th
21960 65 20 63 6c 61 73 73 6d 61 70 20 6f 6e 6c 79 2e 20 49 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 e.classmap.only..Implicitly.enab
21980 6c 65 73 20 60 2d 2d 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 60 2e 27 29 2c 0a les.`--optimize-autoloader`.'),.
219a0 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 6d new.InputOption('ignore-platform
219c0 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 45 -reqs',.null,.InputOption::VALUE
219e0 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 6d _NONE,.'Ignore.platform.requirem
21a00 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 6e ents.(php.&.ext-.packages).'),.n
21a20 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 ew.InputArgument('packages',.Inp
21a40 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 67 75 utArgument::IS_ARRAY.|.InputArgu
21a60 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 53 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 ment::OPTIONAL,.'Should.not.be.p
21a80 72 6f 76 69 64 65 64 2c 20 75 73 65 20 63 6f 6d 70 6f 73 65 72 20 72 65 71 75 69 72 65 20 69 6e rovided,.use.composer.require.in
21aa0 73 74 65 61 64 20 74 6f 20 61 64 64 20 61 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 74 6f 20 stead.to.add.a.given.package.to.
21ac0 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c composer.json.'),.)).->setHelp(<
21ae0 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 20 63 <<EOT.The.<info>install</info>.c
21b00 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 ommand.reads.the.composer.lock.f
21b20 69 6c 65 20 66 72 6f 6d 0a 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 ile.from.the.current.directory,.
21b40 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 61 6e 64 20 processes.it,.and.downloads.and.
21b60 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 installs.all.the.libraries.and.d
21b80 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c ependencies.outlined.in.that.fil
21ba0 65 2e 20 49 66 20 74 68 65 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 0a 65 78 69 73 74 20 69 74 e..If.the.file.does.not.exist.it
21bc0 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 .will.look.for.composer.json.and
21be0 20 64 6f 20 74 68 65 20 73 61 6d 65 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 .do.the.same...<info>php.compose
21c00 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d r.phar.install</info>..EOT.).;.}
21c20 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
21c40 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
21c60 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 ace.$output).{.$io.=.$this->getI
21c80 4f 28 29 3b 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 O();.if.($args.=.$input->getArgu
21ca0 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 ment('packages')).{.$io->writeEr
21cc0 72 6f 72 28 27 3c 65 72 72 6f 72 3e 49 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 27 2e 69 ror('<error>Invalid.argument.'.i
21ce0 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 61 72 67 73 29 2e 27 2e 20 55 73 65 20 22 63 6f 6d 70 6f mplode('.',.$args).'..Use."compo
21d00 73 65 72 20 72 65 71 75 69 72 65 20 27 2e 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 61 72 67 73 ser.require.'.implode('.',.$args
21d20 29 2e 27 22 20 69 6e 73 74 65 61 64 20 74 6f 20 61 64 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 ).'".instead.to.add.packages.to.
21d40 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a your.composer.json.</error>');..
21d60 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 return.1;.}..if.($input->getOpti
21d80 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 69 on('no-custom-installers')).{.$i
21da0 6f 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 o->writeError('<warning>You.are.
21dc0 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-
21de0 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
21e00 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
21e20 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)
21e40 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'
21e60 29 29 20 7b 0a 24 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 59 )).{.$io->writeError('<warning>Y
21e80 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
21ea0 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
21ec0 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>')
21ee0 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
21f00 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-
21f20 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
21f40 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(!
21f60 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')
21f80 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 45 );..$commandEvent.=.new.CommandE
21fa0 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 69 6e 73 vent(PluginEvents::COMMAND,.'ins
21fc0 74 61 6c 6c 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 tall',.$input,.$output);.$compos
21fe0 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
22000 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
22020 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
22040 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
22060 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.
22080 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
220a0 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
220c0 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.'
220e0 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
22100 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.=
22120 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
22140 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
22160 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-
22180 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
221a0 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('
221c0 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.=.$
221e0 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');
22200 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
22220 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
22240 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 3b fig->get('optimize-autoloader');
22260 0a 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 .$authoritative.=.$input->getOpt
22280 69 6f 6e 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 20 7c 7c ion('classmap-authoritative').||
222a0 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 69 74 .$config->get('classmap-authorit
222c0 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 28 24 ative');..$install.->setDryRun($
222e0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 input->getOption('dry-run')).->s
22300 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 etVerbose($input->getOption('ver
22320 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 66 65 bose')).->setPreferSource($prefe
22340 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 65 72 rSource).->setPreferDist($prefer
22360 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 74 4f Dist).->setDevMode(!$input->getO
22380 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 6c 6f ption('no-dev')).->setDumpAutolo
223a0 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 74 6f ader(!$input->getOption('no-auto
223c0 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 70 75 loader')).->setRunScripts(!$inpu
223e0 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 73 65 t->getOption('no-scripts')).->se
22400 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 0a 2d tOptimizeAutoloader($optimize).-
22420 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 24 61 75 74 68 6f >setClassMapAuthoritative($autho
22440 72 69 74 61 74 69 76 65 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 ritative).->setIgnorePlatformReq
22460 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 6f 6e 28 27 69 67 6e uirements($input->getOption('ign
22480 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 ore-platform-reqs')).;..if.($inp
224a0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 20 7b 0a 24 ut->getOption('no-plugins')).{.$
224c0 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 72 65 install->disablePlugins();.}..re
224e0 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a turn.$install->run();.}.}.<?php.
22500 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f ...........namespace.Composer\Co
22520 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 mmand;..use.Composer\Json\JsonFi
22540 6c 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 64 45 le;.use.Composer\Plugin\CommandE
22560 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 69 6e vent;.use.Composer\Plugin\Plugin
22580 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 5c 50 61 63 Events;.use.Composer\Package\Pac
225a0 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
225c0 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 sitory\RepositoryInterface;.use.
225e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 Symfony\Component\Console\Helper
22600 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 74 5c 43 6f \Table;.use.Symfony\Component\Co
22620 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
22640 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\
22660 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 InputOption;.use.Symfony\Compone
22680 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 nt\Console\Output\OutputInterfac
226a0 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 20 65 78 74 e;.....class.LicensesCommand.ext
226c0 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
226e0 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(
22700 27 6c 69 63 65 6e 73 65 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 'licenses').->setDescription('Sh
22720 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 6c 69 63 65 6e 73 65 73 20 6f 66 ow.information.about.licenses.of
22740 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 .dependencies').->setDefinition(
22760 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c array(.new.InputOption('format',
22780 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 45 .'f',.InputOption::VALUE_REQUIRE
227a0 44 2c 20 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 6f 75 74 70 75 74 3a 20 74 65 78 74 20 6f D,.'Format.of.the.output:.text.o
227c0 72 20 6a 73 6f 6e 27 2c 20 27 74 65 78 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f r.json',.'text'),.new.InputOptio
227e0 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 n('no-dev',.null,.InputOption::V
22800 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 73 65 61 72 63 68 20 69 6e 20 72 ALUE_NONE,.'Disables.search.in.r
22820 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 equire-dev.packages.'),.)).->set
22840 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 6c 69 63 65 6e 73 65 20 63 6f 6d 6d 61 6e 64 20 Help(<<<EOT.The.license.command.
22860 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 62 displays.detailed.information.ab
22880 6f 75 74 20 74 68 65 20 6c 69 63 65 6e 73 65 73 20 6f 66 0a 74 68 65 20 69 6e 73 74 61 6c 6c 65 out.the.licenses.of.the.installe
228a0 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 d.dependencies...EOT.).;.}..prot
228c0 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
228e0 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
22900 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
22920 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 omposer();..$commandEvent.=.new.
22940 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 CommandEvent(PluginEvents::COMMA
22960 4e 44 2c 20 27 6c 69 63 65 6e 73 65 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 ND,.'licenses',.$input,.$output)
22980 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(
229a0 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
229c0 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 6f 6f 74 20 3d 20 24 me(),.$commandEvent);..$root.=.$
229e0 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 20 3d 20 composer->getPackage();.$repo.=.
22a00 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(
22a20 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 69 66 20 28 24 69 )->getLocalRepository();..if.($i
22a40 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 20 7b 0a 24 70 61 nput->getOption('no-dev')).{.$pa
22a60 63 6b 61 67 65 73 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 ckages.=.$this->filterRequiredPa
22a80 63 6b 61 67 65 73 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 ckages($repo,.$root);.}.else.{.$
22aa0 70 61 63 6b 61 67 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 packages.=.$this->appendPackages
22ac0 28 24 72 65 70 6f 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 ($repo->getPackages(),.array());
22ae0 0a 7d 0a 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 .}..ksort($packages);.$io.=.$thi
22b00 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 66 6f 72 6d 61 74 20 3d 20 24 s->getIO();..switch.($format.=.$
22b20 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 7b 0a 63 61 input->getOption('format')).{.ca
22b40 73 65 20 27 74 65 78 74 27 3a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 4e 61 6d 65 3a 20 3c 63 6f se.'text':.$io->write('Name:.<co
22b60 6d 6d 65 6e 74 3e 27 2e 24 72 6f 6f 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 mment>'.$root->getPrettyName().'
22b80 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 56 65 72 73 69 6f </comment>');.$io->write('Versio
22ba0 6e 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 72 6f 6f 74 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 n:.<comment>'.$root->getFullPret
22bc0 74 79 56 65 72 73 69 6f 6e 28 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 69 6f 2d 3e tyVersion().'</comment>');.$io->
22be0 77 72 69 74 65 28 27 4c 69 63 65 6e 73 65 73 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 28 69 6d 70 write('Licenses:.<comment>'.(imp
22c00 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 20 lode(',.',.$root->getLicense()).
22c20 3f 3a 20 27 6e 6f 6e 65 27 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 69 6f 2d 3e 77 ?:.'none').'</comment>');.$io->w
22c40 72 69 74 65 28 27 44 65 70 65 6e 64 65 6e 63 69 65 73 3a 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 rite('Dependencies:');.$io->writ
22c60 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 74 70 e('');..$table.=.new.Table($outp
22c80 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 27 29 ut);.$table->setStyle('compact')
22ca0 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 63 61 ;.$table->getStyle()->setVertica
22cc0 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 79 6c lBorderChar('');.$table->getStyl
22ce0 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 25 73 e()->setCellRowContentFormat('%s
22d00 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 28 27 ..');.$table->setHeaders(array('
22d20 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 0a 66 Name',.'Version',.'License'));.f
22d40 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).{
22d60 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 65 2d .$table->addRow(array(.$package-
22d80 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 >getPrettyName(),.$package->getF
22da0 75 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 ullPrettyVersion(),.implode(',.'
22dc0 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 20 3f 3a 20 27 6e 6f ,.$package->getLicense()).?:.'no
22de0 6e 65 27 2c 0a 29 29 3b 0a 7d 0a 24 74 61 62 6c 65 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 62 72 65 ne',.));.}.$table->render();.bre
22e00 61 6b 3b 0a 0a 63 61 73 65 20 27 6a 73 6f 6e 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b ak;..case.'json':.foreach.($pack
22e20 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 ages.as.$package).{.$dependencie
22e40 73 5b 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 5d 20 3d 20 61 s[$package->getPrettyName()].=.a
22e60 72 72 61 79 28 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 rray(.'version'.=>.$package->get
22e80 46 75 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d FullPrettyVersion(),.'license'.=
22ea0 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 29 3b 0a 7d 0a 0a >.$package->getLicense(),.);.}..
22ec0 24 69 6f 2d 3e 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 $io->write(JsonFile::encode(arra
22ee0 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d y(.'name'.=>.$root->getPrettyNam
22f00 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 46 75 6c 6c e(),.'version'.=>.$root->getFull
22f20 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e 20 24 72 PrettyVersion(),.'license'.=>.$r
22f40 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 65 73 oot->getLicense(),.'dependencies
22f60 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 3b 0a '.=>.$dependencies,.)));.break;.
22f80 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 63 65 .default:.throw.new.\RuntimeExce
22fa0 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 6d 61 ption(sprintf('Unsupported.forma
22fc0 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 64 20 t."%s"...See.help.for.supported.
22fe0 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 0a 0a formats.',.$format));.}.}.......
23000 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 65 64 .private.function.filterRequired
23020 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 72 65 Packages(RepositoryInterface.$re
23040 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 20 24 po,.PackageInterface.$package,.$
23060 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 3d 20 bucket.=.array()).{.$requires.=.
23080 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 65 73 array_keys($package->getRequires
230a0 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 79 5f ());..$packageListNames.=.array_
230c0 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 61 79 keys($bucket);.$packages.=.array
230e0 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 0a 66 _filter(.$repo->getPackages(),.f
23100 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 72 65 unction.($package).use.($require
23120 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 20 69 s,.$packageListNames).{.return.i
23140 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 72 65 n_array($package->getName(),.$re
23160 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 3e 67 quires).&&.!in_array($package->g
23180 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 7d 0a etName(),.$packageListNames);.}.
231a0 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 6b 61 );..$bucket.=.$this->appendPacka
231c0 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 61 63 ges($packages,.$bucket);..foreac
231e0 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 75 63 h.($packages.as.$package).{.$buc
23200 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 6b 61 ket.=.$this->filterRequiredPacka
23220 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 0a 7d ges($repo,.$package,.$bucket);.}
23240 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 62 6c ..return.$bucket;.}.........publ
23260 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 61 79 ic.function.appendPackages(array
23280 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 6f 72 .$packages,.array.$bucket).{.for
232a0 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 each.($packages.as.$package).{.$
232c0 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 24 70 bucket[$package->getName()].=.$p
232e0 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 0a 3c ackage;.}..return.$bucket;.}.}.<
23300 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
23320 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 69 67 er\Command;..use.Composer\Config
23340 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \JsonConfigSource;.use.Composer\
23360 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 67 69 6e 5c 43 Installer;.use.Composer\Plugin\C
23380 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 6e ommandEvent;.use.Composer\Plugin
233a0 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 4a 73 6f 6e \PluginEvents;.use.Composer\Json
233c0 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b \JsonFile;.use.Composer\Factory;
233e0 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
23400 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nput\InputInterface;.use.Symfony
23420 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 \Component\Console\Input\InputOp
23440 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tion;.use.Symfony\Component\Cons
23460 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d ole\Input\InputArgument;.use.Sym
23480 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
234a0 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f 76 65 tputInterface;......class.Remove
234c0 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 Command.extends.Command.{.protec
234e0 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
23500 0a 2d 3e 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 .->setName('remove').->setDescri
23520 70 74 69 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 ption('Removes.a.package.from.th
23540 65 20 72 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 e.require.or.require-dev').->set
23560 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d Definition(array(.new.InputArgum
23580 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 49 ent('packages',.InputArgument::I
235a0 53 5f 41 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 S_ARRAY,.'Packages.that.should.b
235c0 65 20 72 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 e.removed.'),.new.InputOption('d
235e0 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ev',.null,.InputOption::VALUE_NO
23600 4e 45 2c 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 NE,.'Removes.a.package.from.the.
23620 72 65 71 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 require-dev.section.'),.new.Inpu
23640 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
23660 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
23680 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
236a0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e nputOption('no-update',.null,.In
236c0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 putOption::VALUE_NONE,.'Disables
236e0 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 64 65 70 .the.automatic.update.of.the.dep
23700 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 6e 28 27 75 endencies.'),.new.InputOption('u
23720 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 74 69 6f 6e pdate-no-dev',.null,.InputOption
23740 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 64 65 6e 63 ::VALUE_NONE,.'Run.the.dependenc
23760 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 70 74 69 6f y.update.with.the.--no-dev.optio
23780 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 65 2d 77 69 n.'),.new.InputOption('update-wi
237a0 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 74 4f 70 74 th-dependencies',.null,.InputOpt
237c0 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 65 72 69 74 ion::VALUE_NONE,.'Allows.inherit
237e0 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 64 20 77 69 ed.dependencies.to.be.updated.wi
23800 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 0a 6e 65 77 th.explicit.dependencies.'),.new
23820 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
23840 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
23860 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
23880 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 6e 65 77 20 s.(php.&.ext-.packages).'),.new.
238a0 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 64 65 72 InputOption('optimize-autoloader
238c0 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ',.'o',.InputOption::VALUE_NONE,
238e0 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 61 75 74 .'Optimize.autoloader.during.aut
23900 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 74 69 6f 6e 28 oloader.dump'),.new.InputOption(
23920 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 2c 20 27 61 27 2c 20 49 'classmap-authoritative',.'a',.I
23940 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 75 74 6f 6c 6f 61 nputOption::VALUE_NONE,.'Autoloa
23960 64 20 63 6c 61 73 73 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6c 61 73 73 6d 61 70 20 6f 6e 6c 79 d.classes.from.the.classmap.only
23980 2e 20 49 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 60 2d 2d 6f 70 74 69 6d 69 7a 65 ..Implicitly.enables.`--optimize
239a0 2d 61 75 74 6f 6c 6f 61 64 65 72 60 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c -autoloader`.'),.)).->setHelp(<<
239c0 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 72 65 6d 6f 76 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d <EOT.The.<info>remove</info>.com
239e0 6d 61 6e 64 20 72 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 mand.removes.a.package.from.the.
23a00 63 75 72 72 65 6e 74 0a 6c 69 73 74 20 6f 66 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 current.list.of.installed.packag
23a20 65 73 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 72 65 6d 6f es..<info>php.composer.phar.remo
23a40 76 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 ve</info>..EOT.).;.}..protected.
23a60 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.
23a80 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)
23aa0 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 .{.$packages.=.$input->getArgume
23ac0 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 3b 0a 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 nt('packages');..$file.=.Factory
23ae0 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 0a 24 6a 73 6f 6e 46 69 6c 65 20 ::getComposerFile();..$jsonFile.
23b00 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 =.new.JsonFile($file);.$composer
23b20 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 42 .=.$jsonFile->read();.$composerB
23b40 61 63 6b 75 70 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 46 ackup.=.file_get_contents($jsonF
23b60 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 ile->getPath());..$json.=.new.Js
23b80 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 6a 73 6f 6e 46 69 6c 65 29 3b 0a 0a 24 74 79 70 onConfigSource($jsonFile);..$typ
23ba0 65 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 29 20 3f 20 27 e.=.$input->getOption('dev').?.'
23bc0 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 61 6c 74 54 79 require-dev'.:.'require';.$altTy
23be0 70 65 20 3d 20 21 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 3f pe.=.!$input->getOption('dev').?
23c00 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 69 6f 20 .'require-dev'.:.'require';.$io.
23c20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 =.$this->getIO();..foreach.($pac
23c40 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 69 73 73 65 74 28 24 kages.as.$package).{.if.(isset($
23c60 63 6f 6d 70 6f 73 65 72 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 24 6a composer[$type][$package])).{.$j
23c80 73 6f 6e 2d 3e 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 29 son->removeLink($type,.$package)
23ca0 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 24 61 6c 74 ;.}.elseif.(isset($composer[$alt
23cc0 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 Type][$package])).{.$io->writeEr
23ce0 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 63 6f 75 6c 64 ror('<warning>'.$package.'.could
23d00 20 6e 6f 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 .not.be.found.in.'.$type.'.but.i
23d20 74 20 69 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 t.is.present.in.'.$altType.'</wa
23d40 72 6e 69 6e 67 3e 27 29 3b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 rning>');.if.($io->isInteractive
23d60 28 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 ()).{.if.($io->askConfirmation('
23d80 44 6f 20 79 6f 75 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 Do.you.want.to.remove.it.from.'.
23da0 24 61 6c 74 54 79 70 65 2e 27 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e $altType.'.[<comment>yes</commen
23dc0 74 3e 5d 3f 20 27 2c 20 74 72 75 65 29 29 20 7b 0a 24 6a 73 6f 6e 2d 3e 72 65 6d 6f 76 65 4c 69 t>]?.',.true)).{.$json->removeLi
23de0 6e 6b 28 24 61 6c 74 54 79 70 65 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c nk($altType,.$package);.}.}.}.el
23e00 73 65 20 7b 0a 24 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 27 se.{.$io->writeError('<warning>'
23e20 2e 24 70 61 63 6b 61 67 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 69 6e 20 79 .$package.'.is.not.required.in.y
23e40 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 68 61 73 20 6e 6f 74 20 62 65 our.composer.json.and.has.not.be
23e60 65 6e 20 72 65 6d 6f 76 65 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 en.removed</warning>');.}.}..if.
23e80 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 29 29 ($input->getOption('no-update'))
23ea0 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 .{.return.0;.}....$composer.=.$t
23ec0 68 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 his->getComposer();.$composer->g
23ee0 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 74 50 72 etDownloadManager()->setOutputPr
23f00 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 2d 70 72 ogress(!$input->getOption('no-pr
23f20 6f 67 72 65 73 73 27 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 ogress'));..$commandEvent.=.new.
23f40 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 CommandEvent(PluginEvents::COMMA
23f60 4e 44 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a ND,.'remove',.$input,.$output);.
23f80 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d $composer->getEventDispatcher()-
23fa0 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 >dispatch($commandEvent->getName
23fc0 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 (),.$commandEvent);..$install.=.
23fe0 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 Installer::create($io,.$composer
24000 29 3b 0a 0a 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 );..$updateDevMode.=.!$input->ge
24020 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 27 29 3b 0a 24 6f 70 74 69 6d tOption('update-no-dev');.$optim
24040 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
24060 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 e-autoloader').||.$composer->get
24080 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 Config()->get('optimize-autoload
240a0 65 72 27 29 3b 0a 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 er');.$authoritative.=.$input->g
240c0 65 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 etOption('classmap-authoritative
240e0 27 29 20 7c 7c 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 ').||.$composer->getConfig()->ge
24100 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 0a 0a 24 69 t('classmap-authoritative');..$i
24120 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 2d 3e 67 65 74 4f nstall.->setVerbose($input->getO
24140 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 4d 6f 64 65 28 24 ption('verbose')).->setDevMode($
24160 75 70 64 61 74 65 44 65 76 4d 6f 64 65 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f updateDevMode).->setOptimizeAuto
24180 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 29 0a 2d 3e 73 65 74 43 6c 61 73 73 4d 61 70 41 loader($optimize).->setClassMapA
241a0 75 74 68 6f 72 69 74 61 74 69 76 65 28 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a 2d 3e 73 uthoritative($authoritative).->s
241c0 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c etUpdate(true).->setUpdateWhitel
241e0 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 44 65 70 ist($packages).->setWhitelistDep
24200 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 6e 28 27 75 70 64 endencies($input->getOption('upd
24220 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 3e 73 65 74 49 67 ate-with-dependencies')).->setIg
24240 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 69 6e 70 75 74 2d norePlatformRequirements($input-
24260 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 6d 2d 72 65 71 73 >getOption('ignore-platform-reqs
24280 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 3e 72 75 6e 28 29 ')).;..$status.=.$install->run()
242a0 3b 0a 69 66 20 28 24 73 74 61 74 75 73 20 21 3d 3d 20 30 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 ;.if.($status.!==.0).{.$io->writ
242c0 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 61 69 6c eError("\n".'<error>Removal.fail
242e0 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 73 20 6f ed,.reverting.'.$file.'.to.its.o
24300 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 69 6c 65 riginal.content.</error>');.file
24320 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 61 74 68 _put_contents($jsonFile->getPath
24340 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 72 6e 20 (),.$composerBackup);.}..return.
24360 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 0a 6e 61 $status;.}.}.<?php............na
24380 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 53 mespace.Composer\Command;..use.S
243a0 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
243c0 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
243e0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 nent\Console\Input\InputArgument
24400 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\
24420 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
24440 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
24460 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 terface;.use.Composer\Factory;.u
24480 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f se.Composer\Installer;.use.Compo
244a0 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ser\Json\JsonFile;.use.Composer\
244c0 4a 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 Json\JsonManipulator;.use.Compos
244e0 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d er\Semver\VersionParser;.use.Com
24500 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 20 43 poser\Plugin\CommandEvent;.use.C
24520 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 75 73 65 omposer\Plugin\PluginEvents;.use
24540 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
24560 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 pository;.use.Composer\Repositor
24580 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 y\PlatformRepository;......class
245a0 20 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 49 6e 69 74 43 6f 6d 6d .RequireCommand.extends.InitComm
245c0 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 and.{.protected.function.configu
245e0 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 65 71 75 69 72 65 27 re().{.$this.->setName('require'
24600 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 73 20 72 65 71 75 69 72 65 ).->setDescription('Adds.require
24620 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e d.packages.to.your.composer.json
24640 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 .and.installs.them').->setDefini
24660 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 tion(array(.new.InputArgument('p
24680 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 ackages',.InputArgument::IS_ARRA
246a0 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 52 65 Y.|.InputArgument::OPTIONAL,.'Re
246c0 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 69 quired.package.name.optionally.i
246e0 6e 63 6c 75 64 69 6e 67 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 ncluding.a.version.constraint,.e
24700 2e 67 2e 20 66 6f 6f 2f 62 61 72 20 6f 72 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 .g..foo/bar.or.foo/bar:1.0.0.or.
24720 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 foo/bar=1.0.0.or."foo/bar.1.0.0"
24740 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,
24760 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 64 64 20 72 .InputOption::VALUE_NONE,.'Add.r
24780 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 65 76 2e 27 29 2c 0a 6e 65 equirement.to.require-dev.'),.ne
247a0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e w.InputOption('prefer-source',.n
247c0 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 ull,.InputOption::VALUE_NONE,.'F
247e0 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 orces.installation.from.package.
24800 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 sources.when.possible,.including
24820 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 .VCS.information.'),.new.InputOp
24840 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f tion('prefer-dist',.null,.InputO
24860 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 ption::VALUE_NONE,.'Forces.insta
24880 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 llation.from.package.dist.even.f
248a0 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 or.dev.versions.'),.new.InputOpt
248c0 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 70 ion('no-progress',.null,.InputOp
248e0 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 74 tion::VALUE_NONE,.'Do.not.output
24900 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 74 .download.progress.'),.new.Input
24920 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 4f Option('no-update',.null,.InputO
24940 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 65 ption::VALUE_NONE,.'Disables.the
24960 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 65 .automatic.update.of.the.depende
24980 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 74 ncies.'),.new.InputOption('updat
249a0 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 41 e-no-dev',.null,.InputOption::VA
249c0 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 70 LUE_NONE,.'Run.the.dependency.up
249e0 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 29 date.with.the.--no-dev.option.')
24a00 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 64 ,.new.InputOption('update-with-d
24a20 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 3a ependencies',.null,.InputOption:
24a40 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 64 :VALUE_NONE,.'Allows.inherited.d
24a60 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 65 ependencies.to.be.updated.with.e
24a80 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 70 xplicit.dependencies.'),.new.Inp
24aa0 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 2c utOption('ignore-platform-reqs',
24ac0 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,.
24ae0 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 70 'Ignore.platform.requirements.(p
24b00 68 70 20 26 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 hp.&.ext-.packages).'),.new.Inpu
24b20 74 4f 70 74 69 6f 6e 28 27 73 6f 72 74 2d 70 61 63 6b 61 67 65 73 27 2c 20 6e 75 6c 6c 2c 20 49 tOption('sort-packages',.null,.I
24b40 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 6f 72 74 73 20 70 nputOption::VALUE_NONE,.'Sorts.p
24b60 61 63 6b 61 67 65 73 20 77 68 65 6e 20 61 64 64 69 6e 67 2f 75 70 64 61 74 69 6e 67 20 61 20 6e ackages.when.adding/updating.a.n
24b80 65 77 20 64 65 70 65 6e 64 65 6e 63 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e ew.dependency'),.new.InputOption
24ba0 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 ('optimize-autoloader',.'o',.Inp
24bc0 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 utOption::VALUE_NONE,.'Optimize.
24be0 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d autoloader.during.autoloader.dum
24c00 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 73 6d 61 70 2d 61 p'),.new.InputOption('classmap-a
24c20 75 74 68 6f 72 69 74 61 74 69 76 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a uthoritative',.'a',.InputOption:
24c40 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 75 74 6f 6c 6f 61 64 20 63 6c 61 73 73 65 73 20 66 :VALUE_NONE,.'Autoload.classes.f
24c60 72 6f 6d 20 74 68 65 20 63 6c 61 73 73 6d 61 70 20 6f 6e 6c 79 2e 20 49 6d 70 6c 69 63 69 74 6c rom.the.classmap.only..Implicitl
24c80 79 20 65 6e 61 62 6c 65 73 20 60 2d 2d 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 y.enables.`--optimize-autoloader
24ca0 60 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 72 65 `.'),.)).->setHelp(<<<EOT.The.re
24cc0 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 20 61 64 64 73 20 72 65 71 75 69 72 65 64 20 70 61 63 6b quire.command.adds.required.pack
24ce0 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 20 61 6e 64 20 69 ages.to.your.composer.json.and.i
24d00 6e 73 74 61 6c 6c 73 20 74 68 65 6d 2e 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 73 70 65 nstalls.them...If.you.do.not.spe
24d20 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 63 6f 6d 70 6f cify.a.version.constraint,.compo
24d40 73 65 72 20 77 69 6c 6c 20 63 68 6f 6f 73 65 20 61 20 73 75 69 74 61 62 6c 65 20 6f 6e 65 20 62 ser.will.choose.a.suitable.one.b
24d60 61 73 65 64 20 6f 6e 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 20 76 65 ased.on.the.available.package.ve
24d80 72 73 69 6f 6e 73 2e 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 69 rsions...If.you.do.not.want.to.i
24da0 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6d 6d 65 nstall.the.new.dependencies.imme
24dc0 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 2d 2d 6e diately.you.can.call.it.with.--n
24de0 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 o-update..EOT.).;.}..protected.f
24e00 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.$
24e20 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).
24e40 7b 0a 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 65 72 46 69 {.$file.=.Factory::getComposerFi
24e60 6c 65 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 6e 65 le();.$io.=.$this->getIO();..$ne
24e80 77 6c 79 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 wlyCreated.=.!file_exists($file)
24ea0 3b 0a 69 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 ;.if.(!file_exists($file).&&.!fi
24ec0 6c 65 5f 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 le_put_contents($file,."{\n}\n")
24ee0 29 20 7b 0a 24 69 6f 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 ).{.$io->writeError('<error>'.$f
24f00 69 6c 65 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 3c 2f 65 72 72 ile.'.could.not.be.created.</err
24f20 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 or>');..return.1;.}.if.(!is_read
24f40 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 able($file)).{.$io->writeError('
24f60 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 <error>'.$file.'.is.not.readable
24f80 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 21 69 .</error>');..return.1;.}.if.(!i
24fa0 73 5f 77 72 69 74 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 s_writable($file)).{.$io->writeE
24fc0 72 72 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 rror('<error>'.$file.'.is.not.wr
24fe0 69 74 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 itable.</error>');..return.1;.}.
25000 0a 69 66 20 28 66 69 6c 65 73 69 7a 65 28 24 66 69 6c 65 29 20 3d 3d 3d 20 30 29 20 7b 0a 66 69 .if.(filesize($file).===.0).{.fi
25020 6c 65 5f 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 le_put_contents($file,."{\n}\n")
25040 3b 0a 7d 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 29 ;.}..$json.=.new.JsonFile($file)
25060 3b 0a 24 63 6f 6d 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 ;.$composerDefinition.=.$json->r
25080 65 61 64 28 29 3b 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 ead();.$composerBackup.=.file_ge
250a0 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 29 3b 0a 0a 24 t_contents($json->getPath());..$
250c0 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b composer.=.$this->getComposer();
250e0 0a 24 72 65 70 6f 73 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f .$repos.=.$composer->getReposito
25100 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a ryManager()->getRepositories();.
25120 0a 24 70 6c 61 74 66 6f 72 6d 4f 76 65 72 72 69 64 65 73 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d .$platformOverrides.=.$composer-
25140 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 70 6c 61 74 66 6f 72 6d 27 29 20 3f 3a >getConfig()->get('platform').?:
25160 20 61 72 72 61 79 28 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 .array();...$this->repos.=.new.C
25180 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 28 0a ompositeRepository(array_merge(.
251a0 61 72 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 array(new.PlatformRepository(arr
251c0 61 79 28 29 2c 20 24 70 6c 61 74 66 6f 72 6d 4f 76 65 72 72 69 64 65 73 29 29 2c 0a 24 72 65 70 ay(),.$platformOverrides)),.$rep
251e0 6f 73 0a 29 29 3b 0a 0a 24 70 68 70 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 os.));..$phpVersion.=.$this->rep
25200 6f 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 27 70 68 70 27 2c 20 27 2a 27 29 2d 3e 67 65 74 os->findPackage('php',.'*')->get
25220 56 65 72 73 69 6f 6e 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 Version();.$requirements.=.$this
25240 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 ->determineRequirements($input,.
25260 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 $output,.$input->getArgument('pa
25280 63 6b 61 67 65 73 27 29 2c 20 24 70 68 70 56 65 72 73 69 6f 6e 29 3b 0a 0a 24 72 65 71 75 69 72 ckages'),.$phpVersion);..$requir
252a0 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 29 20 eKey.=.$input->getOption('dev').
252c0 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 72 65 ?.'require-dev'.:.'require';.$re
252e0 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 65 76 moveKey.=.$input->getOption('dev
25300 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 3b 0a ').?.'require'.:.'require-dev';.
25320 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 65 78 $baseRequirements.=.array_key_ex
25340 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 69 6e ists($requireKey,.$composerDefin
25360 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 72 65 ition).?.$composerDefinition[$re
25380 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 65 6e quireKey].:.array();.$requiremen
253a0 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 28 24 ts.=.$this->formatRequirements($
253c0 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 65 72 requirements);....$versionParser
253e0 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 68 20 .=.new.VersionParser();.foreach.
25400 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 20 7b ($requirements.as.$constraint).{
25420 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 6e 74 .$versionParser->parseConstraint
25440 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 65 73 s($constraint);.}..$sortPackages
25460 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 6b 61 .=.$input->getOption('sort-packa
25480 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 43 6c ges');..if.(!$this->updateFileCl
254a0 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 eanly($json,.$baseRequirements,.
254c0 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 65 6d $requirements,.$requireKey,.$rem
254e0 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 61 63 oveKey,.$sortPackages)).{.foreac
25500 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 3e 20 h.($requirements.as.$package.=>.
25520 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 24 70 $version).{.$baseRequirements[$p
25540 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 28 24 ackage].=.$version;..if.(isset($
25560 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 5b 24 composerDefinition[$removeKey][$
25580 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 66 69 package])).{.unset($composerDefi
255a0 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 0a 7d nition[$removeKey][$package]);.}
255c0 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 72 65 .}..$composerDefinition[$require
255e0 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 6e 2d Key].=.$baseRequirements;.$json-
25600 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 0a 0a >write($composerDefinition);.}..
25620 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 27 2e 24 66 69 6c 65 2e 27 $io->writeError('<info>'.$file.'
25640 20 68 61 73 20 62 65 65 6e 20 27 2e 28 24 6e 65 77 6c 79 43 72 65 61 74 65 64 20 3f 20 27 63 72 .has.been.'.($newlyCreated.?.'cr
25660 65 61 74 65 64 27 20 3a 20 27 75 70 64 61 74 65 64 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a eated'.:.'updated').'</info>');.
25680 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 75 70 64 61 74 .if.($input->getOption('no-updat
256a0 65 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 24 75 70 64 61 74 65 44 65 76 4d 6f 64 e')).{.return.0;.}.$updateDevMod
256c0 65 20 3d 20 21 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 e.=.!$input->getOption('update-n
256e0 6f 2d 64 65 76 27 29 3b 0a 24 6f 70 74 69 6d 69 7a 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 o-dev');.$optimize.=.$input->get
25700 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c Option('optimize-autoloader').||
25720 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 6f 70 .$composer->getConfig()->get('op
25740 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 3b 0a 24 61 75 74 68 6f 72 69 74 61 74 timize-autoloader');.$authoritat
25760 69 76 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 73 6d 61 ive.=.$input->getOption('classma
25780 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e p-authoritative').||.$composer->
257a0 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f getConfig()->get('classmap-autho
257c0 72 69 74 61 74 69 76 65 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 72 65 73 65 74 43 6f 6d 70 6f ritative');....$this->resetCompo
257e0 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d ser();.$composer.=.$this->getCom
25800 70 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 poser();.$composer->getDownloadM
25820 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 24 69 6e anager()->setOutputProgress(!$in
25840 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 3b 0a put->getOption('no-progress'));.
25860 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
25880 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
258a0 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-
258c0 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(
258e0 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
25900 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:
25920 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
25940 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
25960 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(
25980 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
259a0 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
259c0 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
259e0 64 65 28 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 de($updateDevMode).->setOptimize
25a00 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 43 6c 61 73 73 Autoloader($optimize).->setClass
25a20 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 29 MapAuthoritative($authoritative)
25a40 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
25a60 69 74 65 6c 69 73 74 28 61 72 72 61 79 5f 6b 65 79 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 itelist(array_keys($requirements
25a80 29 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 69 )).->setWhitelistDependencies($i
25aa0 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 2d 64 65 70 nput->getOption('update-with-dep
25ac0 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 66 6f 72 6d endencies')).->setIgnorePlatform
25ae0 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 6f 6e 28 27 Requirements($input->getOption('
25b00 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 73 74 61 74 ignore-platform-reqs')).;..$stat
25b20 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 24 73 74 61 74 75 us.=.$install->run();.if.($statu
25b40 73 20 21 3d 3d 20 30 29 20 7b 0a 69 66 20 28 24 6e 65 77 6c 79 43 72 65 61 74 65 64 29 20 7b 0a s.!==.0).{.if.($newlyCreated).{.
25b60 24 69 6f 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 $io->writeError("\n".'<error>Ins
25b80 74 61 6c 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 tallation.failed,.deleting.'.$fi
25ba0 6c 65 2e 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 le.'.</error>');.unlink($json->g
25bc0 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 etPath());.}.else.{.$io->writeEr
25be0 72 6f 72 28 22 5c 6e 22 2e 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 61 ror("\n".'<error>Installation.fa
25c00 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 73 iled,.reverting.'.$file.'.to.its
25c20 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 69 .original.content.</error>');.fi
25c40 6c 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 le_put_contents($json->getPath()
25c60 2c 20 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ,.$composerBackup);.}.}..return.
25c80 24 73 74 61 74 75 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 $status;.}..private.function.upd
25ca0 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 61 72 72 61 79 20 24 62 61 73 ateFileCleanly($json,.array.$bas
25cc0 65 2c 20 61 72 72 61 79 20 24 6e 65 77 2c 20 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 72 65 6d e,.array.$new,.$requireKey,.$rem
25ce0 6f 76 65 4b 65 79 2c 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 0a 7b 0a 24 63 6f 6e 74 65 6e oveKey,.$sortPackages).{.$conten
25d00 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 ts.=.file_get_contents($json->ge
25d20 74 50 61 74 68 28 29 29 3b 0a 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 tPath());..$manipulator.=.new.Js
25d40 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 66 6f 72 65 61 onManipulator($contents);..forea
25d60 63 68 20 28 24 6e 65 77 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 ch.($new.as.$package.=>.$constra
25d80 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 61 64 64 4c 69 6e int).{.if.(!$manipulator->addLin
25da0 6b 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 k($requireKey,.$package,.$constr
25dc0 61 69 6e 74 2c 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 aint,.$sortPackages)).{.return.f
25de0 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 72 65 6d 6f 76 alse;.}.if.(!$manipulator->remov
25e00 65 53 75 62 4e 6f 64 65 28 24 72 65 6d 6f 76 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 29 29 20 eSubNode($removeKey,.$package)).
25e20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f {.return.false;.}.}..file_put_co
25e40 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 ntents($json->getPath(),.$manipu
25e60 6c 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 lator->getContents());..return.t
25e80 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 rue;.}..protected.function.inter
25ea0 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 act(InputInterface.$input,.Outpu
25ec0 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a tInterface.$output).{.return;.}.
25ee0 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
25f00 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 53 63 72 poser\Command;..use.Composer\Scr
25f20 69 70 74 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 ipt\CommandEvent;.use.Composer\S
25f40 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 79 5c cript\ScriptEvents;.use.Symfony\
25f60 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
25f80 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
25fa0 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
25fc0 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
25fe0 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
26000 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
26020 3b 0a 0a 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 ;.....class.RunScriptCommand.ext
26040 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 ends.Command.{....protected.$scr
26060 69 70 74 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 iptEvents.=.array(.ScriptEvents:
26080 3a 50 52 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 :PRE_INSTALL_CMD,.ScriptEvents::
260a0 50 4f 53 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 POST_INSTALL_CMD,.ScriptEvents::
260c0 50 52 45 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 PRE_UPDATE_CMD,.ScriptEvents::PO
260e0 53 54 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 52 45 ST_UPDATE_CMD,.ScriptEvents::PRE
26100 5f 53 54 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 _STATUS_CMD,.ScriptEvents::POST_
26120 53 54 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 52 STATUS_CMD,.ScriptEvents::POST_R
26140 4f 4f 54 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 OOT_PACKAGE_INSTALL,.ScriptEvent
26160 73 3a 3a 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 s::POST_CREATE_PROJECT_CMD,.Scri
26180 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 2c 0a 53 63 72 69 70 ptEvents::PRE_ARCHIVE_CMD,.Scrip
261a0 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 2c 0a 53 63 72 69 70 tEvents::POST_ARCHIVE_CMD,.Scrip
261c0 74 45 76 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 tEvents::PRE_AUTOLOAD_DUMP,.Scri
261e0 70 74 45 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 ptEvents::POST_AUTOLOAD_DUMP,.);
26200 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 ..protected.function.configure()
26220 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 75 6e 2d 73 63 72 69 70 74 27 29 .{.$this.->setName('run-script')
26240 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e 20 74 68 65 20 73 63 72 69 70 .->setDescription('Run.the.scrip
26260 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d ts.defined.in.composer.json.').-
26280 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 >setDefinition(array(.new.InputA
262a0 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a rgument('script',.InputArgument:
262c0 3a 4f 50 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 :OPTIONAL,.'Script.name.to.run.'
262e0 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 6e 70 ),.new.InputArgument('args',.Inp
26300 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 67 75 utArgument::IS_ARRAY.|.InputArgu
26320 6d 65 6e 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 ment::OPTIONAL,.''),.new.InputOp
26340 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 tion('dev',.null,.InputOption::V
26360 41 4c 55 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 ALUE_NONE,.'Sets.the.dev.mode.')
26380 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
263a0 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
263c0 62 6c 65 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 bles.the.dev.mode.'),.new.InputO
263e0 70 74 69 6f 6e 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ption('list',.'l',.InputOption::
26400 56 41 4c 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 VALUE_NONE,.'List.scripts.'),.))
26420 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 72 75 6e 2d .->setHelp(<<<EOT.The.<info>run-
26440 73 63 72 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 script</info>.command.runs.scrip
26460 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 0a 0a 3c 69 ts.defined.in.composer.json:..<i
26480 6e 66 6f 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 nfo>php.composer.phar.run-script
264a0 20 70 6f 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 .post-update-cmd</info>.EOT.).;.
264c0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e }..protected.function.execute(In
264e0 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
26500 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 2d 3e 67 65 74 4f face.$output).{.if.($input->getO
26520 70 74 69 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 ption('list')).{.return.$this->l
26540 69 73 74 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 istScripts();.}.elseif.(!$input-
26560 3e 67 65 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 >getArgument('script')).{.throw.
26580 6e 65 77 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 new.\RunTimeException('Missing.r
265a0 65 71 75 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 equired.argument."script"');.}..
265c0 24 73 63 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 $script.=.$input->getArgument('s
265e0 63 72 69 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 cript');.if.(!in_array($script,.
26600 24 74 68 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 $this->scriptEvents)).{.if.(defi
26620 6e 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 ned('Composer\Script\ScriptEvent
26640 73 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 s::'.str_replace('-',.'_',.strto
26660 75 70 70 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 upper($script)))).{.throw.new.\I
26680 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(
266a0 27 53 63 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 'Script."%s".cannot.be.run.with.
266c0 74 68 69 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 this.command',.$script));.}.}..$
266e0 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b composer.=.$this->getComposer();
26700 0a 24 68 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 .$hasListeners.=.$composer->getE
26720 76 65 6e 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 ventDispatcher()->hasEventListen
26740 65 72 73 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 ers(new.CommandEvent($script,.$c
26760 6f 6d 70 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 omposer,.$this->getIO()));.if.(!
26780 24 68 61 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 $hasListeners).{.throw.new.\Inva
267a0 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
267c0 72 69 70 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 ript."%s".is.not.defined.in.this
267e0 20 70 61 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 .package',.$script));.}....$binD
26800 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 65 74 ir.=.$composer->getConfig()->get
26820 28 27 62 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 ('bin-dir');.if.(is_dir($binDir)
26840 29 20 7b 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 ).{.$_SERVER['PATH'].=.realpath(
26860 24 62 69 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 $binDir).PATH_SEPARATOR.getenv('
26880 50 41 54 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 PATH');.putenv('PATH='.$_SERVER[
268a0 27 50 41 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 'PATH']);.}..$args.=.$input->get
268c0 41 72 67 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 Argument('args');..return.$compo
268e0 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
26900 74 63 68 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 tchScript($script,.$input->getOp
26920 74 69 6f 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 tion('dev').||.!$input->getOptio
26940 6e 28 27 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 n('no-dev'),.$args);.}..protecte
26960 64 20 66 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 d.function.listScripts().{.$scri
26980 70 74 73 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 pts.=.$this->getComposer()->getP
269a0 61 63 6b 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 ackage()->getScripts();..if.(!co
269c0 75 6e 74 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 69 unt($scripts)).{.return.0;.}..$i
269e0 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 o.=.$this->getIO();.$io->writeEr
26a00 72 6f 72 28 27 3c 69 6e 66 6f 3e 73 63 72 69 70 74 73 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 66 6f ror('<info>scripts:</info>');.fo
26a20 72 65 61 63 68 20 28 24 73 63 72 69 70 74 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 63 72 reach.($scripts.as.$name.=>.$scr
26a40 69 70 74 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 27 20 2e 20 24 6e 61 6d 65 29 3b ipt).{.$io->write('..'...$name);
26a60 0a 7d 0a 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 .}..return.0;.}.}.<?php.........
26a80 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;..
26aa0 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
26ac0 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
26ae0 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
26b00 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
26b20 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
26b40 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
26b60 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 41 6c putInterface;.....class.ScriptAl
26b80 69 61 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 iasCommand.extends.Command.{.pri
26ba0 76 61 74 65 20 24 73 63 72 69 70 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f vate.$script;..public.function._
26bc0 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 _construct($script).{.$this->scr
26be0 69 70 74 20 3d 20 24 73 63 72 69 70 74 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ipt.=.$script;..parent::__constr
26c00 75 63 74 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 63 6f 6e uct();.}..protected.function.con
26c20 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 24 74 68 69 73 figure().{.$this.->setName($this
26c40 2d 3e 73 63 72 69 70 74 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e 20 ->script).->setDescription('Run.
26c60 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 73 63 72 69 70 74 2e 27 20 73 63 72 69 70 74 20 61 73 20 the.'.$this->script.'.script.as.
26c80 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
26ca0 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
26cc0 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c on('dev',.null,.InputOption::VAL
26ce0 55 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 UE_NONE,.'Sets.the.dev.mode.'),.
26d00 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 2c 20 new.InputOption('no-dev',.null,.
26d20 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 62 6c InputOption::VALUE_NONE,.'Disabl
26d40 65 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 41 72 67 es.the.dev.mode.'),.new.InputArg
26d60 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f ument('args',.InputArgument::IS_
26d80 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 4e 41 4c 2c ARRAY.|.InputArgument::OPTIONAL,
26da0 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 .''),.)).->setHelp(<<<EOT.The.<i
26dc0 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 75 nfo>run-script</info>.command.ru
26de0 6e 73 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a ns.scripts.defined.in.composer.j
26e00 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 72 75 son:..<info>php.composer.phar.ru
26e20 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 3c 2f 69 6e 66 6f 3e 0a n-script.post-update-cmd</info>.
26e40 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 EOT.).;.}..protected.function.ex
26e60 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 ecute(InputInterface.$input,.Out
26e80 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 putInterface.$output).{.$compose
26ea0 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 0a 0a 20 24 62 69 r.=.$this->getComposer();....$bi
26ec0 6e 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 nDir.=.$composer->getConfig()->g
26ee0 65 74 28 27 62 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 et('bin-dir');.if.(is_dir($binDi
26f00 72 29 29 20 7b 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 r)).{.$_SERVER['PATH'].=.realpat
26f20 68 28 24 62 69 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 h($binDir).PATH_SEPARATOR.getenv
26f40 28 27 50 41 54 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 ('PATH');.putenv('PATH='.$_SERVE
26f60 52 5b 27 50 41 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 R['PATH']);.}..$args.=.$input->g
26f80 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 etArguments();..return.$composer
26fa0 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
26fc0 53 63 72 69 70 74 28 24 74 68 69 73 2d 3e 73 63 72 69 70 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 Script($this->script,.$input->ge
26fe0 74 4f 70 74 69 6f 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 tOption('dev').||.!$input->getOp
27000 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 2c 20 24 61 72 67 73 5b 27 61 72 67 73 27 5d 29 3b 0a tion('no-dev'),.$args['args']);.
27020 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
27040 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f omposer\Command;..use.Symfony\Co
27060 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
27080 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
270a0 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d ole\Input\InputArgument;.use.Sym
270c0 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
270e0 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c utOption;.use.Symfony\Component\
27100 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;.
27120 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 use.Composer\Repository\Composit
27140 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 69 eRepository;.use.Composer\Reposi
27160 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 43 6f 6d tory\PlatformRepository;.use.Com
27180 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 poser\Repository\RepositoryInter
271a0 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 65 20 face;.use.Composer\Factory;.use.
271c0 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 74 3b 0a 75 73 Composer\Plugin\CommandEvent;.us
271e0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a e.Composer\Plugin\PluginEvents;.
27200 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ....class.SearchCommand.extends.
27220 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 65 73 3b 0a 70 72 Command.{.protected.$matches;.pr
27240 6f 74 65 63 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 otected.$lowMatches.=.array();.p
27260 72 6f 74 65 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 rotected.$tokens;.protected.$out
27280 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e 6c 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 put;.protected.$onlyName;..prote
272a0 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
272c0 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 61 72 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 s.->setName('search').->setDescr
272e0 69 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e iption('Search.for.packages').->
27300 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 4f 70 setDefinition(array(.new.InputOp
27320 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 27 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 tion('only-name',.'N',.InputOpti
27340 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 61 72 63 68 20 6f 6e 6c 79 20 69 6e 20 on::VALUE_NONE,.'Search.only.in.
27360 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e name'),.new.InputArgument('token
27380 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e s',.InputArgument::IS_ARRAY.|.In
273a0 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 putArgument::REQUIRED,.'tokens.t
273c0 6f 20 73 65 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c o.search.for'),.)).->setHelp(<<<
273e0 45 4f 54 0a 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 65 73 20 EOT.The.search.command.searches.
27400 66 6f 72 20 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 20 6e 61 6d 65 0a 3c 69 6e 66 6f 3e 70 for.packages.by.its.name.<info>p
27420 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 hp.composer.phar.search.symfony.
27440 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 composer</info>..EOT.).;.}..prot
27460 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
27480 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
274a0 75 74 70 75 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 utput).{...$platformRepo.=.new.P
274c0 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e latformRepository;.$io.=.$this->
274e0 67 65 74 49 4f 28 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e getIO();.if.($composer.=.$this->
27500 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f getComposer(false)).{.$localRepo
27520 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 67 .=.$composer->getRepositoryManag
27540 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 69 6e 73 er()->getLocalRepository();.$ins
27560 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 talledRepo.=.new.CompositeReposi
27580 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d tory(array($localRepo,.$platform
275a0 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 Repo));.$repos.=.new.CompositeRe
275c0 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 pository(array_merge(array($inst
275e0 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 alledRepo),.$composer->getReposi
27600 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 toryManager()->getRepositories()
27620 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 ));.}.else.{.$defaultRepos.=.Fac
27640 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(
27660 24 69 6f 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 $io);.$io->writeError('No.compos
27680 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 er.json.found.in.the.current.dir
276a0 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 ectory,.showing.packages.from.'.
276c0 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 ..implode(',.',.array_keys($defa
276e0 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 ultRepos)));.$installedRepo.=.$p
27700 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 latformRepo;.$repos.=.new.Compos
27720 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 iteRepository(array_merge(array(
27740 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 $installedRepo),.$defaultRepos))
27760 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 ;.}..if.($composer).{.$commandEv
27780 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
277a0 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 65 61 72 63 68 27 2c 20 24 69 6e 70 75 74 2c 20 nts::COMMAND,.'search',.$input,.
277c0 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
277e0 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
27800 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 7d 0a t->getName(),.$commandEvent);.}.
27820 0a 24 6f 6e 6c 79 4e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 .$onlyName.=.$input->getOption('
27840 6f 6e 6c 79 2d 6e 61 6d 65 27 29 3b 0a 0a 24 66 6c 61 67 73 20 3d 20 24 6f 6e 6c 79 4e 61 6d 65 only-name');..$flags.=.$onlyName
27860 20 3f 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 4e .?.RepositoryInterface::SEARCH_N
27880 41 4d 45 20 3a 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 AME.:.RepositoryInterface::SEARC
278a0 48 5f 46 55 4c 4c 54 45 58 54 3b 0a 24 72 65 73 75 6c 74 73 20 3d 20 24 72 65 70 6f 73 2d 3e 73 H_FULLTEXT;.$results.=.$repos->s
278c0 65 61 72 63 68 28 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 earch(implode('.',.$input->getAr
278e0 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 29 29 2c 20 24 66 6c 61 67 73 29 3b 0a 0a 66 6f 72 gument('tokens')),.$flags);..for
27900 65 61 63 68 20 28 24 72 65 73 75 6c 74 73 20 61 73 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 69 6f each.($results.as.$result).{.$io
27920 2d 3e 77 72 69 74 65 28 24 72 65 73 75 6c 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 28 69 73 73 65 74 ->write($result['name']...(isset
27940 28 24 72 65 73 75 6c 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 3f 20 27 20 27 2e 20 ($result['description']).?.'.'..
27960 24 72 65 73 75 6c 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 20 3a 20 27 27 29 29 3b 0a 7d $result['description'].:.''));.}
27980 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.
279a0 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c Composer\Command;..use.Composer\
279c0 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a Composer;.use.Composer\Factory;.
279e0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 use.Composer\Util\Filesystem;.us
27a00 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d e.Composer\Util\RemoteFilesystem
27a20 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 46 69 6c 65 73 79 ;.use.Composer\Downloader\Filesy
27a40 73 74 65 6d 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 stemException;.use.Symfony\Compo
27a60 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 63 nent\Console\Input\InputInterfac
27a80 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 e;.use.Symfony\Component\Console
27aa0 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Input\InputOption;.use.Symfony\
27ac0 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
27ae0 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
27b00 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 sole\Output\OutputInterface;.use
27b20 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 .Symfony\Component\Finder\Finder
27b40 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 ;.......class.SelfUpdateCommand.
27b60 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 63 6f 6e 73 74 20 48 4f 4d 45 50 41 47 45 extends.Command.{.const.HOMEPAGE
27b80 20 3d 20 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 3b 0a 63 6f 6e 73 74 20 4f 4c 44 5f .=.'getcomposer.org';.const.OLD_
27ba0 49 4e 53 54 41 4c 4c 5f 45 58 54 20 3d 20 27 2d 6f 6c 64 2e 70 68 61 72 27 3b 0a 0a 70 72 6f 74 INSTALL_EXT.=.'-old.phar';..prot
27bc0 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
27be0 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 is.->setName('self-update').->se
27c00 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 73 65 6c 66 75 70 64 61 74 65 27 29 29 0a 2d 3e tAliases(array('selfupdate')).->
27c20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 63 6f 6d 70 6f 73 65 72 setDescription('Updates.composer
27c40 2e 70 68 61 72 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 27 29 0a 2d .phar.to.the.latest.version.').-
27c60 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f >setDefinition(array(.new.InputO
27c80 70 74 69 6f 6e 28 27 72 6f 6c 6c 62 61 63 6b 27 2c 20 27 72 27 2c 20 49 6e 70 75 74 4f 70 74 69 ption('rollback',.'r',.InputOpti
27ca0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 65 76 65 72 74 20 74 6f 20 61 6e 20 6f 6c on::VALUE_NONE,.'Revert.to.an.ol
27cc0 64 65 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 65 72 27 29 2c 0a der.installation.of.composer'),.
27ce0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 63 6c 65 61 6e 2d 62 61 63 6b 75 70 73 27 2c new.InputOption('clean-backups',
27d00 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,.
27d20 27 44 65 6c 65 74 65 20 6f 6c 64 20 62 61 63 6b 75 70 73 20 64 75 72 69 6e 67 20 61 6e 20 75 70 'Delete.old.backups.during.an.up
27d40 64 61 74 65 2e 20 54 68 69 73 20 6d 61 6b 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 65 72 date..This.makes.the.current.ver
27d60 73 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 74 68 65 20 6f 6e 6c 79 20 62 61 63 6b 75 70 sion.of.composer.the.only.backup
27d80 20 61 76 61 69 6c 61 62 6c 65 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 27 29 2c 0a 6e .available.after.the.update'),.n
27da0 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 ew.InputArgument('version',.Inpu
27dc0 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 76 65 72 73 69 6f tArgument::OPTIONAL,.'The.versio
27de0 6e 20 74 6f 20 75 70 64 61 74 65 20 74 6f 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f n.to.update.to'),.new.InputOptio
27e00 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 70 74 69 n('no-progress',.null,.InputOpti
27e20 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 74 20 64 on::VALUE_NONE,.'Do.not.output.d
27e40 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c ownload.progress.'),.)).->setHel
27e60 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f p(<<<EOT.The.<info>self-update</
27e80 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 67 65 74 63 6f 6d 70 6f 73 65 72 info>.command.checks.getcomposer
27ea0 2e 6f 72 67 20 66 6f 72 20 6e 65 77 65 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 63 6f 6d 70 6f .org.for.newer.versions.of.compo
27ec0 73 65 72 20 61 6e 64 20 69 66 20 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 6c ser.and.if.found,.installs.the.l
27ee0 61 74 65 73 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 atest...<info>php.composer.phar.
27f00 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 self-update</info>..EOT.).;.}..p
27f20 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
27f40 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
27f60 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 62 61 73 65 55 72 6c 20 3d 20 28 65 78 74 65 6e 73 69 6f .$output).{.$baseUrl.=.(extensio
27f80 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 n_loaded('openssl').?.'https'.:.
27fa0 27 68 74 74 70 27 29 20 2e 20 27 3a 2f 2f 27 20 2e 20 73 65 6c 66 3a 3a 48 4f 4d 45 50 41 47 45 'http')...'://'...self::HOMEPAGE
27fc0 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 ;.$config.=.Factory::createConfi
27fe0 67 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 72 65 6d 6f g();.$io.=.$this->getIO();.$remo
28000 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 teFilesystem.=.new.RemoteFilesys
28020 74 65 6d 28 24 69 6f 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 tem($io,.$config);.$cacheDir.=.$
28040 63 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 config->get('cache-dir');.$rollb
28060 61 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 ackDir.=.$config->get('home');.$
28080 6c 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 localFilename.=.realpath($_SERVE
280a0 52 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 R['argv'][0]).?:.$_SERVER['argv'
280c0 5d 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 ][0];....$tmpDir.=.is_writable(d
280e0 69 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 irname($localFilename)).?.dirnam
28100 65 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 e($localFilename).:.$cacheDir;..
28120 0a 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 ..if.(!is_writable($tmpDir)).{.t
28140 68 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 hrow.new.FilesystemException('Co
28160 6d 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 mposer.update.failed:.the."'.$tm
28180 70 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 pDir.'".directory.used.to.downlo
281a0 61 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 ad.the.temp.file.could.not.be.wr
281c0 69 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 itten');.}.if.(!is_writable($loc
281e0 61 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 alFilename)).{.throw.new.Filesys
28200 74 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 temException('Composer.update.fa
28220 69 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 iled:.the."'.$localFilename.'".f
28240 69 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 ile.could.not.be.written');.}..i
28260 66 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 f.($input->getOption('rollback')
28280 29 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 ).{.return.$this->rollback($outp
282a0 75 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 ut,.$rollbackDir,.$localFilename
282c0 29 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 );.}..$latestVersion.=.trim($rem
282e0 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 73 65 6c 66 3a oteFilesystem->getContents(self:
28300 3a 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 :HOMEPAGE,.$baseUrl..'/version',
28320 20 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 .false));.$updateVersion.=.$inpu
28340 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 20 3f 3a 20 24 6c 61 t->getArgument('version').?:.$la
28360 74 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 testVersion;..if.(preg_match('{^
28380 5b 30 2d 39 61 2d 66 5d 7b 34 30 7d 24 7d 27 2c 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 [0-9a-f]{40}$}',.$updateVersion)
283a0 20 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 .&&.$updateVersion.!==.$latestVe
283c0 72 73 69 6f 6e 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 rsion).{.$io->writeError('<error
283e0 3e 59 6f 75 20 63 61 6e 20 6e 6f 74 20 75 70 64 61 74 65 20 74 6f 20 61 20 73 70 65 63 69 66 69 >You.can.not.update.to.a.specifi
28400 63 20 53 48 41 2d 31 20 61 73 20 74 68 6f 73 65 20 70 68 61 72 73 20 61 72 65 20 6e 6f 74 20 61 c.SHA-1.as.those.phars.are.not.a
28420 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 64 6f 77 6e 6c 6f 61 64 3c 2f 65 72 72 6f 72 3e 27 29 3b vailable.for.download</error>');
28440 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 ..return.1;.}..if.(Composer::VER
28460 53 49 4f 4e 20 3d 3d 3d 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 20 7b 0a 24 69 6f 2d 3e SION.===.$updateVersion).{.$io->
28480 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 writeError('<info>You.are.alread
284a0 79 20 75 73 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 20 27 2e 24 75 70 64 61 y.using.composer.version.'.$upda
284c0 74 65 56 65 72 73 69 6f 6e 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 30 teVersion.'.</info>');..return.0
284e0 3b 0a 7d 0a 0a 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 20 3d 20 24 74 6d 70 44 69 72 20 2e 20 27 ;.}..$tempFilename.=.$tmpDir...'
28500 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 27 2e /'...basename($localFilename,.'.
28520 70 68 61 72 27 29 2e 27 2d 74 65 6d 70 2e 70 68 61 72 27 3b 0a 24 62 61 63 6b 75 70 46 69 6c 65 phar').'-temp.phar';.$backupFile
28540 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 25 73 2f 25 73 2d 25 73 25 73 27 2c 0a 24 72 6f 6c 6c 62 .=.sprintf(.'%s/%s-%s%s',.$rollb
28560 61 63 6b 44 69 72 2c 0a 73 74 72 74 72 28 43 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f ackDir,.strtr(Composer::RELEASE_
28580 44 41 54 45 2c 20 27 20 3a 27 2c 20 27 5f 2d 27 29 2c 0a 70 72 65 67 5f 72 65 70 6c 61 63 65 28 DATE,.'.:',.'_-'),.preg_replace(
285a0 27 7b 5e 28 5b 30 2d 39 61 2d 66 5d 7b 37 7d 29 5b 30 2d 39 61 2d 66 5d 7b 33 33 7d 24 7d 27 2c '{^([0-9a-f]{7})[0-9a-f]{33}$}',
285c0 20 27 24 31 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 2c 0a 73 65 6c 66 3a .'$1',.Composer::VERSION),.self:
285e0 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 0a 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 :OLD_INSTALL_EXT.);..$io->writeE
28600 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
28620 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
28640 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
28660 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}$
28680 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
286a0 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
286c0 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
286e0 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
28700 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,.!$
28720 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'))
28740 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
28760 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 )).{.$io->writeError('<error>The
28780 20 64 6f 77 6e 6c 6f 61 64 20 6f 66 20 74 68 65 20 6e 65 77 20 63 6f 6d 70 6f 73 65 72 20 76 65 .download.of.the.new.composer.ve
287a0 72 73 69 6f 6e 20 66 61 69 6c 65 64 20 66 6f 72 20 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 72 rsion.failed.for.an.unexpected.r
287c0 65 61 73 6f 6e 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 0a eason</error>');..return.1;.}...
287e0 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 6c 65 61 6e 2d 62 61 .if.($input->getOption('clean-ba
28800 63 6b 75 70 73 27 29 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f ckups')).{.$finder.=.$this->getO
28820 6c 64 49 6e 73 74 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 ldInstallationFinder($rollbackDi
28840 72 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 66 6f 72 65 61 r);..$fs.=.new.Filesystem;.forea
28860 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 20 3d 20 ch.($finder.as.$file).{.$file.=.
28880 28 73 74 72 69 6e 67 29 20 24 66 69 6c 65 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 (string).$file;.$io->writeError(
288a0 27 3c 69 6e 66 6f 3e 52 65 6d 6f 76 69 6e 67 3a 20 27 2e 24 66 69 6c 65 2e 27 3c 2f 69 6e 66 6f '<info>Removing:.'.$file.'</info
288c0 3e 27 29 3b 0a 24 66 73 2d 3e 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 >');.$fs->remove($file);.}.}..if
288e0 20 28 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 .($err.=.$this->setLocalPhar($lo
28900 63 61 6c 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 24 62 61 63 calFilename,.$tempFilename,.$bac
28920 6b 75 70 46 69 6c 65 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 kupFile)).{.$io->writeError('<er
28940 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 72 ror>The.file.is.corrupted.('.$er
28960 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 24 r->getMessage().').</error>');.$
28980 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 io->writeError('<error>Please.re
289a0 2d 72 75 6e 20 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 -run.the.self-update.command.to.
289c0 74 72 79 20 61 67 61 69 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b try.again.</error>');..return.1;
289e0 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 61 63 6b 75 70 46 69 6c 65 29 .}..if.(file_exists($backupFile)
28a00 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 55 73 65 20 3c 69 6e 66 6f 3e 63 ).{.$io->writeError('Use.<info>c
28a20 6f 6d 70 6f 73 65 72 20 73 65 6c 66 2d 75 70 64 61 74 65 20 2d 2d 72 6f 6c 6c 62 61 63 6b 3c 2f omposer.self-update.--rollback</
28a40 69 6e 66 6f 3e 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 76 65 72 73 69 6f 6e 20 27 2e 43 6f 6d info>.to.return.to.version.'.Com
28a60 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 poser::VERSION);.}.else.{.$io->w
28a80 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 66 20 riteError('<warning>A.backup.of.
28aa0 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 62 65 the.current.version.could.not.be
28ac0 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 6f 20 .written.to.'.$backupFile.',.no.
28ae0 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 0a 7d rollback.possible</warning>');.}
28b00 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 6b 28 .}..protected.function.rollback(
28b20 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 62 61 OutputInterface.$output,.$rollba
28b40 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 62 61 ckDir,.$localFilename).{.$rollba
28b60 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 75 70 ckVersion.=.$this->getLastBackup
28b80 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 6f 6c Version($rollbackDir);.if.(!$rol
28ba0 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 78 70 lbackVersion).{.throw.new.\Unexp
28bc0 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 72 6f ectedValueException('Composer.ro
28be0 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 20 74 llback.failed:.no.installation.t
28c00 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 44 69 o.roll.back.to.in."'.$rollbackDi
28c20 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 6f 6c r.'"');.}..if.(!is_writable($rol
28c40 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 74 65 lbackDir)).{.throw.new.Filesyste
28c60 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 66 61 mException('Composer.rollback.fa
28c80 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 69 72 iled:.the."'.$rollbackDir.'".dir
28ca0 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 0a 24 .could.not.be.written.to');.}..$
28cc0 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 6c 6c old.=.$rollbackDir...'/'...$roll
28ce0 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 4c 5f backVersion...self::OLD_INSTALL_
28d00 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 72 6f EXT;..if.(!is_file($old)).{.thro
28d20 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f w.new.FilesystemException('Compo
28d40 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 22 20 ser.rollback.failed:."'.$old.'".
28d60 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 73 5f could.not.be.found');.}.if.(!is_
28d80 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 6c 65 readable($old)).{.throw.new.File
28da0 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 62 61 systemException('Composer.rollba
28dc0 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 74 20 ck.failed:."'.$old.'".could.not.
28de0 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 62 61 be.read');.}..$oldFile.=.$rollba
28e00 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 2e 20 ckDir..."/{$rollbackVersion}"...
28e20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 3b 0a 24 69 6f 20 3d 20 24 74 68 self::OLD_INSTALL_EXT;.$io.=.$th
28e40 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 is->getIO();.$io->writeError(spr
28e60 69 6e 74 66 28 22 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 intf("Rolling.back.to.version.<i
28e80 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 2e 22 2c 20 24 72 6f 6c 6c 62 61 63 6b 56 65 72 73 69 6f nfo>%s</info>.",.$rollbackVersio
28ea0 6e 29 29 3b 0a 69 66 20 28 24 65 72 72 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 4c 6f 63 61 6c 50 n));.if.($err.=.$this->setLocalP
28ec0 68 61 72 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 6f 6c 64 46 69 6c 65 29 29 20 7b har($localFilename,.$oldFile)).{
28ee0 0a 24 69 6f 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 61 63 .$io->writeError('<error>The.bac
28f00 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 2d 3e kup.file.was.corrupted.('.$err->
28f20 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 65 6d getMessage().').and.has.been.rem
28f40 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 0a 72 oved.</error>');..return.1;.}..r
28f60 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 20 73 eturn.0;.}..protected.function.s
28f80 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 65 77 etLocalPhar($localFilename,.$new
28fa0 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 29 0a Filename,.$backupTarget.=.null).
28fc0 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 69 6c {.try.{.@chmod($newFilename,.fil
28fe0 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 69 6e eperms($localFilename));.if.(!in
29000 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 68 61 i_get('phar.readonly')).{...$pha
29020 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 6e 65 77 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 20 75 r.=.new.\Phar($newFilename);...u
29040 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 61 72 nset($phar);.}....if.($backupTar
29060 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 61 6d get.&&.file_exists($localFilenam
29080 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 61 63 e)).{.@copy($localFilename,.$bac
290a0 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 6e 61 kupTarget);.}..rename($newFilena
290c0 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 5c 45 me,.$localFilename);.}.catch.(\E
290e0 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 65 74 xception.$e).{.if.($backupTarget
29100 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 66 20 ).{.@unlink($newFilename);.}.if.
29120 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 75 65 (!$e.instanceof.\UnexpectedValue
29140 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 68 61 Exception.&&.!$e.instanceof.\Pha
29160 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 75 72 rException).{.throw.$e;.}..retur
29180 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 67 65 n.$e;.}.}..protected.function.ge
291a0 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 72 29 tLastBackupVersion($rollbackDir)
291c0 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 61 6c .{.$finder.=.$this->getOldInstal
291e0 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 69 6e lationFinder($rollbackDir);.$fin
29200 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 65 72 der->sortByName();.$files.=.iter
29220 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 6f 75 ator_to_array($finder);..if.(cou
29240 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 65 6e nt($files)).{.return.basename(en
29260 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 58 54 d($files),.self::OLD_INSTALL_EXT
29280 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
292a0 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 6e 64 .function.getOldInstallationFind
292c0 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 69 6e er($rollbackDir).{.$finder.=.Fin
292e0 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 65 73 der::create().->depth(0).->files
29300 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 41 4c ().->name('*'...self::OLD_INSTAL
29320 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 74 75 L_EXT).->in($rollbackDir);..retu
29340 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 0a 0a rn.$finder;.}.}.<?php...........
29360 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 .namespace.Composer\Command;..us
29380 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
293a0 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c ol;.use.Composer\DependencyResol
293c0 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 6f 73 65 72 5c ver\DefaultPolicy;.use.Composer\
293e0 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 43 6f Factory;.use.Composer\Package\Co
29400 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
29420 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 oser\Semver\VersionParser;.use.C
29440 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
29460 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 75 .Composer\Plugin\PluginEvents;.u
29480 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 se.Composer\Package\PackageInter
294a0 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
294c0 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 53 74 79 ole\Formatter\OutputFormatterSty
294e0 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 73 6f 6c le;.use.Symfony\Component\Consol
29500 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
29520 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
29540 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 tArgument;.use.Symfony\Component
29560 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 \Console\Input\InputOption;.use.
29580 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
295a0 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 73 65 72 5c 52 \OutputInterface;.use.Composer\R
295c0 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 20 43 epository\ArrayRepository;.use.C
295e0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f omposer\Repository\CompositeRepo
29600 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 5c sitory;.use.Composer\Repository\
29620 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ComposerRepository;.use.Composer
29640 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;.
29660 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f use.Composer\Repository\Reposito
29680 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 53 70 64 78 5c 53 ryInterface;.use.Composer\Spdx\S
296a0 70 64 78 4c 69 63 65 6e 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 6f 77 43 6f 6d pdxLicenses;.......class.ShowCom
296c0 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
296e0 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 63 6f 6c 6f .$versionParser;.protected.$colo
29700 72 73 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 rs;..protected.function.configur
29720 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 68 6f 77 27 29 0a 2d 3e e().{.$this.->setName('show').->
29740 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 69 6e 66 6f 27 29 29 0a 2d 3e 73 65 74 44 setAliases(array('info')).->setD
29760 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f escription('Show.information.abo
29780 75 74 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 ut.packages').->setDefinition(ar
297a0 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 ray(.new.InputArgument('package'
297c0 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b ,.InputArgument::OPTIONAL,.'Pack
297e0 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d age.to.inspect'),.new.InputArgum
29800 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 4f 50 ent('version',.InputArgument::OP
29820 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 6f 72 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 TIONAL,.'Version.or.version.cons
29840 74 72 61 69 6e 74 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 traint.to.inspect'),.new.InputOp
29860 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 6e 70 75 74 4f 70 74 69 tion('installed',.'i',.InputOpti
29880 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 on::VALUE_NONE,.'List.installed.
298a0 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e packages.only'),.new.InputOption
298c0 28 27 70 6c 61 74 66 6f 72 6d 27 2c 20 27 70 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 ('platform',.'p',.InputOption::V
298e0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 ALUE_NONE,.'List.platform.packag
29900 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 61 76 61 69 es.only'),.new.InputOption('avai
29920 6c 61 62 6c 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f lable',.'a',.InputOption::VALUE_
29940 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 6f NONE,.'List.available.packages.o
29960 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 27 nly'),.new.InputOption('self',.'
29980 73 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 s',.InputOption::VALUE_NONE,.'Sh
299a0 6f 77 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 ow.the.root.package.information'
299c0 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 2c 20 ),.new.InputOption('name-only',.
299e0 27 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 'N',.InputOption::VALUE_NONE,.'L
29a00 69 73 74 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e ist.package.names.only'),.new.In
29a20 70 75 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 2c 20 27 50 27 2c 20 49 6e 70 75 74 4f 70 74 69 putOption('path',.'P',.InputOpti
29a40 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 70 61 63 6b 61 67 65 20 70 61 on::VALUE_NONE,.'Show.package.pa
29a60 74 68 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 74 72 65 65 27 2c 20 27 ths'),.new.InputOption('tree',.'
29a80 74 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 t',.InputOption::VALUE_NONE,.'Li
29aa0 73 74 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 73 20 61 20 74 72 65 65 27 29 2c st.the.dependencies.as.a.tree'),
29ac0 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 73 68 6f 77 20 63 6f .)).->setHelp(<<<EOT.The.show.co
29ae0 6d 6d 61 6e 64 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 mmand.displays.detailed.informat
29b00 69 6f 6e 20 61 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 ion.about.a.package,.or.lists.al
29b20 6c 20 70 61 63 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 l.packages.available...EOT.).;.}
29b40 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
29b60 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
29b80 61 63 65 20 24 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 ace.$output).{.$this->versionPar
29ba0 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 69 66 20 28 24 69 6e ser.=.new.VersionParser;.if.($in
29bc0 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 74 72 65 65 27 29 29 20 7b 0a 24 74 68 69 73 2d put->getOption('tree')).{.$this-
29be0 3e 69 6e 69 74 53 74 79 6c 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 70 6c 61 74 >initStyles($output);.}....$plat
29c00 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 formRepo.=.new.PlatformRepositor
29c20 79 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 y;..$composer.=.$this->getCompos
29c40 65 72 28 66 61 6c 73 65 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b er(false);.$io.=.$this->getIO();
29c60 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 29 29 20 .if.($input->getOption('self')).
29c80 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 {.$package.=.$this->getComposer(
29ca0 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 )->getPackage();.$repos.=.$insta
29cc0 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 lledRepo.=.new.ArrayRepository(a
29ce0 72 72 61 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 rray($package));.}.elseif.($inpu
29d00 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 72 65 70 t->getOption('platform')).{.$rep
29d20 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 os.=.$installedRepo.=.$platformR
29d40 65 70 6f 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e epo;.}.elseif.($input->getOption
29d60 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 ('installed')).{.$repos.=.$insta
29d80 6c 6c 65 64 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d lledRepo.=.$this->getComposer()-
29da0 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 >getRepositoryManager()->getLoca
29dc0 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d lRepository();.}.elseif.($input-
29de0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 29 20 7b 0a 24 69 6e 73 74 >getOption('available')).{.$inst
29e00 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 69 66 20 28 24 alledRepo.=.$platformRepo;.if.($
29e20 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 composer).{.$repos.=.new.Composi
29e40 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 teRepository($composer->getRepos
29e60 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 itoryManager()->getRepositories(
29e80 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 ));.}.else.{.$defaultRepos.=.Fac
29ea0 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(
29ec0 24 69 6f 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 70 6f $io);.$repos.=.new.CompositeRepo
29ee0 73 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 sitory($defaultRepos);.$io->writ
29f00 65 45 72 72 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 eError('No.composer.json.found.i
29f20 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 n.the.current.directory,.showing
29f40 20 61 76 61 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 .available.packages.from.'...imp
29f60 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 lode(',.',.array_keys($defaultRe
29f80 70 6f 73 29 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 pos)));.}.}.elseif.($composer).{
29fa0 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 6f .$localRepo.=.$composer->getRepo
29fc0 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 sitoryManager()->getLocalReposit
29fe0 6f 72 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 ory();.$installedRepo.=.new.Comp
2a000 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f ositeRepository(array($localRepo
2a020 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 ,.$platformRepo));.$repos.=.new.
2a040 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 28 CompositeRepository(array_merge(
2a060 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 array($installedRepo),.$composer
2a080 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 ->getRepositoryManager()->getRep
2a0a0 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 ositories()));.}.else.{.$default
2a0c0 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 Repos.=.Factory::createDefaultRe
2a0e0 70 6f 73 69 74 6f 72 69 65 73 28 24 69 6f 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 positories($io);.$io->writeError
2a100 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 65 20 ('No.composer.json.found.in.the.
2a120 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 69 6c current.directory,.showing.avail
2a140 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 28 27 able.packages.from.'...implode('
2a160 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 29 29 ,.',.array_keys($defaultRepos)))
2a180 3b 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 ;.$installedRepo.=.$platformRepo
2a1a0 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f ;.$repos.=.new.CompositeReposito
2a1c0 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 ry(array_merge(array($installedR
2a1e0 65 70 6f 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 epo),.$defaultRepos));.}..if.($c
2a200 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 omposer).{.$commandEvent.=.new.C
2a220 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e ommandEvent(PluginEvents::COMMAN
2a240 44 2c 20 27 73 68 6f 77 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f D,.'show',.$input,.$output);.$co
2a260 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 mposer->getEventDispatcher()->di
2a280 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c spatch($commandEvent->getName(),
2a2a0 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 .$commandEvent);.}....if.($input
2a2c0 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 ->getArgument('package').||.!emp
2a2e0 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 ty($package)).{.$versions.=.arra
2a300 79 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 74 y();.if.(empty($package)).{.list
2a320 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 ($package,.$versions).=.$this->g
2a340 65 74 50 61 63 6b 61 67 65 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 etPackage($installedRepo,.$repos
2a360 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 ,.$input->getArgument('package')
2a380 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 ,.$input->getArgument('version')
2a3a0 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c );..if.(!$package).{.throw.new.\
2a3c0 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 InvalidArgumentException('Packag
2a3e0 65 20 27 2e 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 e.'.$input->getArgument('package
2a400 27 29 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 ').'.not.found');.}.}.else.{.$ve
2a420 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 rsions.=.array($package->getPret
2a440 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 tyVersion().=>.$package->getVers
2a460 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e ion());.}..if.($input->getOption
2a480 28 27 74 72 65 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 50 61 63 6b 61 67 ('tree')).{.$this->displayPackag
2a4a0 65 54 72 65 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 eTree($package,.$installedRepo,.
2a4c0 24 72 65 70 6f 73 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 $repos,.$output);.}.else.{.$this
2a4e0 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c ->printMeta($package,.$versions,
2a500 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d .$installedRepo,.$repos);.$this-
2a520 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 70 61 63 6b 61 67 65 2c 20 27 72 65 71 75 69 72 65 73 27 >printLinks($package,.'requires'
2a540 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 70 61 63 6b 61 67 65 2c 20 27 );.$this->printLinks($package,.'
2a560 64 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 3b devRequires',.'requires.(dev)');
2a580 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a .if.($package->getSuggests()).{.
2a5a0 24 69 6f 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 $io->write("\n<info>suggests</in
2a5c0 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
2a5e0 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
2a600 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 73 74 65 64 20 2e 20 27 20 3c 63 ).{.$io->write($suggested...'.<c
2a620 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 72 65 61 73 6f 6e 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e omment>'...$reason...'</comment>
2a640 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 70 61 63 6b 61 ');.}.}.$this->printLinks($packa
2a660 67 65 2c 20 27 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e ge,.'provides');.$this->printLin
2a680 6b 73 28 24 70 61 63 6b 61 67 65 2c 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 3b 0a 24 74 68 69 73 ks($package,.'conflicts');.$this
2a6a0 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 70 61 63 6b 61 67 65 2c 20 27 72 65 70 6c 61 63 65 73 ->printLinks($package,.'replaces
2a6c0 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e ');.}..return;.}....if.($input->
2a6e0 67 65 74 4f 70 74 69 6f 6e 28 27 74 72 65 65 27 29 29 20 7b 0a 69 66 20 28 21 24 69 6e 70 75 74 getOption('tree')).{.if.(!$input
2a700 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 29 20 7b 0a 24 69 6f 2d ->getOption('installed')).{.$io-
2a720 3e 77 72 69 74 65 45 72 72 6f 72 28 27 54 68 65 20 2d 2d 74 72 65 65 20 28 2d 74 29 20 6f 70 74 >writeError('The.--tree.(-t).opt
2a740 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 75 73 61 62 6c 65 20 69 6e 20 63 6f 6d 62 69 6e 61 74 69 6f ion.is.only.usable.in.combinatio
2a760 6e 20 77 69 74 68 20 2d 2d 69 6e 73 74 61 6c 6c 65 64 20 28 2d 69 29 20 6f 72 20 62 79 20 70 61 n.with.--installed.(-i).or.by.pa
2a780 73 73 69 6e 67 20 61 20 73 69 6e 67 6c 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 74 6f 20 73 ssing.a.single.package.name.to.s
2a7a0 68 6f 77 27 29 3b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 72 6f 6f 74 50 61 63 6b 61 67 65 how');.return.1;.}..$rootPackage
2a7c0 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
2a7e0 61 67 65 28 29 3b 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 age();.$rootRequires.=.array_map
2a800 28 0a 27 73 74 72 74 6f 6c 6f 77 65 72 27 2c 0a 61 72 72 61 79 5f 6b 65 79 73 28 61 72 72 61 79 (.'strtolower',.array_keys(array
2a820 5f 6d 65 72 67 65 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 _merge($rootPackage->getRequires
2a840 28 29 2c 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 (),.$rootPackage->getDevRequires
2a860 28 29 29 29 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f ())).);..foreach.($installedRepo
2a880 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 69 ->getPackages().as.$package).{.i
2a8a0 66 20 28 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 f.(in_array($package->getName(),
2a8c0 20 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e .$rootRequires,.true)).{.$this->
2a8e0 64 69 73 70 6c 61 79 50 61 63 6b 61 67 65 54 72 65 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e displayPackageTree($package,.$in
2a900 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d stalledRepo,.$repos,.$output);.}
2a920 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 70 6f 73 20 69 6e 73 74 .}..return.0;.}..if.($repos.inst
2a940 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 anceof.CompositeRepository).{.$r
2a960 65 70 6f 73 20 3d 20 24 72 65 70 6f 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 epos.=.$repos->getRepositories()
2a980 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 73 29 29 20 7b ;.}.elseif.(!is_array($repos)).{
2a9a0 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 24 72 65 70 6f 73 29 3b 0a 7d 0a 0a 0a 20 24 70 .$repos.=.array($repos);.}....$p
2a9c0 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 ackages.=.array();..foreach.($re
2a9e0 70 6f 73 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 pos.as.$repo).{.if.($repo.===.$p
2aa00 6c 61 74 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 latformRepo).{.$type.=.'<info>pl
2aa20 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 0a 24 72 65 70 atform</info>:';.}.elseif.(.$rep
2aa40 6f 20 3d 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 o.===.$installedRepo.||.($instal
2aa60 6c 65 64 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 ledRepo.instanceof.CompositeRepo
2aa80 73 69 74 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 sitory.&&.in_array($repo,.$insta
2aaa0 6c 6c 65 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 lledRepo->getRepositories(),.tru
2aac0 65 29 29 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 e)).).{.$type.=.'<info>installed
2aae0 3c 2f 69 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 </info>:';.}.else.{.$type.=.'<co
2ab00 6d 6d 65 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 mment>available</comment>:';.}.i
2ab20 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f f.($repo.instanceof.ComposerRepo
2ab40 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 sitory.&&.$repo->hasProviders())
2ab60 20 7b 0a 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 .{.foreach.($repo->getProviderNa
2ab80 6d 65 73 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 mes().as.$name).{.$packages[$typ
2aba0 65 5d 5b 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 e][$name].=.$name;.}.}.else.{.fo
2abc0 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 reach.($repo->getPackages().as.$
2abe0 70 61 63 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 package).{.if.(!isset($packages[
2ac00 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 $type][$package->getName()]).||.
2ac20 21 69 73 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 !is_object($packages[$type][$pac
2ac40 6b 61 67 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 kage->getName()]).||.version_com
2ac60 70 61 72 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 pare($packages[$type][$package->
2ac80 67 65 74 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 getName()]->getVersion(),.$packa
2aca0 67 65 2d 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 ge->getVersion(),.'<').).{.$pack
2acc0 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d ages[$type][$package->getName()]
2ace0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 68 6f 77 41 6c 6c 54 79 .=.$package;.}.}.}.}..$showAllTy
2ad00 70 65 73 20 3d 20 21 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 pes.=.!$input->getOption('platfo
2ad20 72 6d 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 69 6e 73 74 rm').&&.!$input->getOption('inst
2ad40 61 6c 6c 65 64 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 61 alled').&&.!$input->getOption('a
2ad60 76 61 69 6c 61 62 6c 65 27 29 3b 0a 24 69 6e 64 65 6e 74 20 3d 20 24 73 68 6f 77 41 6c 6c 54 79 vailable');.$indent.=.$showAllTy
2ad80 70 65 73 20 3f 20 27 20 20 27 20 3a 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 pes.?.'..'.:.'';.foreach.(array(
2ada0 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 '<info>platform</info>:'.=>.true
2adc0 2c 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a ,.'<comment>available</comment>:
2ade0 27 20 3d 3e 20 66 61 6c 73 65 2c 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e '.=>.false,.'<info>installed</in
2ae00 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 73 68 6f 77 fo>:'.=>.true).as.$type.=>.$show
2ae20 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 Version).{.if.(isset($packages[$
2ae40 74 79 70 65 5d 29 29 20 7b 0a 69 66 20 28 24 73 68 6f 77 41 6c 6c 54 79 70 65 73 29 20 7b 0a 24 type])).{.if.($showAllTypes).{.$
2ae60 69 6f 2d 3e 77 72 69 74 65 28 24 74 79 70 65 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 io->write($type);.}.ksort($packa
2ae80 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 24 76 65 72 ges[$type]);..$nameLength.=.$ver
2aea0 73 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 sionLength.=.0;.foreach.($packag
2aec0 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 5f es[$type].as.$package).{.if.(is_
2aee0 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 object($package)).{.$nameLength.
2af00 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 =.max($nameLength,.strlen($packa
2af20 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 29 3b 0a 24 76 65 72 73 69 6f 6e 4c ge->getPrettyName()));.$versionL
2af40 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 73 74 72 6c ength.=.max($versionLength,.strl
2af60 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f en($package->getFullPrettyVersio
2af80 6e 28 29 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 n()));.}.else.{.$nameLength.=.ma
2afa0 78 28 24 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 x($nameLength,.$package);.}.}.li
2afc0 73 74 28 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 st($width).=.$this->getApplicati
2afe0 6f 6e 28 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 on()->getTerminalDimensions();.i
2b000 66 20 28 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 f.(null.===.$width).{.....$width
2b020 20 3d 20 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 .=.PHP_INT_MAX;.}.if.(defined('P
2b040 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 77 HP_WINDOWS_VERSION_BUILD')).{.$w
2b060 69 64 74 68 2d 2d 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 idth--;.}..if.($input->getOption
2b080 28 27 70 61 74 68 27 29 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6d 70 6f 73 65 72 29 20 ('path').&&.null.===.$composer).
2b0a0 7b 0a 24 69 6f 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 6a {.$io->writeError('No.composer.j
2b0c0 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f son.found.in.the.current.directo
2b0e0 72 79 2c 20 64 69 73 61 62 6c 69 6e 67 20 22 70 61 74 68 22 20 6f 70 74 69 6f 6e 27 29 3b 0a 24 ry,.disabling."path".option');.$
2b100 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 2c 20 66 61 6c 73 65 29 3b input->setOption('path',.false);
2b120 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 74 4f 70 74 .}..$writePath.=.!$input->getOpt
2b140 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 67 65 74 4f ion('name-only').&&.$input->getO
2b160 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 20 3d 20 21 ption('path');.$writeVersion.=.!
2b180 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 27 29 20 26 $input->getOption('name-only').&
2b1a0 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 20 26 26 20 &.!$input->getOption('path').&&.
2b1c0 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 20 2b 20 24 $showVersion.&&.($nameLength.+.$
2b1e0 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 3b 0a 24 77 versionLength.+.3.<=.$width);.$w
2b200 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 65 74 4f 70 riteDescription.=.!$input->getOp
2b220 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 2d 3e 67 65 tion('name-only').&&.!$input->ge
2b240 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 67 74 68 20 tOption('path').&&.($nameLength.
2b260 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 6e 67 74 68 +.($showVersion.?.$versionLength
2b280 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 63 68 20 28 .:.0).+.24.<=.$width);.foreach.(
2b2a0 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a $packages[$type].as.$package).{.
2b2c0 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 6f 75 74 70 if.(is_object($package)).{.$outp
2b2e0 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 24 70 61 63 ut->write($indent...str_pad($pac
2b300 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 4c 65 6e 67 kage->getPrettyName(),.$nameLeng
2b320 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 65 56 65 72 th,.'.'),.false);..if.($writeVer
2b340 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 20 73 74 72 sion).{.$output->write('.'...str
2b360 5f 70 61 64 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 65 72 73 _pad($package->getFullPrettyVers
2b380 69 6f 6e 28 29 2c 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c 20 66 61 6c ion(),.$versionLength,.'.'),.fal
2b3a0 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 44 65 73 63 72 69 70 74 69 6f 6e 29 20 7b se);.}..if.($writeDescription).{
2b3c0 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d .$description.=.strtok($package-
2b3e0 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 24 72 65 6d >getDescription(),."\r\n");.$rem
2b400 61 69 6e 69 6e 67 20 3d 20 24 77 69 64 74 68 20 2d 20 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2d 20 aining.=.$width.-.$nameLength.-.
2b420 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 2d 20 34 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 $versionLength.-.4;.if.(strlen($
2b440 64 65 73 63 72 69 70 74 69 6f 6e 29 20 3e 20 24 72 65 6d 61 69 6e 69 6e 67 29 20 7b 0a 24 64 65 description).>.$remaining).{.$de
2b460 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c scription.=.substr($description,
2b480 20 30 2c 20 24 72 65 6d 61 69 6e 69 6e 67 20 2d 20 33 29 20 2e 20 27 2e 2e 2e 27 3b 0a 7d 0a 24 .0,.$remaining.-.3)...'...';.}.$
2b4a0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 64 65 73 63 72 69 70 74 69 6f 6e output->write('.'...$description
2b4c0 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 50 61 74 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 );.}..if.($writePath).{.$path.=.
2b4e0 73 74 72 74 6f 6b 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e strtok(realpath($composer->getIn
2b500 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 stallationManager()->getInstallP
2b520 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 24 6f 75 74 70 75 74 ath($package)),."\r\n");.$output
2b540 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b ->write('.'...$path);.}.}.else.{
2b560 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 69 6e 64 65 6e 74 20 2e 20 24 70 61 63 6b 61 .$output->write($indent...$packa
2b580 67 65 29 3b 0a 7d 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 69 66 20 28 24 73 68 ge);.}.$io->write('');.}.if.($sh
2b5a0 6f 77 41 6c 6c 54 79 70 65 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a owAllTypes).{.$io->write('');.}.
2b5c0 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 }.}.}............protected.funct
2b5e0 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 72 66 61 ion.getPackage(RepositoryInterfa
2b600 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 ce.$installedRepo,.RepositoryInt
2b620 65 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 erface.$repos,.$name,.$version.=
2b640 20 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 .null).{.$name.=.strtolower($nam
2b660 65 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 e);.$constraint.=.null;.if.($ver
2b680 73 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 sion).{.$constraint.=.$this->ver
2b6a0 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 76 65 sionParser->parseConstraints($ve
2b6c0 72 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 rsion);.}..$policy.=.new.Default
2b6e0 50 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 Policy();.$pool.=.new.Pool('dev'
2b700 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 72 65 70 6f 73 29 3b );.$pool->addRepository($repos);
2b720 0a 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 ..$matchedPackage.=.null;.$versi
2b740 6f 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 ons.=.array();.$matches.=.$pool-
2b760 3e 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 >whatProvides($name,.$constraint
2b780 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d );.foreach.($matches.as.$index.=
2b7a0 3e 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 >.$package).{...if.($package->ge
2b7c0 74 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 tName().!==.$name).{.unset($matc
2b7e0 68 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 hes[$index]);.continue;.}....if.
2b800 28 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 (null.===.$version.&&.$installed
2b820 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6d Repo->hasPackage($package)).{.$m
2b840 61 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 atchedPackage.=.$package;.}..$ve
2b860 72 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 rsions[$package->getPrettyVersio
2b880 6e 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 n()].=.$package->getVersion();.$
2b8a0 6d 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 matches[$index].=.$package->getI
2b8c0 64 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 d();.}....if.(!$matchedPackage.&
2b8e0 26 20 24 6d 61 74 63 68 65 73 20 26 26 20 24 70 72 65 66 65 72 72 65 64 20 3d 20 24 70 6f 6c 69 &.$matches.&&.$preferred.=.$poli
2b900 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 66 65 72 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f cy->selectPreferredPackages($poo
2b920 6c 2c 20 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 l,.array(),.$matches)).{.$matche
2b940 64 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 61 dPackage.=.$pool->literalToPacka
2b960 67 65 28 24 70 72 65 66 65 72 72 65 64 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 ge($preferred[0]);.}..return.arr
2b980 61 79 28 24 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 ay($matchedPackage,.$versions);.
2b9a0 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 69 6e 74 4d 65 }.....protected.function.printMe
2b9c0 74 61 28 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ta(CompletePackageInterface.$pac
2b9e0 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 6f 72 kage,.array.$versions,.Repositor
2ba00 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 0a 7b 0a 24 69 6f yInterface.$installedRepo).{.$io
2ba20 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c .=.$this->getIO();.$io->write('<
2ba40 69 6e 66 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 info>name</info>.....:.'...$pack
2ba60 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 age->getPrettyName());.$io->writ
2ba80 65 28 27 3c 69 6e 66 6f 3e 64 65 73 63 72 69 70 2e 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 e('<info>descrip.</info>.:.'...$
2baa0 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 29 3b 0a 24 69 6f 2d package->getDescription());.$io-
2bac0 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 3a 20 >write('<info>keywords</info>.:.
2bae0 27 20 2e 20 6a 6f 69 6e 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 '...join(',.',.$package->getKeyw
2bb00 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e ords().?:.array()));.$this->prin
2bb20 74 56 65 72 73 69 6f 6e 73 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 tVersions($package,.$versions,.$
2bb40 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 installedRepo);.$io->write('<inf
2bb60 6f 3e 74 79 70 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>type</info>.....:.'...$package
2bb80 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 63 65 6e 73 ->getType());.$this->printLicens
2bba0 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e es($package);.$io->write('<info>
2bbc0 73 6f 75 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 source</info>...:.'...sprintf('[
2bbe0 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 %s].<comment>%s</comment>.%s',.$
2bc00 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 24 70 61 63 6b 61 package->getSourceType(),.$packa
2bc20 67 65 2d 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 ge->getSourceUrl(),.$package->ge
2bc40 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 tSourceReference()));.$io->write
2bc60 28 27 3c 69 6e 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 73 70 ('<info>dist</info>.....:.'...sp
2bc80 72 69 6e 74 66 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 rintf('[%s].<comment>%s</comment
2bca0 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 2c 20 >.%s',.$package->getDistType(),.
2bcc0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 $package->getDistUrl(),.$package
2bce0 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 ->getDistReference()));.$io->wri
2bd00 74 65 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e 20 te('<info>names</info>....:.'...
2bd20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 implode(',.',.$package->getNames
2bd40 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 ()));..if.($package->isAbandoned
2bd60 28 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e ()).{.$replacement.=.($package->
2bd80 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 21 3d 3d 20 6e 75 6c 6c getReplacementPackage().!==.null
2bda0 29 0a 3f 20 27 20 54 68 65 20 61 75 74 68 6f 72 20 73 75 67 67 65 73 74 73 20 75 73 69 6e 67 20 ).?.'.The.author.suggests.using.
2bdc0 74 68 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 65 6d 65 6e 74 the.'...$package->getReplacement
2bde0 50 61 63 6b 61 67 65 28 29 2e 20 27 20 70 61 63 6b 61 67 65 20 69 6e 73 74 65 61 64 2e 27 0a 3a Package()..'.package.instead.'.:
2be00 20 6e 75 6c 6c 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 73 70 72 69 6e 74 66 .null;..$io->writeError(.sprintf
2be20 28 27 3c 77 61 72 6e 69 6e 67 3e 41 74 74 65 6e 74 69 6f 6e 3a 20 54 68 69 73 20 70 61 63 6b 61 ('<warning>Attention:.This.packa
2be40 67 65 20 69 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 ge.is.abandoned.and.no.longer.ma
2be60 69 6e 74 61 69 6e 65 64 2e 25 73 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 72 65 70 6c 61 63 65 intained.%s</warning>',.$replace
2be80 6d 65 6e 74 29 0a 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 ment).);.}..if.($package->getSup
2bea0 70 6f 72 74 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 port()).{.$io->write("\n<info>su
2bec0 70 70 6f 72 74 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 pport</info>");.foreach.($packag
2bee0 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 61 6c e->getSupport().as.$type.=>.$val
2bf00 75 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 ue).{.$io->write('<comment>'...$
2bf20 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3a 20 27 2e 24 76 61 6c 75 65 29 3b 0a type...'</comment>.:.'.$value);.
2bf40 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 }.}..if.($package->getAutoload()
2bf60 29 20 7b 0a 24 69 6f 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 ).{.$io->write("\n<info>autoload
2bf80 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 </info>");.foreach.($package->ge
2bfa0 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 61 75 74 6f 6c 6f 61 tAutoload().as.$type.=>.$autoloa
2bfc0 64 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 ds).{.$io->write('<comment>'...$
2bfe0 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 28 24 74 79 70 65 type...'</comment>');..if.($type
2c000 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 61 75 74 6f 6c 6f .===.'psr-0').{.foreach.($autolo
2c020 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 69 6f 2d 3e 77 72 ads.as.$name.=>.$path).{.$io->wr
2c040 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 20 27 20 2e 20 28 69 ite(($name.?:.'*')...'.=>.'...(i
2c060 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 27 2c 20 27 2c 20 24 s_array($path).?.implode(',.',.$
2c080 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 0a 7d 0a 7d 20 65 6c path).:.($path.?:.'.')));.}.}.el
2c0a0 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 29 20 7b 0a 66 6f 72 65 61 seif.($type.===.'psr-4').{.forea
2c0c0 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 ch.($autoloads.as.$name.=>.$path
2c0e0 29 20 7b 0a 24 69 6f 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 ).{.$io->write(($name.?:.'*')...
2c100 27 20 3d 3e 20 27 20 2e 20 28 69 73 5f 61 72 72 61 79 28 24 70 61 74 68 29 20 3f 20 69 6d 70 6c '.=>.'...(is_array($path).?.impl
2c120 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 74 68 29 20 3a 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 ode(',.',.$path).:.($path.?:.'.'
2c140 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 )));.}.}.elseif.($type.===.'clas
2c160 73 6d 61 70 27 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 smap').{.$io->write(implode(',.'
2c180 2c 20 24 61 75 74 6f 6c 6f 61 64 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 ,.$autoloads));.}.}.if.($package
2c1a0 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 ->getIncludePaths()).{.$io->writ
2c1c0 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f 6d 6d 65 6e e('<comment>include-path</commen
2c1e0 74 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 t>');.$io->write(implode(',.',.$
2c200 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 29 3b 0a 7d 0a package->getIncludePaths()));.}.
2c220 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 70 72 69 6e 74 }.}.....protected.function.print
2c240 56 65 72 73 69 6f 6e 73 28 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Versions(CompletePackageInterfac
2c260 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 e.$package,.array.$versions,.Rep
2c280 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 ositoryInterface.$installedRepo)
2c2a0 0a 7b 0a 75 61 73 6f 72 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 65 72 73 69 6f 6e 5f 63 6f .{.uasort($versions,.'version_co
2c2c0 6d 70 61 72 65 27 29 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 mpare');.$versions.=.array_keys(
2c2e0 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 76 65 72 73 69 6f 6e 73 29 29 3b 0a 0a 0a 20 69 66 array_reverse($versions));....if
2c300 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 .($installedRepo->hasPackage($pa
2c320 63 6b 61 67 65 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 70 ckage)).{.$installedVersion.=.$p
2c340 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 6b 65 79 ackage->getPrettyVersion();.$key
2c360 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f .=.array_search($installedVersio
2c380 6e 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 6b 65 n,.$versions);.if.(false.!==.$ke
2c3a0 79 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 6b 65 79 5d 20 3d 20 27 3c 69 6e 66 6f 3e 2a 20 y).{.$versions[$key].=.'<info>*.
2c3c0 27 20 2e 20 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 2e 20 27 3c 2f 69 6e 66 6f 3e '...$installedVersion...'</info>
2c3e0 27 3b 0a 7d 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 ';.}.}..$versions.=.implode(',.'
2c400 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 ,.$versions);..$this->getIO()->w
2c420 72 69 74 65 28 27 3c 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 rite('<info>versions</info>.:.'.
2c440 2e 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ..$versions);.}.........protecte
2c460 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 43 6f 6d 70 6c 65 74 65 50 61 d.function.printLinks(CompletePa
2c480 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 54 79 ckageInterface.$package,.$linkTy
2c4a0 70 65 2c 20 24 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 74 6c 65 20 3d 20 24 74 pe,.$title.=.null).{.$title.=.$t
2c4c0 69 74 6c 65 20 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e itle.?:.$linkType;.$io.=.$this->
2c4e0 67 65 74 49 4f 28 29 3b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e getIO();.if.($links.=.$package->
2c500 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 29 29 20 7b 0a {'get'.ucfirst($linkType)}()).{.
2c520 24 69 6f 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e $io->write("\n<info>"...$title..
2c540 20 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 ."</info>");..foreach.($links.as
2c560 20 24 6c 69 6e 6b 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 .$link).{.$io->write($link->getT
2c580 61 72 67 65 74 28 29 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e arget()...'.<comment>'...$link->
2c5a0 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 63 6f 6d 6d 65 getPrettyConstraint()...'</comme
2c5c0 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e nt>');.}.}.}.......protected.fun
2c5e0 63 74 69 6f 6e 20 70 72 69 6e 74 4c 69 63 65 6e 73 65 73 28 43 6f 6d 70 6c 65 74 65 50 61 63 6b ction.printLicenses(CompletePack
2c600 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 73 70 64 78 4c 69 ageInterface.$package).{.$spdxLi
2c620 63 65 6e 73 65 73 20 3d 20 6e 65 77 20 53 70 64 78 4c 69 63 65 6e 73 65 73 28 29 3b 0a 0a 24 6c censes.=.new.SpdxLicenses();..$l
2c640 69 63 65 6e 73 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 icenses.=.$package->getLicense()
2c660 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 66 6f 72 65 61 63 68 ;.$io.=.$this->getIO();..foreach
2c680 20 28 24 6c 69 63 65 6e 73 65 73 20 61 73 20 24 6c 69 63 65 6e 73 65 49 64 29 20 7b 0a 24 6c 69 .($licenses.as.$licenseId).{.$li
2c6a0 63 65 6e 73 65 20 3d 20 24 73 70 64 78 4c 69 63 65 6e 73 65 73 2d 3e 67 65 74 4c 69 63 65 6e 73 cense.=.$spdxLicenses->getLicens
2c6c0 65 42 79 49 64 65 6e 74 69 66 69 65 72 28 24 6c 69 63 65 6e 73 65 49 64 29 3b 20 0a 0a 69 66 20 eByIdentifier($licenseId);...if.
2c6e0 28 21 24 6c 69 63 65 6e 73 65 29 20 7b 0a 24 6f 75 74 20 3d 20 24 6c 69 63 65 6e 73 65 49 64 3b (!$license).{.$out.=.$licenseId;
2c700 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 6c 69 63 65 6e 73 65 5b 31 5d 20 3d 3d 3d 20 .}.else.{...if.($license[1].===.
2c720 74 72 75 65 29 20 7b 0a 24 6f 75 74 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 28 25 73 29 20 true).{.$out.=.sprintf('%s.(%s).
2c740 28 4f 53 49 20 61 70 70 72 6f 76 65 64 29 20 25 73 27 2c 20 24 6c 69 63 65 6e 73 65 5b 30 5d 2c (OSI.approved).%s',.$license[0],
2c760 20 24 6c 69 63 65 6e 73 65 49 64 2c 20 24 6c 69 63 65 6e 73 65 5b 32 5d 29 3b 0a 7d 20 65 6c 73 .$licenseId,.$license[2]);.}.els
2c780 65 20 7b 0a 24 6f 75 74 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 28 25 73 29 20 25 73 27 2c e.{.$out.=.sprintf('%s.(%s).%s',
2c7a0 20 24 6c 69 63 65 6e 73 65 5b 30 5d 2c 20 24 6c 69 63 65 6e 73 65 49 64 2c 20 24 6c 69 63 65 6e .$license[0],.$licenseId,.$licen
2c7c0 73 65 5b 32 5d 29 3b 0a 7d 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6c se[2]);.}.}..$io->write('<info>l
2c7e0 69 63 65 6e 73 65 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 24 6f 75 74 29 3b 0a 7d 0a 7d 0a icense</info>..:.'...$out);.}.}.
2c800 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 69 74 53 74 79 ......protected.function.initSty
2c820 6c 65 73 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 0a 7b 0a 24 les(OutputInterface.$output).{.$
2c840 74 68 69 73 2d 3e 63 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 67 72 65 65 6e 27 2c 0a 27 this->colors.=.array(.'green',.'
2c860 79 65 6c 6c 6f 77 27 2c 0a 27 63 79 61 6e 27 2c 0a 27 6d 61 67 65 6e 74 61 27 2c 0a 27 62 6c 75 yellow',.'cyan',.'magenta',.'blu
2c880 65 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6c 6f 72 73 20 61 e',.);..foreach.($this->colors.a
2c8a0 73 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 s.$color).{.$style.=.new.OutputF
2c8c0 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 24 63 6f 6c 6f 72 29 3b 0a 24 6f 75 74 70 75 74 2d 3e ormatterStyle($color);.$output->
2c8e0 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c 65 28 24 63 6f 6c 6f 72 2c getFormatter()->setStyle($color,
2c900 20 24 73 74 79 6c 65 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 .$style);.}.}..........protected
2c920 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 50 61 63 6b 61 67 65 54 72 65 65 28 50 61 63 .function.displayPackageTree(Pac
2c940 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 52 65 70 6f 73 69 74 6f kageInterface.$package,.Reposito
2c960 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f ryInterface.$installedRepo,.Repo
2c980 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 64 69 73 74 61 6e 74 52 65 70 6f 73 2c 20 4f sitoryInterface.$distantRepos,.O
2c9a0 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 70 61 63 6b 61 utputInterface.$output).{.$packa
2c9c0 67 65 73 49 6e 54 72 65 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 49 6e gesInTree.=.array();.$packagesIn
2c9e0 54 72 65 65 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 Tree[].=.$package;..$output->wri
2ca00 74 65 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 27 2c 20 24 70 te(sprintf('<info>%s</info>',.$p
2ca20 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 29 3b 0a 24 6f 75 74 70 ackage->getPrettyName()));.$outp
2ca40 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 ut->write('.'...$package->getPre
2ca60 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 ttyVersion());.$output->write('.
2ca80 27 20 2e 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 '...strtok($package->getDescript
2caa0 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c ion(),."\r\n"));.$output->writel
2cac0 6e 28 27 27 29 3b 0a 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 n('');..if.(is_object($package))
2cae0 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 .{.$requires.=.$package->getRequ
2cb00 69 72 65 73 28 29 3b 0a 24 74 72 65 65 42 61 72 20 3d 20 27 e2 94 9c 27 3b 0a 24 6a 20 3d 20 30 ires();.$treeBar.=.'...';.$j.=.0
2cb20 3b 0a 24 74 6f 74 61 6c 20 3d 20 63 6f 75 6e 74 28 24 72 65 71 75 69 72 65 73 29 3b 0a 66 6f 72 ;.$total.=.count($requires);.for
2cb40 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 4e 61 6d 65 20 each.($requires.as.$requireName.
2cb60 3d 3e 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 6a 2b 2b 3b 0a 69 66 20 28 24 6a 20 3d 3d 20 30 =>.$require).{.$j++;.if.($j.==.0
2cb80 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 72 65 65 4c 69 6e 65 28 24 74 72 65 65 42 61 ).{.$this->writeTreeLine($treeBa
2cba0 72 29 3b 0a 7d 0a 69 66 20 28 24 6a 20 3d 3d 20 24 74 6f 74 61 6c 29 20 7b 0a 24 74 72 65 65 42 r);.}.if.($j.==.$total).{.$treeB
2cbc0 61 72 20 3d 20 27 e2 94 94 27 3b 0a 7d 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 63 6f 6c 6f 72 ar.=.'...';.}.$level.=.1;.$color
2cbe0 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6c 6f 72 73 5b 24 6c 65 76 65 6c 5d 3b 0a 24 69 6e 66 6f 20 .=.$this->colors[$level];.$info.
2cc00 3d 20 73 70 72 69 6e 74 66 28 27 25 73 e2 94 80 e2 94 80 3c 25 73 3e 25 73 3c 2f 25 73 3e 20 25 =.sprintf('%s......<%s>%s</%s>.%
2cc20 73 27 2c 20 24 74 72 65 65 42 61 72 2c 20 24 63 6f 6c 6f 72 2c 20 24 72 65 71 75 69 72 65 4e 61 s',.$treeBar,.$color,.$requireNa
2cc40 6d 65 2c 20 24 63 6f 6c 6f 72 2c 20 24 72 65 71 75 69 72 65 2d 3e 67 65 74 50 72 65 74 74 79 43 me,.$color,.$require->getPrettyC
2cc60 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 72 65 65 4c 69 onstraint());.$this->writeTreeLi
2cc80 6e 65 28 24 69 6e 66 6f 29 3b 0a 0a 24 74 72 65 65 42 61 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 ne($info);..$treeBar.=.str_repla
2cca0 63 65 28 27 e2 94 94 27 2c 20 27 20 27 2c 20 24 74 72 65 65 42 61 72 29 3b 0a 0a 24 70 61 63 6b ce('...',.'.',.$treeBar);..$pack
2ccc0 61 67 65 73 49 6e 54 72 65 65 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 4e 61 6d 65 3b 0a 0a 24 74 agesInTree[].=.$requireName;..$t
2cce0 68 69 73 2d 3e 64 69 73 70 6c 61 79 54 72 65 65 28 24 72 65 71 75 69 72 65 4e 61 6d 65 2c 20 24 his->displayTree($requireName,.$
2cd00 72 65 71 75 69 72 65 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 64 69 73 74 61 6e require,.$installedRepo,.$distan
2cd20 74 52 65 70 6f 73 2c 20 24 70 61 63 6b 61 67 65 73 49 6e 54 72 65 65 2c 20 24 6f 75 74 70 75 74 tRepos,.$packagesInTree,.$output
2cd40 2c 20 24 74 72 65 65 42 61 72 2c 20 24 6c 65 76 65 6c 20 2b 20 31 29 3b 0a 7d 0a 7d 0a 7d 0a 0a ,.$treeBar,.$level.+.1);.}.}.}..
2cd60 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 64 ............protected.function.d
2cd80 69 73 70 6c 61 79 54 72 65 65 28 24 6e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 52 65 70 6f isplayTree($name,.$package,.Repo
2cda0 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 sitoryInterface.$installedRepo,.
2cdc0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 64 69 73 74 61 6e 74 52 65 70 6f RepositoryInterface.$distantRepo
2cde0 73 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 49 6e 54 72 65 65 2c 20 4f 75 74 70 75 74 s,.array.$packagesInTree,.Output
2ce00 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 70 72 65 76 69 6f 75 73 54 72 65 65 Interface.$output,.$previousTree
2ce20 42 61 72 20 3d 20 27 e2 94 9c 27 2c 20 24 6c 65 76 65 6c 20 3d 20 31 29 0a 7b 0a 24 70 72 65 76 Bar.=.'...',.$level.=.1).{.$prev
2ce40 69 6f 75 73 54 72 65 65 42 61 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 e2 94 9c 27 2c iousTreeBar.=.str_replace('...',
2ce60 20 27 e2 94 82 27 2c 20 24 70 72 65 76 69 6f 75 73 54 72 65 65 42 61 72 29 3b 0a 6c 69 73 74 28 .'...',.$previousTreeBar);.list(
2ce80 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 $package,.$versions).=.$this->ge
2cea0 74 50 61 63 6b 61 67 65 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 64 69 73 74 61 6e tPackage($installedRepo,.$distan
2cec0 74 52 65 70 6f 73 2c 20 24 6e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 tRepos,.$name,.$package->getPret
2cee0 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 3d 3d 3d 20 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e tyConstraint().===.'self.version
2cf00 27 20 3f 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 3a 20 '.?.$package->getConstraint().:.
2cf20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 $package->getPrettyConstraint())
2cf40 3b 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 72 65 ;.if.(is_object($package)).{.$re
2cf60 71 75 69 72 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 quires.=.$package->getRequires()
2cf80 3b 0a 24 74 72 65 65 42 61 72 20 3d 20 24 70 72 65 76 69 6f 75 73 54 72 65 65 42 61 72 20 2e 20 ;.$treeBar.=.$previousTreeBar...
2cfa0 27 20 20 e2 94 9c 27 3b 0a 24 69 20 3d 20 30 3b 0a 24 74 6f 74 61 6c 20 3d 20 63 6f 75 6e 74 28 '.....';.$i.=.0;.$total.=.count(
2cfc0 24 72 65 71 75 69 72 65 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 $requires);.foreach.($requires.a
2cfe0 73 20 24 72 65 71 75 69 72 65 4e 61 6d 65 20 3d 3e 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 69 s.$requireName.=>.$require).{.$i
2d000 2b 2b 3b 0a 69 66 20 28 24 69 20 3d 3d 20 24 74 6f 74 61 6c 29 20 7b 0a 24 74 72 65 65 42 61 72 ++;.if.($i.==.$total).{.$treeBar
2d020 20 3d 20 24 70 72 65 76 69 6f 75 73 54 72 65 65 42 61 72 20 2e 20 27 20 20 e2 94 94 27 3b 0a 7d .=.$previousTreeBar...'.....';.}
2d040 0a 24 63 6f 6c 6f 72 49 64 65 6e 74 20 3d 20 24 6c 65 76 65 6c 20 25 20 63 6f 75 6e 74 28 24 74 .$colorIdent.=.$level.%.count($t
2d060 68 69 73 2d 3e 63 6f 6c 6f 72 73 29 3b 0a 24 63 6f 6c 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f his->colors);.$color.=.$this->co
2d080 6c 6f 72 73 5b 24 63 6f 6c 6f 72 49 64 65 6e 74 5d 3b 0a 24 69 6e 66 6f 20 3d 20 73 70 72 69 6e lors[$colorIdent];.$info.=.sprin
2d0a0 74 66 28 27 25 73 e2 94 80 e2 94 80 3c 25 73 3e 25 73 3c 2f 25 73 3e 20 25 73 27 2c 20 24 74 72 tf('%s......<%s>%s</%s>.%s',.$tr
2d0c0 65 65 42 61 72 2c 20 24 63 6f 6c 6f 72 2c 20 24 72 65 71 75 69 72 65 4e 61 6d 65 2c 20 24 63 6f eeBar,.$color,.$requireName,.$co
2d0e0 6c 6f 72 2c 20 24 72 65 71 75 69 72 65 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 lor,.$require->getPrettyConstrai
2d100 6e 74 28 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 72 65 65 4c 69 6e 65 28 24 69 6e 66 nt());.$this->writeTreeLine($inf
2d120 6f 29 3b 0a 0a 24 74 72 65 65 42 61 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 e2 94 94 o);..$treeBar.=.str_replace('...
2d140 27 2c 20 27 20 27 2c 20 24 74 72 65 65 42 61 72 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 ',.'.',.$treeBar);.if.(!in_array
2d160 28 24 72 65 71 75 69 72 65 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 73 49 6e 54 72 65 65 29 29 ($requireName,.$packagesInTree))
2d180 20 7b 0a 24 70 61 63 6b 61 67 65 73 49 6e 54 72 65 65 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 4e .{.$packagesInTree[].=.$requireN
2d1a0 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 54 72 65 65 28 24 72 65 71 75 69 72 65 ame;.$this->displayTree($require
2d1c0 4e 61 6d 65 2c 20 24 72 65 71 75 69 72 65 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 Name,.$require,.$installedRepo,.
2d1e0 24 64 69 73 74 61 6e 74 52 65 70 6f 73 2c 20 24 70 61 63 6b 61 67 65 73 49 6e 54 72 65 65 2c 20 $distantRepos,.$packagesInTree,.
2d200 24 6f 75 74 70 75 74 2c 20 24 74 72 65 65 42 61 72 2c 20 24 6c 65 76 65 6c 20 2b 20 31 29 3b 0a $output,.$treeBar,.$level.+.1);.
2d220 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 54 }.}.}.}..private.function.writeT
2d240 72 65 65 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 reeLine($line).{.$io.=.$this->ge
2d260 74 49 4f 28 29 3b 0a 69 66 20 28 21 24 69 6f 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 29 20 tIO();.if.(!$io->isDecorated()).
2d280 7b 0a 24 6c 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 e2 94 94 {.$line.=.str_replace(array('...
2d2a0 27 2c 20 27 e2 94 9c 27 2c 20 27 e2 94 80 e2 94 80 27 2c 20 27 e2 94 82 27 29 2c 20 61 72 72 61 ',.'...',.'......',.'...'),.arra
2d2c0 79 28 27 60 2d 27 2c 20 27 7c 2d 27 2c 20 27 2d 27 2c 20 27 7c 27 29 2c 20 24 6c 69 6e 65 29 3b y('`-',.'|-',.'-',.'|'),.$line);
2d2e0 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 .}..$io->write($line);.}.}.<?php
2d300 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 ............namespace.Composer\C
2d320 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ommand;..use.Symfony\Component\C
2d340 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
2d360 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
2d380 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
2d3a0 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
2d3c0 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 43 68 61 6e ce;.use.Composer\Downloader\Chan
2d3e0 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c geReportInterface;.use.Composer\
2d400 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
2d420 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 6d 70 6f r\Plugin\PluginEvents;.use.Compo
2d440 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
2d460 61 73 73 20 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e ass.StatusCommand.extends.Comman
2d480 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
2d4a0 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 74 61 74 75 73 27 29 0a 2d ().{.$this.->setName('status').-
2d4c0 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 61 20 6c 69 73 74 20 6f 66 20 >setDescription('Show.a.list.of.
2d4e0 6c 6f 63 61 6c 6c 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 locally.modified.packages').->se
2d500 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
2d520 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f on('verbose',.'v|vv|vvv',.InputO
2d540 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 6d 6f 64 69 66 69 65 ption::VALUE_NONE,.'Show.modifie
2d560 64 20 66 69 6c 65 73 20 66 6f 72 20 65 61 63 68 20 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 d.files.for.each.directory.that.
2d580 63 6f 6e 74 61 69 6e 73 20 63 68 61 6e 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c contains.changes.'),.)).->setHel
2d5a0 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 p(<<<EOT.The.status.command.disp
2d5c0 6c 61 79 73 20 61 20 6c 69 73 74 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 68 61 74 lays.a.list.of.dependencies.that
2d5e0 20 68 61 76 65 0a 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6c 6f 63 61 6c 6c 79 2e 0a 0a 45 4f .have.been.modified.locally...EO
2d600 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
2d620 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
2d640 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 tInterface.$output).{...$compose
2d660 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 0a 24 63 6f 6d 6d r.=.$this->getComposer();..$comm
2d680 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 67 andEvent.=.new.CommandEvent(Plug
2d6a0 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 74 61 74 75 73 27 2c 20 24 69 6e inEvents::COMMAND,.'status',.$in
2d6c0 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
2d6e0 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
2d700 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
2d720 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e );..$installedRepo.=.$composer->
2d740 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
2d760 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e Repository();..$dm.=.$composer->
2d780 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 6f 6d getDownloadManager();.$im.=.$com
2d7a0 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b poser->getInstallationManager();
2d7c0 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 ....$composer->getEventDispatche
2d7e0 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 45 76 65 6e 74 73 r()->dispatchScript(ScriptEvents
2d800 3a 3a 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 24 65 72 72 6f 72 ::PRE_STATUS_CMD,.true);..$error
2d820 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 s.=.array();.$io.=.$this->getIO(
2d840 29 3b 0a 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 );....foreach.($installedRepo->g
2d860 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 6f 77 etPackages().as.$package).{.$dow
2d880 6e 6c 6f 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 nloader.=.$dm->getDownloaderForI
2d8a0 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 0a 69 66 20 28 nstalledPackage($package);..if.(
2d8c0 24 64 6f 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 $downloader.instanceof.ChangeRep
2d8e0 6f 72 74 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 ortInterface).{.$targetDir.=.$im
2d900 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 ->getInstallPath($package);..if.
2d920 28 69 73 5f 6c 69 6e 6b 28 24 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b (is_link($targetDir)).{.$errors[
2d940 24 74 61 72 67 65 74 44 69 72 5d 20 3d 20 24 74 61 72 67 65 74 44 69 72 20 2e 20 27 20 69 73 20 $targetDir].=.$targetDir...'.is.
2d960 61 20 73 79 6d 62 6f 6c 69 63 20 6c 69 6e 6b 2e 27 3b 0a 7d 0a 0a 69 66 20 28 24 63 68 61 6e 67 a.symbolic.link.';.}..if.($chang
2d980 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 61 6e 67 65 es.=.$downloader->getLocalChange
2d9a0 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 65 72 72 6f s($package,.$targetDir)).{.$erro
2d9c0 72 73 5b 24 74 61 72 67 65 74 44 69 72 5d 20 3d 20 24 63 68 61 6e 67 65 73 3b 0a 7d 0a 7d 0a 7d rs[$targetDir].=.$changes;.}.}.}
2d9e0 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 ....if.(!$errors).{.$io->writeEr
2da00 72 6f 72 28 27 3c 69 6e 66 6f 3e 4e 6f 20 6c 6f 63 61 6c 20 63 68 61 6e 67 65 73 3c 2f 69 6e 66 ror('<info>No.local.changes</inf
2da20 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 o>');.}.else.{.$io->writeError('
2da40 3c 65 72 72 6f 72 3e 59 6f 75 20 68 61 76 65 20 63 68 61 6e 67 65 73 20 69 6e 20 74 68 65 20 66 <error>You.have.changes.in.the.f
2da60 6f 6c 6c 6f 77 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 ollowing.dependencies:</error>')
2da80 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 70 61 74 68 20 3d ;.}..foreach.($errors.as.$path.=
2daa0 3e 20 24 63 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 >.$changes).{.if.($input->getOpt
2dac0 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 ion('verbose')).{.$indentedChang
2dae0 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e es.=.implode("\n",.array_map(fun
2db00 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 20 2e 20 ction.($line).{.return.'....'...
2db20 6c 74 72 69 6d 28 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 ltrim($line);.},.explode("\n",.$
2db40 63 68 61 6e 67 65 73 29 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 27 2e changes)));.$io->write('<info>'.
2db60 24 70 61 74 68 2e 27 3c 2f 69 6e 66 6f 3e 3a 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 69 $path.'</info>:');.$io->write($i
2db80 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 ndentedChanges);.}.else.{.$io->w
2dba0 72 69 74 65 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 72 72 6f 72 73 20 26 26 rite($path);.}.}..if.($errors.&&
2dbc0 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 .!$input->getOption('verbose')).
2dbe0 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 55 73 65 20 2d 2d 76 65 72 62 6f 73 65 {.$io->writeError('Use.--verbose
2dc00 20 28 2d 76 29 20 74 6f 20 73 65 65 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 29 3b 0a 7d .(-v).to.see.modified.files');.}
2dc20 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 ....$composer->getEventDispatche
2dc40 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 45 76 65 6e 74 73 r()->dispatchScript(ScriptEvents
2dc60 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 0a 72 65 74 75 72 ::POST_STATUS_CMD,.true);..retur
2dc80 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 68 70 0a 0a 0a 0a n.$errors.?.1.:.0;.}.}.<?php....
2dca0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 ........namespace.Composer\Comma
2dcc0 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f nd;..use.Symfony\Component\Conso
2dce0 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
2dd00 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
2dd20 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
2dd40 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 t\Console\Input\InputOption;.use
2dd60 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
2dd80 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 63 6c 61 73 73 20 53 75 67 67 65 73 t\OutputInterface;..class.Sugges
2dda0 74 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 tsCommand.extends.Command.{.prot
2ddc0 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
2dde0 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 75 67 67 65 73 74 73 27 29 0a 2d 3e 73 65 74 44 65 is.->setName('suggests').->setDe
2de00 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 69 scription('Show.package.suggesti
2de20 6f 6e 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 ons').->setDefinition(array(.new
2de40 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 6e 70 .InputOption('no-dev',.null,.Inp
2de60 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 78 63 6c 75 64 65 20 73 utOption::VALUE_NONE,.'Exclude.s
2de80 75 67 67 65 73 74 69 6f 6e 73 20 66 72 6f 6d 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b uggestions.from.require-dev.pack
2dea0 61 67 65 73 27 29 2c 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 ages'),.new.InputArgument('packa
2dec0 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 ges',.InputArgument::IS_ARRAY.|.
2dee0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 InputArgument::OPTIONAL,.'Packag
2df00 65 73 20 74 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6c 69 73 74 20 73 75 67 67 65 73 74 es.that.you.want.to.list.suggest
2df20 69 6f 6e 73 20 66 72 6f 6d 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f ions.from.'),.)).->setHelp(<<<EO
2df40 54 0a 0a 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 T..The.<info>%command.name%</inf
2df60 6f 3e 20 63 6f 6d 6d 61 6e 64 20 73 68 6f 77 73 20 73 75 67 67 65 73 74 65 64 20 70 61 63 6b 61 o>.command.shows.suggested.packa
2df80 67 65 73 2e 0a 0a 57 69 74 68 20 3c 69 6e 66 6f 3e 2d 76 3c 2f 69 6e 66 6f 3e 20 79 6f 75 20 61 ges...With.<info>-v</info>.you.a
2dfa0 6c 73 6f 20 73 65 65 20 77 68 69 63 68 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 65 64 20 lso.see.which.package.suggested.
2dfc0 69 74 20 61 6e 64 20 77 68 79 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 it.and.why...EOT.).;.}..protecte
2dfe0 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 d.function.execute(InputInterfac
2e000 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
2e020 74 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 t).{.$lock.=.$this->getComposer(
2e040 29 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a )->getLocker()->getLockData();..
2e060 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 if.(empty($lock)).{.throw.new.\R
2e080 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4c 6f 63 6b 66 69 6c 65 20 73 65 65 6d 73 20 untimeException('Lockfile.seems.
2e0a0 74 6f 20 62 65 20 65 6d 70 74 79 3f 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 to.be.empty?');.}..$packages.=.$
2e0c0 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 3b 0a 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e lock['packages'];..if.(!$input->
2e0e0 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
2e100 20 2b 3d 20 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 3b 0a 7d 0a 0a 24 66 .+=.$lock['packages-dev'];.}..$f
2e120 69 6c 74 65 72 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 ilter.=.$input->getArgument('pac
2e140 6b 61 67 65 73 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 kages');..foreach.($packages.as.
2e160 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 5b 27 $package).{.if.(empty($package['
2e180 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 suggest'])).{.continue;.}..if.(!
2e1a0 65 6d 70 74 79 28 24 66 69 6c 74 65 72 29 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 empty($filter).&&.!in_array($pac
2e1c0 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2c 20 24 66 69 6c 74 65 72 29 29 20 7b 0a 63 6f 6e 74 69 6e kage['name'],.$filter)).{.contin
2e1e0 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 53 75 67 67 65 73 74 69 6f 6e 73 28 24 ue;.}..$this->printSuggestions($
2e200 70 61 63 6b 61 67 65 73 2c 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2c 20 24 70 61 63 packages,.$package['name'],.$pac
2e220 6b 61 67 65 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 kage['suggest']);.}.}..protected
2e240 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 53 75 67 67 65 73 74 69 6f 6e 73 28 24 69 6e 73 74 .function.printSuggestions($inst
2e260 61 6c 6c 65 64 2c 20 24 73 6f 75 72 63 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 0a 7b 0a alled,.$source,.$suggestions).{.
2e280 66 6f 72 65 61 63 68 20 28 24 73 75 67 67 65 73 74 69 6f 6e 73 20 61 73 20 24 73 75 67 67 65 73 foreach.($suggestions.as.$sugges
2e2a0 74 69 6f 6e 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 73 tion.=>.$reason).{.foreach.($ins
2e2c0 74 61 6c 6c 65 64 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 talled.as.$package).{.if.($packa
2e2e0 67 65 5b 27 6e 61 6d 65 27 5d 20 3d 3d 3d 20 24 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 63 6f ge['name'].===.$suggestion).{.co
2e300 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 72 65 61 73 6f 6e ntinue.2;.}.}..if.(empty($reason
2e320 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 27 2a 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 )).{.$reason.=.'*';.}..$this->pr
2e340 69 6e 74 53 75 67 67 65 73 74 69 6f 6e 28 24 73 6f 75 72 63 65 2c 20 24 73 75 67 67 65 73 74 69 intSuggestion($source,.$suggesti
2e360 6f 6e 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e on,.$reason);.}.}..protected.fun
2e380 63 74 69 6f 6e 20 70 72 69 6e 74 53 75 67 67 65 73 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 ction.printSuggestion($package,.
2e3a0 24 73 75 67 67 65 73 74 69 6f 6e 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 $suggestion,.$reason).{.$io.=.$t
2e3c0 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 his->getIO();..if.($io->isVerbos
2e3e0 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d e()).{.$io->write(sprintf('<comm
2e400 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 73 75 67 67 65 73 74 73 20 3c 69 6e 66 6f 3e ent>%s</comment>.suggests.<info>
2e420 25 73 3c 2f 69 6e 66 6f 3e 3a 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 73 75 67 67 65 %s</info>:.%s',.$package,.$sugge
2e440 73 74 69 6f 6e 2c 20 24 72 65 61 73 6f 6e 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e stion,.$reason));.}.else.{.$io->
2e460 77 72 69 74 65 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 27 2c write(sprintf('<info>%s</info>',
2e480 20 24 73 75 67 67 65 73 74 69 6f 6e 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .$suggestion));.}.}.}.<?php.....
2e4a0 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
2e4c0 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 d;..use.Composer\Installer;.use.
2e4e0 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 74 3b 0a 75 73 Composer\Plugin\CommandEvent;.us
2e500 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a e.Composer\Plugin\PluginEvents;.
2e520 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
2e540 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
2e560 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
2e580 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
2e5a0 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
2e5c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
2e5e0 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 43 putInterface;......class.UpdateC
2e600 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 ommand.extends.Command.{.protect
2e620 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 0a ed.function.configure().{.$this.
2e640 2d 3e 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 ->setName('update').->setDescrip
2e660 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 tion('Updates.your.dependencies.
2e680 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 to.the.latest.version.according.
2e6a0 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 20 74 68 to.composer.json,.and.updates.th
2e6c0 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 2e 27 29 0a 2d 3e 73 65 74 44 65 66 e.composer.lock.file.').->setDef
2e6e0 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
2e700 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
2e720 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 4e 41 4c 2c 20 RRAY.|.InputArgument::OPTIONAL,.
2e740 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 75 70 64 61 74 65 64 'Packages.that.should.be.updated
2e760 2c 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 ,.if.not.provided.all.packages.a
2e780 72 65 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 re.'),.new.InputOption('prefer-s
2e7a0 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ource',.null,.InputOption::VALUE
2e7c0 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d _NONE,.'Forces.installation.from
2e7e0 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 .package.sources.when.possible,.
2e800 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 including.VCS.information.'),.ne
2e820 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c w.InputOption('prefer-dist',.nul
2e840 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 l,.InputOption::VALUE_NONE,.'For
2e860 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 ces.installation.from.package.di
2e880 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 st.even.for.dev.versions.'),.new
2e8a0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e .InputOption('dry-run',.null,.In
2e8c0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 putOption::VALUE_NONE,.'Outputs.
2e8e0 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 the.operations.but.will.not.exec
2e900 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 ute.anything.(implicitly.enables
2e920 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 .--verbose).'),.new.InputOption(
2e940 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 45 5f 'dev',.null,.InputOption::VALUE_
2e960 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 NONE,.'Enables.installation.of.r
2e980 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 62 79 20 equire-dev.packages.(enabled.by.
2e9a0 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 2e 27 29 default,.only.present.for.BC).')
2e9c0 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
2e9e0 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
2ea00 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 65 76 bles.installation.of.require-dev
2ea20 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c .packages.'),.new.InputOption('l
2ea40 6f 63 6b 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 ock',.null,.InputOption::VALUE_N
2ea60 4f 4e 45 2c 20 27 4f 6e 6c 79 20 75 70 64 61 74 65 73 20 74 68 65 20 6c 6f 63 6b 20 66 69 6c 65 ONE,.'Only.updates.the.lock.file
2ea80 20 68 61 73 68 20 74 6f 20 73 75 70 70 72 65 73 73 20 77 61 72 6e 69 6e 67 20 61 62 6f 75 74 20 .hash.to.suppress.warning.about.
2eaa0 74 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 62 65 69 6e 67 20 6f 75 74 20 6f 66 20 64 61 74 65 2e the.lock.file.being.out.of.date.
2eac0 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 73 27 '),.new.InputOption('no-plugins'
2eae0 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,
2eb00 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 20 49 .'Disables.all.plugins.'),.new.I
2eb20 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 72 73 nputOption('no-custom-installers
2eb40 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
2eb60 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 69 6e ,.'DEPRECATED:.Use.no-plugins.in
2eb80 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 61 75 stead.'),.new.InputOption('no-au
2eba0 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 56 41 toloader',.null,.InputOption::VA
2ebc0 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 6e 65 LUE_NONE,.'Skips.autoloader.gene
2ebe0 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 73 63 ration'),.new.InputOption('no-sc
2ec00 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ripts',.null,.InputOption::VALUE
2ec20 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 _NONE,.'Skips.the.execution.of.a
2ec40 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a ll.scripts.defined.in.composer.j
2ec60 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 6e 6f son.file.'),.new.InputOption('no
2ec80 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 3a 56 -progress',.null,.InputOption::V
2eca0 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 6c 6f ALUE_NONE,.'Do.not.output.downlo
2ecc0 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 6e 28 ad.progress.'),.new.InputOption(
2ece0 27 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 74 'with-dependencies',.null,.Input
2ed00 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 64 64 20 61 6c 73 6f 20 61 6c Option::VALUE_NONE,.'Add.also.al
2ed20 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 77 68 69 74 65 6c 69 73 74 65 64 20 70 61 l.dependencies.of.whitelisted.pa
2ed40 63 6b 61 67 65 73 20 74 6f 20 74 68 65 20 77 68 69 74 65 6c 69 73 74 2e 27 29 2c 0a 6e 65 77 20 ckages.to.the.whitelist.'),.new.
2ed60 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 InputOption('verbose',.'v|vv|vvv
2ed80 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f ',.InputOption::VALUE_NONE,.'Sho
2eda0 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 6f ws.more.details.including.new.co
2edc0 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 61 mmits.pulled.in.when.updating.pa
2ede0 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 ckages.'),.new.InputOption('opti
2ee00 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 mize-autoloader',.'o',.InputOpti
2ee20 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c 6f on::VALUE_NONE,.'Optimize.autolo
2ee40 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 2e 27 29 2c 0a ader.during.autoloader.dump.'),.
2ee60 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 new.InputOption('classmap-author
2ee80 69 74 61 74 69 76 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 itative',.'a',.InputOption::VALU
2eea0 45 5f 4e 4f 4e 45 2c 20 27 41 75 74 6f 6c 6f 61 64 20 63 6c 61 73 73 65 73 20 66 72 6f 6d 20 74 E_NONE,.'Autoload.classes.from.t
2eec0 68 65 20 63 6c 61 73 73 6d 61 70 20 6f 6e 6c 79 2e 20 49 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 he.classmap.only..Implicitly.ena
2eee0 62 6c 65 73 20 60 2d 2d 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 60 2e 27 29 2c bles.`--optimize-autoloader`.'),
2ef00 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
2ef20 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
2ef40 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
2ef60 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).'),.
2ef80 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 74 61 62 6c 65 27 2c new.InputOption('prefer-stable',
2efa0 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,.
2efc0 27 50 72 65 66 65 72 20 73 74 61 62 6c 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 64 65 70 65 6e 'Prefer.stable.versions.of.depen
2efe0 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 6e 28 27 70 72 65 dencies.'),.new.InputOption('pre
2f000 66 65 72 2d 6c 6f 77 65 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a fer-lowest',.null,.InputOption::
2f020 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 50 72 65 66 65 72 20 6c 6f 77 65 73 74 20 76 65 72 73 69 VALUE_NONE,.'Prefer.lowest.versi
2f040 6f 6e 73 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 ons.of.dependencies.'),.)).->set
2f060 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f 69 6e Help(<<<EOT.The.<info>update</in
2f080 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a fo>.command.reads.the.composer.j
2f0a0 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 son.file.from.the.current.direct
2f0c0 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 2c 20 ory,.processes.it,.and.updates,.
2f0e0 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 70 65 removes.or.installs.all.the.depe
2f100 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 ndencies...<info>php.composer.ph
2f120 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 ar.update</info>..To.limit.the.u
2f140 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 67 65 pdate.operation.to.a.few.package
2f160 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 0a 79 s,.you.can.list.the.package(s).y
2f180 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 6e 66 ou.want.to.update.as.such:..<inf
2f1a0 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 6f o>php.composer.phar.update.vendo
2f1c0 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d 3c 2f r/package1.foo/mypackage.[...]</
2f1e0 69 6e 66 6f 3e 0a 0a 59 6f 75 20 6d 61 79 20 61 6c 73 6f 20 75 73 65 20 61 6e 20 61 73 74 65 72 info>..You.may.also.use.an.aster
2f200 69 73 6b 20 28 2a 29 20 70 61 74 74 65 72 6e 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 70 64 isk.(*).pattern.to.limit.the.upd
2f220 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 70 61 63 6b 61 67 65 28 73 29 0a 66 72 6f 6d ate.operation.to.package(s).from
2f240 20 61 20 73 70 65 63 69 66 69 63 20 76 65 6e 64 6f 72 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 .a.specific.vendor:..<info>php.c
2f260 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 6f 72 2f 70 61 63 6b 61 omposer.phar.update.vendor/packa
2f280 67 65 31 20 66 6f 6f 2f 2a 20 5b 2e 2e 2e 5d 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d ge1.foo/*.[...]</info>.EOT.).;.}
2f2a0 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
2f2c0 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
2f2e0 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 ace.$output).{.$io.=.$this->getI
2f300 4f 28 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 6e 6f 2d 63 O();.if.($input->getOption('no-c
2f320 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 ustom-installers')).{.$io->write
2f340 45 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 Error('<warning>You.are.using.th
2f360 65 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 e.deprecated.option."no-custom-i
2f380 6e 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 nstallers"..Use."no-plugins".ins
2f3a0 74 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 tead.</warning>');.$input->setOp
2f3c0 74 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 69 66 20 tion('no-plugins',.true);.}..if.
2f3e0 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 20 7b 0a 24 69 6f ($input->getOption('dev')).{.$io
2f400 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 75 ->writeError('<warning>You.are.u
2f420 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 64 65 76 22 sing.the.deprecated.option."dev"
2f440 2e 20 44 65 76 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 ..Dev.packages.are.installed.by.
2f460 64 65 66 61 75 6c 74 20 6e 6f 77 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 24 63 6f default.now.</warning>');.}..$co
2f480 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 74 72 75 65 mposer.=.$this->getComposer(true
2f4a0 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 ,.$input->getOption('no-plugins'
2f4c0 29 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 6e 61 67 65 ));.$composer->getDownloadManage
2f4e0 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 75 74 2d 3e r()->setOutputProgress(!$input->
2f500 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 0a 24 63 6f 6d getOption('no-progress'));..$com
2f520 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
2f540 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 75 70 64 61 74 65 27 2c 20 24 69 ginEvents::COMMAND,.'update',.$i
2f560 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 45 76 nput,.$output);.$composer->getEv
2f580 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 6d 61 entDispatcher()->dispatch($comma
2f5a0 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 65 6e ndEvent->getName(),.$commandEven
2f5c0 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 3a 63 72 65 61 74 t);..$install.=.Installer::creat
2f5e0 65 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 e($io,.$composer);..$preferSourc
2f600 65 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 e.=.false;.$preferDist.=.false;.
2f620 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 .$config.=.$composer->getConfig(
2f640 29 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 );..switch.($config->get('prefer
2f660 72 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 red-install')).{.case.'source':.
2f680 24 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 $preferSource.=.true;.break;.cas
2f6a0 65 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 e.'dist':.$preferDist.=.true;.br
2f6c0 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 72 65 eak;.case.'auto':.default:...bre
2f6e0 61 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 ak;.}.if.($input->getOption('pre
2f700 66 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 fer-source').||.$input->getOptio
2f720 6e 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 n('prefer-dist')).{.$preferSourc
2f740 65 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 e.=.$input->getOption('prefer-so
2f760 75 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 urce');.$preferDist.=.$input->ge
2f780 74 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 tOption('prefer-dist');.}..$opti
2f7a0 6d 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 mize.=.$input->getOption('optimi
2f7c0 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 2d 3e 67 65 74 28 ze-autoloader').||.$config->get(
2f7e0 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 3b 0a 24 61 75 74 68 6f 72 69 'optimize-autoloader');.$authori
2f800 74 61 74 69 76 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 6c 61 73 tative.=.$input->getOption('clas
2f820 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d smap-authoritative').||.$config-
2f840 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 0a >get('classmap-authoritative');.
2f860 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 65 .$install.->setDryRun($input->ge
2f880 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 65 tOption('dry-run')).->setVerbose
2f8a0 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 2d ($input->getOption('verbose')).-
2f8c0 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 0a >setPreferSource($preferSource).
2f8e0 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 73 ->setPreferDist($preferDist).->s
2f900 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 6f etDevMode(!$input->getOption('no
2f920 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 6e -dev')).->setDumpAutoloader(!$in
2f940 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 29 put->getOption('no-autoloader'))
2f960 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 74 .->setRunScripts(!$input->getOpt
2f980 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 65 ion('no-scripts')).->setOptimize
2f9a0 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 43 6c 61 73 73 Autoloader($optimize).->setClass
2f9c0 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 24 61 75 74 68 6f 72 69 74 61 74 69 76 65 29 MapAuthoritative($authoritative)
2f9e0 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
2fa00 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'
2fa20 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
2fa40 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
2fa60 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
2fa80 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
2faa0 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->
2fac0 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'
2fae0 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
2fb00 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
2fb20 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
2fb40 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
2fb60 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
2fb80 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.$
2fba0 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.......
2fbc0 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;
2fbe0 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 6d 70 ..use.Composer\Factory;.use.Comp
2fc00 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 oser\Package\Loader\ValidatingAr
2fc20 72 61 79 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 rayLoader;.use.Composer\Util\Con
2fc40 66 69 67 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 figValidator;.use.Symfony\Compon
2fc60 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;
2fc80 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
2fca0 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nput\InputInterface;.use.Symfony
2fcc0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 \Component\Console\Input\InputOp
2fce0 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tion;.use.Symfony\Component\Cons
2fd00 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;.....
2fd20 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 ...class.ValidateCommand.extends
2fd40 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 6f 6e .Command.{....protected.function
2fd60 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('
2fd80 76 61 6c 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c validate').->setDescription('Val
2fda0 69 64 61 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 63 6f 6d 70 6f idates.a.composer.json.and.compo
2fdc0 73 65 72 2e 6c 6f 63 6b 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 ser.lock').->setDefinition(array
2fde0 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 61 6c 6c 27 (.new.InputOption('no-check-all'
2fe00 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,
2fe20 20 27 44 6f 20 6e 6f 74 20 6d 61 6b 65 20 61 20 63 6f 6d 70 6c 65 74 65 20 76 61 6c 69 64 61 74 .'Do.not.make.a.complete.validat
2fe40 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 63 68 65 63 6b ion'),.new.InputOption('no-check
2fe60 2d 6c 6f 63 6b 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 -lock',.null,.InputOption::VALUE
2fe80 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 63 68 65 63 6b 20 69 66 20 6c 6f 63 6b 20 66 69 6c _NONE,.'Do.not.check.if.lock.fil
2fea0 65 20 69 73 20 75 70 20 74 6f 20 64 61 74 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 e.is.up.to.date'),.new.InputOpti
2fec0 6f 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 on('no-check-publish',.null,.Inp
2fee0 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 63 68 utOption::VALUE_NONE,.'Do.not.ch
2ff00 65 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 eck.for.publish.errors'),.new.In
2ff20 70 75 74 4f 70 74 69 6f 6e 28 27 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 27 putOption('with-dependencies',.'
2ff40 41 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 41 6c A',.InputOption::VALUE_NONE,.'Al
2ff60 73 6f 20 76 61 6c 69 64 61 74 65 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 so.validate.the.composer.json.of
2ff80 20 61 6c 6c 20 69 6e 73 74 61 6c 6c 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 2c 0a 6e .all.installed.dependencies'),.n
2ffa0 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 72 69 63 74 27 2c 20 6e 75 6c 6c 2c 20 49 ew.InputOption('strict',.null,.I
2ffc0 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 74 75 72 6e 20 nputOption::VALUE_NONE,.'Return.
2ffe0 61 20 6e 6f 6e 2d 7a 65 72 6f 20 65 78 69 74 20 63 6f 64 65 20 66 6f 72 20 77 61 72 6e 69 6e 67 a.non-zero.exit.code.for.warning
30000 73 20 61 73 20 77 65 6c 6c 20 61 73 20 65 72 72 6f 72 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 s.as.well.as.errors'),.new.Input
30020 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a Argument('file',.InputArgument::
30040 4f 50 54 49 4f 4e 41 4c 2c 20 27 70 61 74 68 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e OPTIONAL,.'path.to.composer.json
30060 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 2c 0a 29 29 0a 2d .file',.'./composer.json'),.)).-
30080 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 6d >setHelp(<<<EOT.The.validate.com
300a0 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 2e mand.validates.a.given.composer.
300c0 6a 73 6f 6e 20 61 6e 64 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 0a 0a 45 78 69 74 20 63 6f 64 json.and.composer.lock..Exit.cod
300e0 65 73 20 69 6e 20 63 61 73 65 20 6f 66 20 65 72 72 6f 72 73 20 61 72 65 3a 0a 31 20 76 61 6c 69 es.in.case.of.errors.are:.1.vali
30100 64 61 74 69 6f 6e 20 77 61 72 6e 69 6e 67 28 73 29 2c 20 6f 6e 6c 79 20 77 68 65 6e 20 2d 2d 73 dation.warning(s),.only.when.--s
30120 74 72 69 63 74 20 69 73 20 67 69 76 65 6e 0a 32 20 76 61 6c 69 64 61 74 69 6f 6e 20 65 72 72 6f trict.is.given.2.validation.erro
30140 72 28 73 29 0a 33 20 66 69 6c 65 20 75 6e 72 65 61 64 61 62 6c 65 20 6f 72 20 6d 69 73 73 69 6e r(s).3.file.unreadable.or.missin
30160 67 0a 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e g..EOT.);.}........protected.fun
30180 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e ction.execute(InputInterface.$in
301a0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
301c0 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c $file.=.$input->getArgument('fil
301e0 65 27 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 69 66 20 28 e');.$io.=.$this->getIO();..if.(
30200 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 !file_exists($file)).{.$io->writ
30220 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 6e 6f 74 eError('<error>'...$file...'.not
30240 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 33 3b 0a 7d 0a .found.</error>');..return.3;.}.
30260 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 69 6f 2d 3e if.(!is_readable($file)).{.$io->
30280 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 20 2e 20 27 writeError('<error>'...$file...'
302a0 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 0a 72 65 .is.not.readable.</error>');..re
302c0 74 75 72 6e 20 33 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 turn.3;.}..$validator.=.new.Conf
302e0 69 67 56 61 6c 69 64 61 74 6f 72 28 24 69 6f 29 3b 0a 24 63 68 65 63 6b 41 6c 6c 20 3d 20 24 69 igValidator($io);.$checkAll.=.$i
30300 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 61 6c 6c 27 29 20 nput->getOption('no-check-all').
30320 3f 20 30 20 3a 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3a 3a 43 48 45 ?.0.:.ValidatingArrayLoader::CHE
30340 43 4b 5f 41 4c 4c 3b 0a 24 63 68 65 63 6b 50 75 62 6c 69 73 68 20 3d 20 21 24 69 6e 70 75 74 2d CK_ALL;.$checkPublish.=.!$input-
30360 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 70 75 62 6c 69 73 68 27 29 3b 0a >getOption('no-check-publish');.
30380 24 63 68 65 63 6b 4c 6f 63 6b 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 $checkLock.=.!$input->getOption(
303a0 27 6e 6f 2d 63 68 65 63 6b 2d 6c 6f 63 6b 27 29 3b 0a 24 69 73 53 74 72 69 63 74 20 3d 20 24 69 'no-check-lock');.$isStrict.=.$i
303c0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 72 69 63 74 27 29 3b 0a 6c 69 73 74 28 nput->getOption('strict');.list(
303e0 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e $errors,.$publishErrors,.$warnin
30400 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 gs).=.$validator->validate($file
30420 2c 20 24 63 68 65 63 6b 41 6c 6c 29 3b 0a 0a 24 6c 6f 63 6b 45 72 72 6f 72 73 20 3d 20 61 72 72 ,.$checkAll);..$lockErrors.=.arr
30440 61 79 28 29 3b 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 ay();.$composer.=.Factory::creat
30460 65 28 24 69 6f 2c 20 24 66 69 6c 65 29 3b 0a 24 6c 6f 63 6b 65 72 20 3d 20 24 63 6f 6d 70 6f 73 e($io,.$file);.$locker.=.$compos
30480 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 3b 0a 69 66 20 28 24 6c 6f 63 6b 65 72 2d 3e 69 73 er->getLocker();.if.($locker->is
304a0 4c 6f 63 6b 65 64 28 29 20 26 26 20 21 24 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 29 Locked().&&.!$locker->isFresh())
304c0 20 7b 0a 24 6c 6f 63 6b 45 72 72 6f 72 73 5b 5d 20 3d 20 27 54 68 65 20 6c 6f 63 6b 20 66 69 6c .{.$lockErrors[].=.'The.lock.fil
304e0 65 20 69 73 20 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 e.is.not.up.to.date.with.the.lat
30500 65 73 74 20 63 68 61 6e 67 65 73 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 69 74 est.changes.in.composer.json,.it
30520 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 68 61 74 20 79 6f 75 20 72 75 6e 20 60 63 6f .is.recommended.that.you.run.`co
30540 6d 70 6f 73 65 72 20 75 70 64 61 74 65 60 2e 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 mposer.update`.';.}..$this->outp
30560 75 74 52 65 73 75 6c 74 28 24 69 6f 2c 20 24 66 69 6c 65 2c 20 24 65 72 72 6f 72 73 2c 20 24 77 utResult($io,.$file,.$errors,.$w
30580 61 72 6e 69 6e 67 73 2c 20 24 63 68 65 63 6b 50 75 62 6c 69 73 68 2c 20 24 70 75 62 6c 69 73 68 arnings,.$checkPublish,.$publish
305a0 45 72 72 6f 72 73 2c 20 24 63 68 65 63 6b 4c 6f 63 6b 2c 20 24 6c 6f 63 6b 45 72 72 6f 72 73 2c Errors,.$checkLock,.$lockErrors,
305c0 20 74 72 75 65 29 3b 0a 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 65 72 72 6f 72 73 20 7c 7c 20 .true);..$exitCode.=.$errors.||.
305e0 28 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 24 63 68 65 63 6b 50 75 62 6c 69 73 68 ($publishErrors.&&.$checkPublish
30600 29 20 7c 7c 20 28 24 6c 6f 63 6b 45 72 72 6f 72 73 20 26 26 20 24 63 68 65 63 6b 4c 6f 63 6b 29 ).||.($lockErrors.&&.$checkLock)
30620 20 3f 20 32 20 3a 20 28 24 69 73 53 74 72 69 63 74 20 26 26 20 24 77 61 72 6e 69 6e 67 73 20 3f .?.2.:.($isStrict.&&.$warnings.?
30640 20 31 20 3a 20 30 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 .1.:.0);..if.($input->getOption(
30660 27 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 'with-dependencies')).{.$localRe
30680 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e po.=.$composer->getRepositoryMan
306a0 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 66 6f ager()->getLocalRepository();.fo
306c0 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()
306e0 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 63 6f 6d 70 6f 73 65 .as.$package).{.$path.=.$compose
30700 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 67 65 74 r->getInstallationManager()->get
30720 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 66 69 6c 65 20 3d 20 24 InstallPath($package);.$file.=.$
30740 70 61 74 68 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 69 66 20 28 69 73 5f path...'/composer.json';.if.(is_
30760 64 69 72 28 24 70 61 74 68 29 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 dir($path).&&.file_exists($file)
30780 29 20 7b 0a 6c 69 73 74 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 ).{.list($errors,.$publishErrors
307a0 2c 20 24 77 61 72 6e 69 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 ,.$warnings).=.$validator->valid
307c0 61 74 65 28 24 66 69 6c 65 2c 20 24 63 68 65 63 6b 41 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 ate($file,.$checkAll);.$this->ou
307e0 74 70 75 74 52 65 73 75 6c 74 28 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 tputResult($io,.$package->getPre
30800 74 74 79 4e 61 6d 65 28 29 2c 20 24 65 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 2c 20 24 ttyName(),.$errors,.$warnings,.$
30820 63 68 65 63 6b 50 75 62 6c 69 73 68 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 3b 0a 0a checkPublish,.$publishErrors);..
30840 24 64 65 70 43 6f 64 65 20 3d 20 24 65 72 72 6f 72 73 20 7c 7c 20 28 24 70 75 62 6c 69 73 68 45 $depCode.=.$errors.||.($publishE
30860 72 72 6f 72 73 20 26 26 20 24 63 68 65 63 6b 50 75 62 6c 69 73 68 29 20 3f 20 32 20 3a 20 28 24 rrors.&&.$checkPublish).?.2.:.($
30880 69 73 53 74 72 69 63 74 20 26 26 20 24 77 61 72 6e 69 6e 67 73 20 3f 20 31 20 3a 20 30 29 3b 0a isStrict.&&.$warnings.?.1.:.0);.
308a0 24 65 78 69 74 43 6f 64 65 20 3d 20 6d 61 78 28 24 64 65 70 43 6f 64 65 2c 20 24 65 78 69 74 43 $exitCode.=.max($depCode,.$exitC
308c0 6f 64 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d ode);.}.}.}..return.$exitCode;.}
308e0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 52 65 73 75 6c 74 28 ..private.function.outputResult(
30900 24 69 6f 2c 20 24 6e 61 6d 65 2c 20 26 24 65 72 72 6f 72 73 2c 20 26 24 77 61 72 6e 69 6e 67 73 $io,.$name,.&$errors,.&$warnings
30920 2c 20 24 63 68 65 63 6b 50 75 62 6c 69 73 68 20 3d 20 66 61 6c 73 65 2c 20 24 70 75 62 6c 69 73 ,.$checkPublish.=.false,.$publis
30940 68 45 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 63 68 65 63 6b 4c 6f 63 6b 20 3d 20 hErrors.=.array(),.$checkLock.=.
30960 66 61 6c 73 65 2c 20 24 6c 6f 63 6b 45 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 70 false,.$lockErrors.=.array(),.$p
30980 72 69 6e 74 53 63 68 65 6d 61 55 72 6c 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 65 rintSchemaUrl.=.false).{.if.(!$e
309a0 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 21 24 77 61 rrors.&&.!$publishErrors.&&.!$wa
309c0 72 6e 69 6e 67 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 rnings).{.$io->write('<info>'...
309e0 24 6e 61 6d 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 $name...'.is.valid</info>');.}.e
30a00 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f lseif.(!$errors.&&.!$publishErro
30a20 72 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 27 20 2e rs).{.$io->writeError('<info>'..
30a40 20 24 6e 61 6d 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 2c 20 62 75 74 20 77 69 74 68 20 61 20 .$name...'.is.valid,.but.with.a.
30a60 66 65 77 20 77 61 72 6e 69 6e 67 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 69 66 20 28 24 70 72 69 6e few.warnings</info>');.if.($prin
30a80 74 53 63 68 65 6d 61 55 72 6c 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c tSchemaUrl).{.$io->writeError('<
30aa0 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e warning>See.https://getcomposer.
30ac0 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 org/doc/04-schema.md.for.details
30ae0 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 20 .on.the.schema</warning>');.}.}.
30b00 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 elseif.(!$errors).{.$io->writeEr
30b20 72 6f 72 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 20 69 73 20 76 61 6c 69 ror('<info>'...$name...'.is.vali
30b40 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 d.for.simple.usage.with.composer
30b60 20 62 75 74 20 68 61 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 .but.has</info>');.$io->writeErr
30b80 6f 72 28 27 3c 69 6e 66 6f 3e 73 74 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 74 20 6d 61 6b or('<info>strict.errors.that.mak
30ba0 65 20 69 74 20 75 6e 61 62 6c 65 20 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 20 61 73 20 61 e.it.unable.to.be.published.as.a
30bc0 20 70 61 63 6b 61 67 65 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 69 66 20 28 24 70 72 69 6e 74 53 63 .package:</info>');.if.($printSc
30be0 68 65 6d 61 55 72 6c 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 hemaUrl).{.$io->writeError('<war
30c00 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 ning>See.https://getcomposer.org
30c20 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e /doc/04-schema.md.for.details.on
30c40 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 .the.schema</warning>');.}.}.els
30c60 65 20 7b 0a 24 69 6f 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 e.{.$io->writeError('<error>'...
30c80 24 6e 61 6d 65 20 2e 20 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 $name...'.is.invalid,.the.follow
30ca0 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 75 6e 64 3a 3c ing.errors/warnings.were.found:<
30cc0 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 63 68 65 63 6b 50 75 62 6c 69 73 /error>');.}....if.($checkPublis
30ce0 68 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f h).{.$errors.=.array_merge($erro
30d00 72 73 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 77 rs,.$publishErrors);.}.else.{.$w
30d20 61 72 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 arnings.=.array_merge($warnings,
30d40 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 63 68 65 63 .$publishErrors);.}....if.($chec
30d60 6b 4c 6f 63 6b 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 kLock).{.$errors.=.array_merge($
30d80 65 72 72 6f 72 73 2c 20 24 6c 6f 63 6b 45 72 72 6f 72 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 errors,.$lockErrors);.}.else.{.$
30da0 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 77 61 72 6e 69 6e 67 73 warnings.=.array_merge($warnings
30dc0 2c 20 24 6c 6f 63 6b 45 72 72 6f 72 73 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 ,.$lockErrors);.}..$messages.=.a
30de0 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
30e00 6e 67 27 20 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 ng'.=>.$warnings,.);..foreach.($
30e20 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 messages.as.$style.=>.$msgs).{.f
30e40 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 69 6f 2d 3e 77 72 oreach.($msgs.as.$msg).{.$io->wr
30e60 69 74 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 iteError('<'...$style...'>'...$m
30e80 73 67 20 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b 0a 7d 0a 7d 0a 7d sg...'</'...$style...'>');.}.}.}
30ea0 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
30ec0 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 6b 61 67 65 5c 52 6f mposer;..use.Composer\Package\Ro
30ee0 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 otPackageInterface;.use.Composer
30f00 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 6f 73 65 72 5c 52 65 \Package\Locker;.use.Composer\Re
30f20 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 pository\RepositoryManager;.use.
30f40 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d Composer\Installer\InstallationM
30f60 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 69 6e 5c 50 6c 75 67 anager;.use.Composer\Plugin\Plug
30f80 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 6f 77 6e 6c 6f 61 64 inManager;.use.Composer\Download
30fa0 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 65 72 er\DownloadManager;.use.Composer
30fc0 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 65 72 \EventDispatcher\EventDispatcher
30fe0 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 75 74 6f 6c 6f 61 64 ;.use.Composer\Autoload\Autoload
31000 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 6d 70 6f 73 65 72 0a Generator;.......class.Composer.
31020 7b 0a 63 6f 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 66 65 65 66 64 35 31 35 36 35 62 62 38 {.const.VERSION.=.'feefd51565bb8
31040 65 61 64 33 38 65 33 35 35 62 39 65 35 30 31 36 38 35 62 35 32 35 34 64 30 64 35 27 3b 0a 63 6f ead38e355b9e501685b5254d0d5';.co
31060 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 3d 20 27 31 2e 30 2d nst.BRANCH_ALIAS_VERSION.=.'1.0-
31080 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 3d 20 27 32 30 31 35 dev';.const.RELEASE_DATE.=.'2015
310a0 2d 31 32 2d 30 33 20 31 36 3a 31 37 3a 35 38 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 -12-03.16:17:58';.....private.$p
310c0 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a ackage;.....private.$locker;....
310e0 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a .private.$repositoryManager;....
31100 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 .private.$downloadManager;.....p
31120 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a rivate.$installationManager;....
31140 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 0a 0a 0a 0a 70 72 69 .private.$pluginManager;.....pri
31160 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 20 24 65 76 65 6e 74 vate.$config;.....private.$event
31180 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 61 75 74 6f 6c 6f 61 Dispatcher;.....private.$autoloa
311a0 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 75 6e 63 74 69 6f 6e dGenerator;......public.function
311c0 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 74 65 72 66 61 63 65 .setPackage(RootPackageInterface
311e0 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 67 65 20 3d 20 24 70 .$package).{.$this->package.=.$p
31200 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ackage;.}.....public.function.ge
31220 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 63 6b 61 tPackage().{.return.$this->packa
31240 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 73 65 74 43 6f 6e ge;.}.....public.function.setCon
31260 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 6f 6e fig(Config.$config).{.$this->con
31280 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 69 63 20 66 75 6e 63 fig.=.$config;.}.....public.func
312a0 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 20 24 74 68 69 73 2d tion.getConfig().{.return.$this-
312c0 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 63 74 69 6f 6e 20 73 >config;.}.....public.function.s
312e0 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 7b 0a 24 74 68 69 73 etLocker(Locker.$locker).{.$this
31300 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 0a 70 75 62 6c 69 63 ->locker.=.$locker;.}.....public
31320 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 65 74 75 72 6e 20 24 .function.getLocker().{.return.$
31340 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 63 20 66 75 6e 63 74 this->locker;.}.....public.funct
31360 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 52 65 70 6f 73 69 74 ion.setRepositoryManager(Reposit
31380 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 68 69 73 2d 3e 72 65 oryManager.$manager).{.$this->re
313a0 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 72 3b 0a 7d 0a 0a 0a positoryManager.=.$manager;.}...
313c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d ..public.function.getRepositoryM
313e0 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 72 65 70 6f 73 69 74 anager().{.return.$this->reposit
31400 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 66 75 6e 63 74 69 6f oryManager;.}.....public.functio
31420 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 6c 6f 61 64 4d 61 6e n.setDownloadManager(DownloadMan
31440 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 6f 77 6e 6c 6f 61 64 ager.$manager).{.$this->download
31460 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Manager.=.$manager;.}.....public
31480 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 67 65 72 28 29 0a 7b .function.getDownloadManager().{
314a0 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 6e 61 67 65 72 3b 0a .return.$this->downloadManager;.
314c0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c }.....public.function.setInstall
314e0 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 4d 61 6e 61 67 65 72 ationManager(InstallationManager
31500 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 6c 6c 61 74 69 6f 6e .$manager).{.$this->installation
31520 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Manager.=.$manager;.}.....public
31540 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 4d 61 6e 61 67 65 72 .function.getInstallationManager
31560 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d ().{.return.$this->installationM
31580 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 anager;.}.....public.function.se
315a0 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 67 65 72 20 24 6d 61 tPluginManager(PluginManager.$ma
315c0 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 61 67 65 72 20 3d 20 nager).{.$this->pluginManager.=.
315e0 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $manager;.}.....public.function.
31600 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 72 6e 20 24 74 68 69 getPluginManager().{.return.$thi
31620 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 75 62 6c 69 63 20 66 s->pluginManager;.}.....public.f
31640 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 72 28 45 76 65 6e 74 unction.setEventDispatcher(Event
31660 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 29 0a 7b 0a 24 Dispatcher.$eventDispatcher).{.$
31680 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 this->eventDispatcher.=.$eventDi
316a0 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 spatcher;.}.....public.function.
316c0 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 74 75 72 6e 20 24 74 getEventDispatcher().{.return.$t
316e0 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 0a 0a 0a 70 75 62 6c his->eventDispatcher;.}.....publ
31700 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 6e 65 72 61 74 6f 72 ic.function.setAutoloadGenerator
31720 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 6f 61 64 47 65 6e 65 (AutoloadGenerator.$autoloadGene
31740 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 65 6e 65 72 61 74 6f rator).{.$this->autoloadGenerato
31760 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 r.=.$autoloadGenerator;.}.....pu
31780 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 47 65 6e 65 72 61 74 blic.function.getAutoloadGenerat
317a0 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 6c 6f 61 64 47 65 6e or().{.return.$this->autoloadGen
317c0 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 0a 0a 0a 0a 6e 61 6d erator;.}.}.<?php............nam
317e0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 espace.Composer;..use.Composer\C
31800 6f 6e 66 69 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a onfig\ConfigSourceInterface;....
31820 0a 63 6c 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 .class.Config.{.const.RELATIVE_P
31840 41 54 48 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 ATHS.=.1;..public.static.$defaul
31860 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 tConfig.=.array(.'process-timeou
31880 74 27 20 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 t'.=>.300,.'use-include-path'.=>
318a0 20 66 61 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 .false,.'preferred-install'.=>.'
318c0 61 75 74 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 auto',.'notify-on-install'.=>.tr
318e0 75 65 2c 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 ue,.'github-protocols'.=>.array(
31900 27 67 69 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 'git',.'https',.'ssh'),.'vendor-
31920 64 69 72 27 20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 27 dir'.=>.'vendor',.'bin-dir'.=>.'
31940 7b 24 76 65 6e 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 {$vendor-dir}/bin',.'cache-dir'.
31960 3d 3e 20 27 7b 24 68 6f 6d 65 7d 2f 63 61 63 68 65 27 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 =>.'{$home}/cache',.'cache-files
31980 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 27 2c 0a 27 -dir'.=>.'{$cache-dir}/files',.'
319a0 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d cache-repo-dir'.=>.'{$cache-dir}
319c0 2f 72 65 70 6f 27 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 /repo',.'cache-vcs-dir'.=>.'{$ca
319e0 63 68 65 2d 64 69 72 7d 2f 76 63 73 27 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 31 35 che-dir}/vcs',.'cache-ttl'.=>.15
31a00 35 35 32 30 30 30 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 6e 552000,...'cache-files-ttl'.=>.n
31a20 75 6c 6c 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 20 3d 3e 20 ull,...'cache-files-maxsize'.=>.
31a40 27 33 30 30 4d 69 42 27 2c 0a 27 62 69 6e 2d 63 6f 6d 70 61 74 27 20 3d 3e 20 27 61 75 74 6f 27 '300MiB',.'bin-compat'.=>.'auto'
31a60 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 65 2c 0a 27 61 ,.'discard-changes'.=>.false,.'a
31a80 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 27 6f 70 74 69 utoloader-suffix'.=>.null,.'opti
31aa0 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 27 63 6c 61 73 mize-autoloader'.=>.false,.'clas
31ac0 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 65 2c 0a 27 70 smap-authoritative'.=>.false,.'p
31ae0 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 0a 27 67 69 74 repend-autoloader'.=>.true,.'git
31b00 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 75 62 2e 63 6f hub-domains'.=>.array('github.co
31b20 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 65 27 20 3d 3e m'),.'github-expose-hostname'.=>
31b40 20 74 72 75 65 2c 0a 27 67 69 74 6c 61 62 2d 64 6f 6d 61 69 6e 73 27 20 3d 3e 20 61 72 72 61 79 .true,.'gitlab-domains'.=>.array
31b60 28 27 67 69 74 6c 61 62 2e 63 6f 6d 27 29 2c 0a 27 73 74 6f 72 65 2d 61 75 74 68 73 27 20 3d 3e ('gitlab.com'),.'store-auths'.=>
31b80 20 27 70 72 6f 6d 70 74 27 2c 0a 27 70 6c 61 74 66 6f 72 6d 27 20 3d 3e 20 61 72 72 61 79 28 29 .'prompt',.'platform'.=>.array()
31ba0 2c 0a 27 61 72 63 68 69 76 65 2d 66 6f 72 6d 61 74 27 20 3d 3e 20 27 74 61 72 27 2c 0a 27 61 72 ,.'archive-format'.=>.'tar',.'ar
31bc0 63 68 69 76 65 2d 64 69 72 27 20 3d 3e 20 27 2e 27 2c 0a 0a 20 0a 20 0a 20 0a 20 29 3b 0a 0a 70 chive-dir'.=>.'.',.........);..p
31be0 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 ublic.static.$defaultRepositorie
31c00 73 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 69 73 74 27 20 3d 3e 20 61 72 72 61 79 28 s.=.array(.'packagist'.=>.array(
31c20 0a 27 74 79 70 65 27 20 3d 3e 20 27 63 6f 6d 70 6f 73 65 72 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 .'type'.=>.'composer',.'url'.=>.
31c40 27 68 74 74 70 73 3f 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 0a 27 61 6c 6c 6f 77 'https?://packagist.org',.'allow
31c60 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 20 3d 3e 20 74 72 75 65 2c 0a 29 2c 0a 29 3b 0a 0a _ssl_downgrade'.=>.true,.),.);..
31c80 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 62 61 73 65 44 69 private.$config;.private.$baseDi
31ca0 72 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 61 74 r;.private.$repositories;.privat
31cc0 65 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 68 43 6f e.$configSource;.private.$authCo
31ce0 6e 66 69 67 53 6f 75 72 63 65 3b 0a 70 72 69 76 61 74 65 20 24 75 73 65 45 6e 76 69 72 6f 6e 6d nfigSource;.private.$useEnvironm
31d00 65 6e 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ent;.....public.function.__const
31d20 72 75 63 74 28 24 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 3d 20 74 72 75 65 2c 20 24 62 61 ruct($useEnvironment.=.true,.$ba
31d40 73 65 44 69 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 seDir.=.null).{...$this->config.
31d60 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d =.static::$defaultConfig;.$this-
31d80 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 >repositories.=.static::$default
31da0 52 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 24 74 68 69 73 2d 3e 75 73 65 45 6e 76 69 72 6f 6e 6d Repositories;.$this->useEnvironm
31dc0 65 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 24 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 3b 0a 24 74 ent.=.(bool).$useEnvironment;.$t
31de0 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 20 24 62 61 73 65 44 69 72 3b 0a 7d 0a 0a 70 75 62 6c his->baseDir.=.$baseDir;.}..publ
31e00 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 ic.function.setConfigSource(Conf
31e20 69 67 53 6f 75 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 igSourceInterface.$source).{.$th
31e40 69 73 2d 3e 63 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 is->configSource.=.$source;.}..p
31e60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 ublic.function.getConfigSource()
31e80 0a 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 3b 0a 7d .{.return.$this->configSource;.}
31ea0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 43 6f 6e 66 69 67 53 ..public.function.setAuthConfigS
31ec0 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 ource(ConfigSourceInterface.$sou
31ee0 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d rce).{.$this->authConfigSource.=
31f00 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 67 65 74 .$source;.}..public.function.get
31f20 41 75 74 68 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 AuthConfigSource().{.return.$thi
31f40 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 s->authConfigSource;.}.......pub
31f60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 28 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 lic.function.merge($config).{...
31f80 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 20 26 26 if.(!empty($config['config']).&&
31fa0 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 29 20 7b 0a .is_array($config['config'])).{.
31fc0 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 20 61 73 20 24 6b foreach.($config['config'].as.$k
31fe0 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c ey.=>.$val).{.if.(in_array($key,
32000 20 61 72 72 61 79 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 2c 20 27 67 69 74 6c 61 62 2d 6f .array('github-oauth',.'gitlab-o
32020 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 24 auth',.'http-basic')).&&.isset($
32040 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 6f this->config[$key])).{.$this->co
32060 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 3e nfig[$key].=.array_merge($this->
32080 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 74 config[$key],.$val);.}.else.{.$t
320a0 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 0a his->config[$key].=.$val;.}.}.}.
320c0 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 65 .if.(!empty($config['repositorie
320e0 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 69 s']).&&.is_array($config['reposi
32100 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 73 tories'])).{.$this->repositories
32120 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 6f .=.array_reverse($this->reposito
32140 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 72 ries,.true);.$newRepos.=.array_r
32160 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 20 everse($config['repositories'],.
32180 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 61 true);.foreach.($newRepos.as.$na
321a0 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 65 me.=>.$repository).{...if.(false
321c0 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 2d .===.$repository).{.unset($this-
321e0 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 3b >repositories[$name]);.continue;
32200 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 20 .}....if.(is_array($repository).
32220 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 66 &&.1.===.count($repository).&&.f
32240 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 7b alse.===.current($repository)).{
32260 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 24 .unset($this->repositories[key($
32280 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 66 repository)]);.continue;.}....if
322a0 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 69 .(is_int($name)).{.$this->reposi
322c0 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 7b tories[].=.$repository;.}.else.{
322e0 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 72 .$this->repositories[$name].=.$r
32300 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 69 epository;.}.}.$this->repositori
32320 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 69 es.=.array_reverse($this->reposi
32340 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 75 tories,.true);.}.}.....public.fu
32360 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 nction.getRepositories().{.retur
32380 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 0a n.$this->repositories;.}........
323a0 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 61 ..public.function.get($key,.$fla
323c0 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 27 gs.=.0).{.switch.($key).{.case.'
323e0 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 73 vendor-dir':.case.'bin-dir':.cas
32400 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 65 e.'process-timeout':.case.'cache
32420 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 63 -dir':.case.'cache-files-dir':.c
32440 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 68 ase.'cache-repo-dir':.case.'cach
32460 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 27 e-vcs-dir':...$env.=.'COMPOSER_'
32480 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 27 ...strtoupper(strtr($key,.'-',.'
324a0 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 65 _'));..$val.=.rtrim($this->proce
324c0 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 3f ss($this->getComposerEnv($env).?
324e0 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 20 :.$this->config[$key],.$flags),.
32500 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 28 '/\\');.$val.=.preg_replace('#^(
32520 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 27 \$HOME|~)(/|$)#',.rtrim(getenv('
32540 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 2c HOME').?:.getenv('USERPROFILE'),
32560 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 74 .'/\\')...'/',.$val);..if.(subst
32580 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 6e r($key,.-4).!==.'-dir').{.return
325a0 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 3a .$val;.}..return.($flags.&.self:
325c0 3a 52 45 4c 41 54 49 56 45 5f 50 41 54 48 53 20 3d 3d 20 73 65 6c 66 3a 3a 52 45 4c 41 54 49 56 :RELATIVE_PATHS.==.self::RELATIV
325e0 45 5f 50 41 54 48 53 29 20 3f 20 24 76 61 6c 20 3a 20 24 74 68 69 73 2d 3e 72 65 61 6c 70 61 74 E_PATHS).?.$val.:.$this->realpat
32600 68 28 24 76 61 6c 29 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 74 74 6c 27 3a 0a 72 65 74 75 h($val);..case.'cache-ttl':.retu
32620 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 63 rn.(int).$this->config[$key];..c
32640 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 0a 69 66 20 28 21 ase.'cache-files-maxsize':.if.(!
32660 70 72 65 67 5f 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 preg_match('/^\s*([0-9.]+)\s*(?:
32680 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 2f 69 27 2c 20 24 74 68 69 73 2d ([kmg])(?:i?b)?)?\s*$/i',.$this-
326a0 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f >config[$key],.$matches)).{.thro
326c0 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 22 43 6f 75 6c 64 20 w.new.\RuntimeException(."Could.
326e0 6e 6f 74 20 70 61 72 73 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 27 63 61 63 68 65 2d 66 69 not.parse.the.value.of.'cache-fi
32700 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 les-maxsize':.{$this->config[$ke
32720 79 5d 7d 22 0a 29 3b 0a 7d 0a 24 73 69 7a 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 69 y]}".);.}.$size.=.$matches[1];.i
32740 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 f.(isset($matches[2])).{.switch.
32760 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 63 61 73 65 (strtolower($matches[2])).{.case
32780 20 27 67 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 61 73 65 20 27 6d 27 3a .'g':.$size.*=.1024;...case.'m':
327a0 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 61 73 65 20 27 6b 27 3a 0a 24 73 69 7a .$size.*=.1024;...case.'k':.$siz
327c0 65 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 e.*=.1024;.break;.}.}..return.$s
327e0 69 7a 65 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 3a 0a 69 66 ize;..case.'cache-files-ttl':.if
32800 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a .(isset($this->config[$key])).{.
32820 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d return.(int).$this->config[$key]
32840 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b ;.}..return.(int).$this->config[
32860 27 63 61 63 68 65 2d 74 74 6c 27 5d 3b 0a 0a 63 61 73 65 20 27 68 6f 6d 65 27 3a 0a 72 65 74 75 'cache-ttl'];..case.'home':.retu
32880 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 24 74 68 69 73 2d 3e 63 rn.rtrim($this->process($this->c
328a0 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 66 6c 61 67 73 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 onfig[$key],.$flags),.'/\\');..c
328c0 61 73 65 20 27 62 69 6e 2d 63 6f 6d 70 61 74 27 3a 0a 24 76 61 6c 75 65 20 3d 20 24 74 68 69 73 ase.'bin-compat':.$value.=.$this
328e0 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 45 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 42 49 4e 5f 43 ->getComposerEnv('COMPOSER_BIN_C
32900 4f 4d 50 41 54 27 29 20 3f 3a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a OMPAT').?:.$this->config[$key];.
32920 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 75 65 2c 20 61 72 72 61 79 28 27 61 75 .if.(!in_array($value,.array('au
32940 74 6f 27 2c 20 27 66 75 6c 6c 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 to',.'full'))).{.throw.new.\Runt
32960 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 imeException(."Invalid.value.for
32980 20 27 62 69 6e 2d 63 6f 6d 70 61 74 27 3a 20 7b 24 76 61 6c 75 65 7d 2e 20 45 78 70 65 63 74 65 .'bin-compat':.{$value}..Expecte
329a0 64 20 61 75 74 6f 2c 20 66 75 6c 6c 22 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 d.auto,.full".);.}..return.$valu
329c0 65 3b 0a 0a 63 61 73 65 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 3a 0a 69 66 20 28 e;..case.'discard-changes':.if.(
329e0 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 45 6e 76 28 27 43 4f $env.=.$this->getComposerEnv('CO
32a00 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 27 29 29 20 7b 0a 69 66 20 28 MPOSER_DISCARD_CHANGES')).{.if.(
32a20 21 69 6e 5f 61 72 72 61 79 28 24 65 6e 76 2c 20 61 72 72 61 79 28 27 73 74 61 73 68 27 2c 20 27 !in_array($env,.array('stash',.'
32a40 74 72 75 65 27 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 true',.'false',.'1',.'0'),.true)
32a60 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(
32a80 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 44 49 53 ."Invalid.value.for.COMPOSER_DIS
32aa0 43 41 52 44 5f 43 48 41 4e 47 45 53 3a 20 7b 24 65 6e 76 7d 2e 20 45 78 70 65 63 74 65 64 20 31 CARD_CHANGES:.{$env}..Expected.1
32ac0 2c 20 30 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 68 22 0a 29 3b 0a 7d 0a ,.0,.true,.false.or.stash".);.}.
32ae0 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 65 6e 76 29 20 7b 0a 72 65 74 75 72 6e 20 27 if.('stash'.===.$env).{.return.'
32b00 73 74 61 73 68 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 65 6e 76 20 21 3d 3d 20 27 66 61 stash';.}....return.$env.!==.'fa
32b20 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 65 6e 76 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f lse'.&&.(bool).$env;.}..if.(!in_
32b40 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 61 72 72 61 79 array($this->config[$key],.array
32b60 28 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 27 73 74 61 73 68 27 29 2c 20 74 72 75 65 29 29 20 7b (true,.false,.'stash'),.true)).{
32b80 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 49 .throw.new.\RuntimeException(."I
32ba0 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 nvalid.value.for.'discard-change
32bc0 73 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 7d 2e 20 45 78 70 65 63 s':.{$this->config[$key]}..Expec
32be0 74 65 64 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 68 22 0a 29 3b 0a 7d 0a 0a ted.true,.false.or.stash".);.}..
32c00 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 63 61 73 return.$this->config[$key];..cas
32c20 65 20 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 3a 0a 69 66 20 28 72 65 73 65 74 28 e.'github-protocols':.if.(reset(
32c40 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 $this->config['github-protocols'
32c60 5d 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 ]).===.'http').{.throw.new.\Runt
32c80 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 68 74 74 70 20 70 72 6f 74 6f 63 6f 6c 20 imeException('The.http.protocol.
32ca0 66 6f 72 20 67 69 74 68 75 62 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 61 6e 79 6d for.github.is.not.available.anym
32cc0 6f 72 65 2c 20 75 70 64 61 74 65 20 79 6f 75 72 20 63 6f 6e 66 69 67 5c 27 73 20 67 69 74 68 75 ore,.update.your.config\'s.githu
32ce0 62 2d 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 22 68 74 74 70 73 22 2c 20 22 67 69 74 b-protocols.to.use."https",."git
32d00 22 20 6f 72 20 22 73 73 68 22 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 ".or."ssh"');.}..return.$this->c
32d20 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 69 66 20 28 21 69 73 73 65 onfig[$key];..default:.if.(!isse
32d40 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e t($this->config[$key])).{.return
32d60 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 .null;.}..return.$this->process(
32d80 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 3b 0a 7d 0a $this->config[$key],.$flags);.}.
32da0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 66 6c 61 67 73 20 3d 20 }..public.function.all($flags.=.
32dc0 30 29 0a 7b 0a 24 61 6c 6c 20 3d 20 61 72 72 61 79 28 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 0).{.$all.=.array(.'repositories
32de0 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 29 '.=>.$this->getRepositories(),.)
32e00 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 63 6f 6e ;.foreach.(array_keys($this->con
32e20 66 69 67 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 24 61 6c 6c 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 fig).as.$key).{.$all['config'][$
32e40 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6b 65 79 2c 20 24 66 6c 61 67 73 29 3b key].=.$this->get($key,.$flags);
32e60 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .}..return.$all;.}..public.funct
32e80 69 6f 6e 20 72 61 77 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 72 65 70 6f 73 ion.raw().{.return.array(.'repos
32ea0 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 72 69 itories'.=>.$this->getRepositori
32ec0 65 73 28 29 2c 0a 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c es(),.'config'.=>.$this->config,
32ee0 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 .);.}........public.function.has
32f00 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 ($key).{.return.array_key_exists
32f20 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ($key,.$this->config);.}........
32f40 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 28 24 76 61 6c 75 65 .private.function.process($value
32f60 2c 20 24 66 6c 61 67 73 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 3b 0a 0a 69 66 ,.$flags).{.$config.=.$this;..if
32f80 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 .(!is_string($value)).{.return.$
32fa0 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 value;.}..return.preg_replace_ca
32fc0 6c 6c 62 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 66 75 6e 63 74 69 6f 6e 20 llback('#\{\$(.+)\}#',.function.
32fe0 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 2c 20 24 66 6c 61 67 73 29 20 7b ($match).use.($config,.$flags).{
33000 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6d 61 74 63 68 5b 31 5d 2c 20 .return.$config->get($match[1],.
33020 24 66 6c 61 67 73 29 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $flags);.},.$value);.}..........
33040 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 private.function.realpath($path)
33060 0a 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 .{.if.(substr($path,.0,.1).===.'
33080 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a /'.||.substr($path,.1,.1).===.':
330a0 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 ').{.return.$path;.}..return.$th
330c0 69 73 2d 3e 62 61 73 65 44 69 72 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a is->baseDir...'/'...$path;.}....
330e0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f .......private.function.getCompo
33100 73 65 72 45 6e 76 28 24 76 61 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 45 6e 76 serEnv($var).{.if.($this->useEnv
33120 69 72 6f 6e 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 67 65 74 65 6e 76 28 24 76 61 72 29 3b ironment).{.return.getenv($var);
33140 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .}..return.false;.}.}.<?php.....
33160 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 66 69 67 .......namespace.Composer\Config
33180 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 ;........interface.ConfigSourceI
331a0 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e nterface.{.......public.function
331c0 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a .addRepository($name,.$config);.
331e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f ......public.function.removeRepo
33200 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e sitory($name);........public.fun
33220 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 ction.addConfigSetting($name,.$v
33240 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d alue);.......public.function.rem
33260 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a oveConfigSetting($name);........
33280 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 20 .public.function.addLink($type,.
332a0 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $name,.$value);........public.fu
332c0 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 3b nction.removeLink($type,.$name);
332e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 .......public.function.getName()
33300 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 ;.}.<?php............namespace.C
33320 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 omposer\Config;..use.Composer\Js
33340 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 73 6f 6e 5c 4a on\JsonFile;.use.Composer\Json\J
33360 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f sonManipulator;........class.Jso
33380 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 66 69 67 53 nConfigSource.implements.ConfigS
333a0 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c ourceInterface.{....private.$fil
333c0 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 75 74 68 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a e;.....private.$authConfig;.....
333e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a ...public.function.__construct(J
33400 73 6f 6e 46 69 6c 65 20 24 66 69 6c 65 2c 20 24 61 75 74 68 43 6f 6e 66 69 67 20 3d 20 66 61 6c sonFile.$file,.$authConfig.=.fal
33420 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 24 74 68 69 73 se).{.$this->file.=.$file;.$this
33440 2d 3e 61 75 74 68 43 6f 6e 66 69 67 20 3d 20 24 61 75 74 68 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a ->authConfig.=.$authConfig;.}...
33460 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
33480 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 3b 0a 7d 0a 0a turn.$this->file->getPath();.}..
334a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 ...public.function.addRepository
334c0 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 ($name,.$config).{.$this->manipu
334e0 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c lateJson('addRepository',.$name,
33500 20 24 63 6f 6e 66 69 67 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 .$config,.function.(&$config,.$r
33520 65 70 6f 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 72 65 70 epo,.$repoConfig).{.$config['rep
33540 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 ositories'][$repo].=.$repoConfig
33560 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f ;.});.}.....public.function.remo
33580 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e veRepository($name).{.$this->man
335a0 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 ipulateJson('removeRepository',.
335c0 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f $name,.function.(&$config,.$repo
335e0 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 ).{.unset($config['repositories'
33600 5d 5b 24 72 65 70 6f 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ][$repo]);.});.}.....public.func
33620 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 tion.addConfigSetting($name,.$va
33640 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 lue).{.$this->manipulateJson('ad
33660 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 dConfigSetting',.$name,.$value,.
33680 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 2c 20 24 76 61 6c 29 20 function.(&$config,.$key,.$val).
336a0 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 67 69 74 68 75 62 2d 6f 61 75 74 {.if.(preg_match('{^(github-oaut
336c0 68 7c 67 69 74 6c 61 62 2d 6f 61 75 74 68 7c 68 74 74 70 2d 62 61 73 69 63 7c 70 6c 61 74 66 6f h|gitlab-oauth|http-basic|platfo
336e0 72 6d 29 5c 2e 7d 27 2c 20 24 6b 65 79 29 29 20 7b 0a 6c 69 73 74 28 24 6b 65 79 2c 20 24 68 6f rm)\.}',.$key)).{.list($key,.$ho
33700 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6b 65 79 2c 20 32 29 3b 0a 69 66 20 st).=.explode('.',.$key,.2);.if.
33720 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 24 6b ($this->authConfig).{.$config[$k
33740 65 79 5d 5b 24 68 6f 73 74 5d 20 3d 20 24 76 61 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e ey][$host].=.$val;.}.else.{.$con
33760 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 20 3d 20 24 76 61 fig['config'][$key][$host].=.$va
33780 6c 3b 0a 7d 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 27 5d 5b l;.}.}.else.{.$config['config'][
337a0 24 6b 65 79 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $key].=.$val;.}.});.}.....public
337c0 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
337e0 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 ame).{.$this->manipulateJson('re
33800 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 moveConfigSetting',.$name,.funct
33820 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 70 72 65 67 5f ion.(&$config,.$key).{.if.(preg_
33840 6d 61 74 63 68 28 27 7b 5e 28 67 69 74 68 75 62 2d 6f 61 75 74 68 7c 67 69 74 6c 61 62 2d 6f 61 match('{^(github-oauth|gitlab-oa
33860 75 74 68 7c 68 74 74 70 2d 62 61 73 69 63 7c 70 6c 61 74 66 6f 72 6d 29 5c 2e 7d 27 2c 20 24 6b uth|http-basic|platform)\.}',.$k
33880 65 79 29 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 ey)).{.list($key,.$host).=.explo
338a0 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
338c0 68 43 6f 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 hConfig).{.unset($config[$key][$
338e0 68 6f 73 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 host]);.}.else.{.unset($config['
33900 63 6f 6e 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 config'][$key][$host]);.}.}.else
33920 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d .{.unset($config['config'][$key]
33940 29 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 61 );.}.});.}.....public.function.a
33960 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 ddLink($type,.$name,.$value).{.$
33980 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 4c 69 6e 6b 27 2c 20 this->manipulateJson('addLink',.
339a0 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 $type,.$name,.$value,.function.(
339c0 26 24 63 6f 6e 66 69 67 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 20 &$config,.$type,.$name,.$value).
339e0 7b 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 {.$config[$type][$name].=.$value
33a00 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f ;.});.}.....public.function.remo
33a20 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 veLink($type,.$name).{.$this->ma
33a40 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 27 2c 20 24 74 nipulateJson('removeSubNode',.$t
33a60 79 70 65 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 ype,.$name,.function.(&$config,.
33a80 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 74 $type,.$name).{.unset($config[$t
33aa0 79 70 65 5d 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ype][$name]);.});.}..protected.f
33ac0 75 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 24 6d 65 74 68 6f 64 2c 20 unction.manipulateJson($method,.
33ae0 24 61 72 67 73 2c 20 24 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 61 72 67 73 20 3d 20 66 75 6e 63 $args,.$fallback).{.$args.=.func
33b00 5f 67 65 74 5f 61 72 67 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 73 _get_args();...array_shift($args
33b20 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 61 72 67 73 29 3b );.$fallback.=.array_pop($args);
33b40 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 ..if.($this->file->exists()).{.$
33b60 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 74 68 contents.=.file_get_contents($th
33b80 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 is->file->getPath());.}.elseif.(
33ba0 24 74 68 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 $this->authConfig).{.$contents.=
33bc0 20 22 7b 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 ."{\n}\n";.}.else.{.$contents.=.
33be0 22 7b 5c 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 "{\n....\"config\":.{\n....}\n}\
33c00 6e 22 3b 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 n";.}..$manipulator.=.new.JsonMa
33c20 6e 69 70 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 nipulator($contents);..$newFile.
33c40 3d 20 21 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 =.!$this->file->exists();....if.
33c60 28 24 74 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 ($this->authConfig.&&.$method.==
33c80 3d 20 27 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 =.'addConfigSetting').{.$method.
33ca0 3d 20 27 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 =.'addSubNode';.list($mainNode,.
33cc0 24 6e 61 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 $name).=.explode('.',.$args[0],.
33ce0 32 29 3b 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 2);.$args.=.array($mainNode,.$na
33d00 6d 65 2c 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 me,.$args[1]);.}.elseif.($this->
33d20 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 72 65 6d 6f 76 authConfig.&&.$method.===.'remov
33d40 65 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 72 65 eConfigSetting').{.$method.=.'re
33d60 6d 6f 76 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 moveSubNode';.list($mainNode,.$n
33d80 61 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 ame).=.explode('.',.$args[0],.2)
33da0 3b 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 ;.$args.=.array($mainNode,.$name
33dc0 29 3b 0a 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 );.}....if.(call_user_func_array
33de0 28 61 72 72 61 79 28 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 6d 65 74 68 6f 64 29 2c 20 24 (array($manipulator,.$method),.$
33e00 61 72 67 73 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 args)).{.file_put_contents($this
33e20 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d ->file->getPath(),.$manipulator-
33e40 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 6f 6e >getContents());.}.else.{...$con
33e60 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 24 74 68 69 73 fig.=.$this->file->read();.$this
33e80 2d 3e 61 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 ->arrayUnshiftRef($args,.$config
33ea0 29 3b 0a 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 );.call_user_func_array($fallbac
33ec0 6b 2c 20 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 k,.$args);.$this->file->write($c
33ee0 6f 6e 66 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 onfig);.}..if.($newFile).{.@chmo
33f00 64 28 24 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 d($this->file->getPath(),.0600);
33f20 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 72 .}.}.........private.function.ar
33f40 72 61 79 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 rayUnshiftRef(&$array,.&$value).
33f60 7b 0a 24 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 {.$return.=.array_unshift($array
33f80 2c 20 27 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 ,.'');.$array[0].=.&$value;..ret
33fa0 75 72 6e 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 urn.$return;.}.}.<?php..........
33fc0 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 6f 6c 65 3b 0a 0a 75 ..namespace.Composer\Console;..u
33fe0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 se.Symfony\Component\Console\App
34000 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 6f 6e 3b 0a 75 73 65 lication.as.BaseApplication;.use
34020 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
34040 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
34060 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
34080 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\
340a0 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 Output\ConsoleOutputInterface;.u
340c0 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
340e0 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
34100 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c \Component\Console\Output\Consol
34120 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 eOutput;.use.Symfony\Component\C
34140 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
34160 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 73 65 20 43 6f 6d 70 ;.use.Composer\Command;.use.Comp
34180 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 oser\Composer;.use.Composer\Fact
341a0 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 ory;.use.Composer\IO\IOInterface
341c0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 65 ;.use.Composer\IO\ConsoleIO;.use
341e0 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 .Composer\Json\JsonValidationExc
34200 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 eption;.use.Composer\Util\ErrorH
34220 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f andler;.........class.Applicatio
34240 6e 20 65 78 74 65 6e 64 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 n.extends.BaseApplication.{....p
34260 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 rotected.$composer;.....protecte
34280 64 20 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 67 6f 20 3d 20 27 d.$io;..private.static.$logo.=.'
342a0 20 20 20 5f 5f 5f 5f 5f 5f 0a 20 20 2f 20 5f 5f 5f 5f 2f 5f 5f 5f 20 20 5f 5f 5f 5f 20 5f 5f 5f ...______.../.____/___..____.___
342c0 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 0a 20 2f ..____..____..________.._____../
342e0 20 2f 20 20 20 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 60 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 ./.../.__.\/.__.`__.\/.__.\/.__.
34300 5c 2f 20 5f 5f 5f 2f 20 5f 20 5c 2f 20 5f 5f 5f 2f 0a 2f 20 2f 5f 5f 5f 2f 20 2f 5f 2f 20 2f 20 \/.___/._.\/.___/././___/./_/./.
34320 2f 20 2f 20 2f 20 2f 20 2f 20 2f 5f 2f 20 2f 20 2f 5f 2f 20 28 5f 5f 20 20 29 20 20 5f 5f 2f 20 /./././././_/././_/.(__..)..__/.
34340 2f 0a 5c 5f 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 2f 20 2f 5f 2f 20 2f 5f 2f 20 2e 5f 5f 5f 2f 5c 5f /.\____/\____/_/./_/./_/..___/\_
34360 5f 5f 5f 2f 5f 5f 5f 5f 2f 5c 5f 5f 5f 2f 5f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ___/____/\___/_/................
34380 20 20 20 20 20 2f 5f 2f 0a 27 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 ...../_/.';..public.function.__c
343a0 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 73 74 61 74 69 63 20 24 73 68 75 74 64 6f 77 6e 52 65 67 onstruct().{.static.$shutdownReg
343c0 69 73 74 65 72 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 istered.=.false;..if.(function_e
343e0 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f xists('ini_set').&&.extension_lo
34400 61 64 65 64 28 27 78 64 65 62 75 67 27 29 29 20 7b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 aded('xdebug')).{.ini_set('xdebu
34420 67 2e 73 68 6f 77 5f 65 78 63 65 70 74 69 6f 6e 5f 74 72 61 63 65 27 2c 20 66 61 6c 73 65 29 3b g.show_exception_trace',.false);
34440 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 2c 20 66 61 6c 73 65 29 .ini_set('xdebug.scream',.false)
34460 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 ;.}..if.(function_exists('date_d
34480 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 27 29 20 26 26 20 66 75 6e 63 74 69 6f efault_timezone_set').&&.functio
344a0 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f n_exists('date_default_timezone_
344c0 67 65 74 27 29 29 20 7b 0a 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 get')).{.date_default_timezone_s
344e0 65 74 28 40 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 28 29 29 et(@date_default_timezone_get())
34500 3b 0a 7d 0a 0a 69 66 20 28 21 24 73 68 75 74 64 6f 77 6e 52 65 67 69 73 74 65 72 65 64 29 20 7b ;.}..if.(!$shutdownRegistered).{
34520 0a 24 73 68 75 74 64 6f 77 6e 52 65 67 69 73 74 65 72 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 65 .$shutdownRegistered.=.true;..re
34540 67 69 73 74 65 72 5f 73 68 75 74 64 6f 77 6e 5f 66 75 6e 63 74 69 6f 6e 28 66 75 6e 63 74 69 6f gister_shutdown_function(functio
34560 6e 20 28 29 20 7b 0a 24 6c 61 73 74 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 n.().{.$lastError.=.error_get_la
34580 73 74 28 29 3b 0a 0a 69 66 20 28 24 6c 61 73 74 45 72 72 6f 72 20 26 26 20 24 6c 61 73 74 45 72 st();..if.($lastError.&&.$lastEr
345a0 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 20 26 26 0a 28 73 74 72 70 6f 73 28 24 6c 61 73 74 45 ror['message'].&&.(strpos($lastE
345c0 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 2c 20 27 41 6c 6c 6f 77 65 64 20 6d 65 6d 6f 72 79 rror['message'],.'Allowed.memory
345e0 27 29 20 21 3d 3d 20 66 61 6c 73 65 20 20 7c 7c 0a 73 74 72 70 6f 73 28 24 6c 61 73 74 45 72 72 ').!==.false..||.strpos($lastErr
34600 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 2c 20 27 65 78 63 65 65 64 65 64 20 6d 65 6d 6f 72 79 27 or['message'],.'exceeded.memory'
34620 29 20 21 3d 3d 20 66 61 6c 73 65 20 29 29 20 7b 0a 65 63 68 6f 20 22 5c 6e 22 2e 20 27 43 68 65 ).!==.false.)).{.echo."\n"..'Che
34640 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 63 2f 61 ck.https://getcomposer.org/doc/a
34660 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 6d 65 6d 6f 72 rticles/troubleshooting.md#memor
34680 79 2d 6c 69 6d 69 74 2d 65 72 72 6f 72 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 y-limit-errors.for.more.info.on.
346a0 68 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 20 65 72 72 6f how.to.handle.out.of.memory.erro
346c0 72 73 2e 27 3b 0a 7d 0a 7d 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 rs.';.}.});.}..parent::__constru
346e0 63 74 28 27 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e ct('Composer',.Composer::VERSION
34700 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 75 6e 28 49 6e 70 );.}.....public.function.run(Inp
34720 75 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 utInterface.$input.=.null,.Outpu
34740 74 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 tInterface.$output.=.null).{.if.
34760 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 73 74 79 6c 65 73 20 3d 20 46 (null.===.$output).{.$styles.=.F
34780 61 63 74 6f 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 actory::createAdditionalStyles()
347a0 3b 0a 24 66 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 ;.$formatter.=.new.OutputFormatt
347c0 65 72 28 6e 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 er(null,.$styles);.$output.=.new
347e0 20 43 6f 6e 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 .ConsoleOutput(ConsoleOutput::VE
34800 52 42 4f 53 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 RBOSITY_NORMAL,.null,.$formatter
34820 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c );.}..return.parent::run($input,
34840 20 24 6f 75 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 .$output);.}.....public.function
34860 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 .doRun(InputInterface.$input,.Ou
34880 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 74 68 69 73 2d 3e tputInterface.$output).{.$this->
348a0 69 6f 20 3d 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 io.=.new.ConsoleIO($input,.$outp
348c0 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 45 72 72 6f ut,.$this->getHelperSet());.Erro
348e0 72 48 61 6e 64 6c 65 72 3a 3a 72 65 67 69 73 74 65 72 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 rHandler::register($this->io);.$
34900 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 69 66 20 28 50 48 50 5f 56 45 io.=.$this->getIO();..if.(PHP_VE
34920 52 53 49 4f 4e 5f 49 44 20 3c 20 35 30 33 30 32 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 RSION_ID.<.50302).{.$io->writeEr
34940 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 66 69 ror('<warning>Composer.only.offi
34960 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 61 62 cially.supports.PHP.5.3.2.and.ab
34980 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 75 6e ove,.you.will.most.likely.encoun
349a0 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 48 50 ter.problems.with.your.PHP.'.PHP
349c0 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 67 6c _VERSION.',.upgrading.is.strongl
349e0 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 0a 69 y.recommended.</warning>');.}..i
34a00 66 20 28 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 20 26 26 f.(extension_loaded('xdebug').&&
34a20 20 21 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 44 49 53 41 42 4c 45 5f 58 44 45 42 55 .!getenv('COMPOSER_DISABLE_XDEBU
34a40 47 5f 57 41 52 4e 27 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 G_WARN')).{.$io->writeError('<wa
34a60 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 77 rning>You.are.running.composer.w
34a80 69 74 68 20 78 64 65 62 75 67 20 65 6e 61 62 6c 65 64 2e 20 54 68 69 73 20 68 61 73 20 61 20 6d ith.xdebug.enabled..This.has.a.m
34aa0 61 6a 6f 72 20 69 6d 70 61 63 74 20 6f 6e 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e ajor.impact.on.runtime.performan
34ac0 63 65 2e 20 53 65 65 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 ce..See.https://getcomposer.org/
34ae0 78 64 65 62 75 67 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e xdebug</warning>');.}..if.(defin
34b00 65 64 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 29 29 ed('COMPOSER_DEV_WARNING_TIME'))
34b20 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 27 27 3b 0a 69 66 20 28 24 6e 61 6d 65 20 .{.$commandName.=.'';.if.($name.
34b40 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 29 =.$this->getCommandName($input))
34b60 20 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 66 .{.try.{.$commandName.=.$this->f
34b80 69 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 20 63 61 74 63 68 20 28 ind($name)->getName();.}.catch.(
34ba0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a \InvalidArgumentException.$e).{.
34bc0 7d 0a 7d 0a 69 66 20 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 21 3d 3d 20 27 73 65 6c 66 2d 75 }.}.if.($commandName.!==.'self-u
34be0 70 64 61 74 65 27 20 26 26 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 21 3d 3d 20 27 73 65 6c 66 pdate'.&&.$commandName.!==.'self
34c00 75 70 64 61 74 65 27 29 20 7b 0a 69 66 20 28 74 69 6d 65 28 29 20 3e 20 43 4f 4d 50 4f 53 45 52 update').{.if.(time().>.COMPOSER
34c20 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 _DEV_WARNING_TIME).{.$io->writeE
34c40 72 72 6f 72 28 73 70 72 69 6e 74 66 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 rror(sprintf('<warning>Warning:.
34c60 54 68 69 73 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 This.development.build.of.compos
34c80 65 72 20 69 73 20 6f 76 65 72 20 36 30 20 64 61 79 73 20 6f 6c 64 2e 20 49 74 20 69 73 20 72 65 er.is.over.60.days.old..It.is.re
34ca0 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 70 64 61 74 65 20 69 74 20 62 79 20 72 75 6e 6e 69 6e commended.to.update.it.by.runnin
34cc0 67 20 22 25 73 20 73 65 6c 66 2d 75 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 20 6c 61 g."%s.self-update".to.get.the.la
34ce0 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 5f 53 45 52 56 test.version.</warning>',.$_SERV
34d00 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 67 65 74 ER['PHP_SELF']));.}.}.}..if.(get
34d20 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 4e 4f 5f 49 4e 54 45 52 41 43 54 49 4f 4e 27 29 29 20 env('COMPOSER_NO_INTERACTION')).
34d40 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 66 61 6c 73 65 29 3b {.$input->setInteractive(false);
34d60 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 65 77 57 6f 72 6b 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 .}....if.($newWorkDir.=.$this->g
34d80 65 74 4e 65 77 57 6f 72 6b 69 6e 67 44 69 72 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 6f 6c 64 57 etNewWorkingDir($input)).{.$oldW
34da0 6f 72 6b 69 6e 67 44 69 72 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 6e 65 77 orkingDir.=.getcwd();.chdir($new
34dc0 57 6f 72 6b 44 69 72 29 3b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 20 3e 3d 20 WorkDir);.if.($io->isDebug().>=.
34de0 34 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 43 68 61 6e 67 65 64 20 43 57 4).{.$io->writeError('Changed.CW
34e00 44 20 74 6f 20 27 20 2e 20 67 65 74 63 77 64 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 66 69 6c 65 D.to.'...getcwd());.}.}....$file
34e20 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 3b 0a 69 .=.Factory::getComposerFile();.i
34e40 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 62 6c 65 f.(is_file($file).&&.is_readable
34e60 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 20 3d 20 ($file).&&.is_array($composer.=.
34e80 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 28 24 66 json_decode(file_get_contents($f
34ea0 69 6c 65 29 2c 20 74 72 75 65 29 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f ile),.true))).{.if.(isset($compo
34ec0 73 65 72 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 6d ser['scripts']).&&.is_array($com
34ee0 70 6f 73 65 72 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 poser['scripts'])).{.foreach.($c
34f00 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 24 73 63 72 69 70 74 20 3d 3e omposer['scripts'].as.$script.=>
34f20 20 24 64 75 6d 6d 79 29 20 7b 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 43 6f 6d 70 6f 73 65 .$dummy).{.if.(!defined('Compose
34f40 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 27 2e 73 74 72 5f 72 65 70 r\Script\ScriptEvents::'.str_rep
34f60 6c 61 63 65 28 27 2d 27 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 70 70 65 72 28 24 73 63 72 69 70 lace('-',.'_',.strtoupper($scrip
34f80 74 29 29 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 28 24 73 63 72 69 70 74 29 29 t)))).{.if.($this->has($script))
34fa0 20 7b 0a 24 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 41 20 73 .{.$io->writeError('<warning>A.s
34fc0 63 72 69 70 74 20 6e 61 6d 65 64 20 27 2e 24 73 63 72 69 70 74 2e 27 20 77 6f 75 6c 64 20 6f 76 cript.named.'.$script.'.would.ov
34fe0 65 72 72 69 64 65 20 61 20 6e 61 74 69 76 65 20 43 6f 6d 70 6f 73 65 72 20 66 75 6e 63 74 69 6f erride.a.native.Composer.functio
35000 6e 20 61 6e 64 20 68 61 73 20 62 65 65 6e 20 73 6b 69 70 70 65 64 3c 2f 77 61 72 6e 69 6e 67 3e n.and.has.been.skipped</warning>
35020 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d ');.}.else.{.$this->add(new.Comm
35040 61 6e 64 5c 53 63 72 69 70 74 41 6c 69 61 73 43 6f 6d 6d 61 6e 64 28 24 73 63 72 69 70 74 29 29 and\ScriptAliasCommand($script))
35060 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 ;.}.}.}.}.}..if.($input->hasPara
35080 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 29 29 20 7b 0a 24 73 74 61 meterOption('--profile')).{.$sta
350a0 72 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d rtTime.=.microtime(true);.$this-
350c0 3e 69 6f 2d 3e 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 >io->enableDebugging($startTime)
350e0 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e ;.}..$result.=.parent::doRun($in
35100 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 6c 64 57 6f put,.$output);..if.(isset($oldWo
35120 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 63 68 64 69 72 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 rkingDir)).{.chdir($oldWorkingDi
35140 72 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 72 74 54 69 6d 65 29 29 20 7b 0a r);.}..if.(isset($startTime)).{.
35160 24 69 6f 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 73 $io->writeError('<info>Memory.us
35180 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 20 age:.'.round(memory_get_usage().
351a0 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 72 /.1024./.1024,.2).'MB.(peak:.'.r
351c0 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 31 ound(memory_get_peak_usage()./.1
351e0 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 75 024./.1024,.2).'MB),.time:.'.rou
35200 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 2c nd(microtime(true).-.$startTime,
35220 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 0a .2).'s');.}..return.$result;.}..
35240 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 6b .....private.function.getNewWork
35260 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 0a ingDir(InputInterface.$input).{.
35280 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 74 $workingDir.=.$input->getParamet
352a0 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 20 erOption(array('--working-dir',.
352c0 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 69 '-d'));.if.(false.!==.$workingDi
352e0 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 72 r.&&.!is_dir($workingDir)).{.thr
35300 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
35320 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 2c 20 27 d.working.directory.specified,.'
35340 2e 24 77 6f 72 6b 69 6e 67 44 69 72 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 29 .$workingDir.'.does.not.exist.')
35360 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 70 ;.}..return.$workingDir;.}.....p
35380 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 24 ublic.function.renderException($
353a0 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 exception,.$output).{.$io.=.$thi
353c0 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 s->getIO();..try.{.$composer.=.$
353e0 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a this->getComposer(false,.true);.
35400 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 if.($composer).{.$config.=.$comp
35420 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 6d 69 6e 53 70 61 63 65 46 72 65 oser->getConfig();..$minSpaceFre
35440 65 20 3d 20 31 30 32 34 20 2a 20 31 30 32 34 3b 0a 69 66 20 28 28 28 24 64 66 20 3d 20 40 64 69 e.=.1024.*.1024;.if.((($df.=.@di
35460 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 67 65 sk_free_space($dir.=.$config->ge
35480 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 64 66 20 3c 20 24 t('home'))).!==.false.&&.$df.<.$
354a0 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 64 69 73 6b 5f 66 minSpaceFree).||.(($df.=.@disk_f
354c0 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 67 65 74 28 27 76 ree_space($dir.=.$config->get('v
354e0 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 20 24 64 66 20 3c endor-dir'))).!==.false.&&.$df.<
35500 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 64 69 73 6b .$minSpaceFree).||.(($df.=.@disk
35520 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f _free_space($dir.=.sys_get_temp_
35540 64 69 72 28 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 dir())).!==.false.&&.$df.<.$minS
35560 70 61 63 65 46 72 65 65 29 0a 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c paceFree).).{.$io->writeError('<
35580 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 2e 27 20 error>The.disk.hosting.'.$dir.'.
355a0 69 73 20 66 75 6c 6c 2c 20 74 68 69 73 20 6d 61 79 20 62 65 20 74 68 65 20 63 61 75 73 65 20 6f is.full,.this.may.be.the.cause.o
355c0 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 3c 2f 65 72 72 6f 72 f.the.following.exception</error
355e0 3e 27 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 >');.}.}.}.catch.(\Exception.$e)
35600 20 7b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 .{.}..if.(defined('PHP_WINDOWS_V
35620 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 ERSION_BUILD').&&.false.!==.strp
35640 6f 73 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 54 68 os($exception->getMessage(),.'Th
35660 65 20 73 79 73 74 65 6d 20 63 61 6e 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 70 61 74 68 20 73 70 e.system.cannot.find.the.path.sp
35680 65 63 69 66 69 65 64 27 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 ecified')).{.$io->writeError('<e
356a0 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 20 6d 61 79 rror>The.following.exception.may
356c0 20 62 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 .be.caused.by.a.stale.entry.in.y
356e0 6f 75 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 our.cmd.exe.AutoRun</error>');.$
35700 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 43 68 65 63 6b 20 68 74 74 io->writeError('<error>Check.htt
35720 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 63 6c 65 ps://getcomposer.org/doc/article
35740 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 2d 74 68 65 2d 73 79 73 74 65 6d s/troubleshooting.md#-the-system
35760 2d 63 61 6e 6e 6f 74 2d 66 69 6e 64 2d 74 68 65 2d 70 61 74 68 2d 73 70 65 63 69 66 69 65 64 2d -cannot-find-the-path-specified-
35780 77 69 6e 64 6f 77 73 2d 20 66 6f 72 20 64 65 74 61 69 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a windows-.for.details</error>');.
357a0 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 65 78 63 65 70 74 69 }..if.(false.!==.strpos($excepti
357c0 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 66 6f 72 6b 20 66 61 69 6c 65 64 20 2d on->getMessage(),.'fork.failed.-
357e0 20 43 61 6e 6e 6f 74 20 61 6c 6c 6f 63 61 74 65 20 6d 65 6d 6f 72 79 27 29 29 20 7b 0a 24 69 6f .Cannot.allocate.memory')).{.$io
35800 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 66 6f 6c 6c 6f 77 69 ->writeError('<error>The.followi
35820 6e 67 20 65 78 63 65 70 74 69 6f 6e 20 69 73 20 63 61 75 73 65 64 20 62 79 20 61 20 6c 61 63 6b ng.exception.is.caused.by.a.lack
35840 20 6f 66 20 6d 65 6d 6f 72 79 20 61 6e 64 20 6e 6f 74 20 68 61 76 69 6e 67 20 73 77 61 70 20 63 .of.memory.and.not.having.swap.c
35860 6f 6e 66 69 67 75 72 65 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 onfigured</error>');.$io->writeE
35880 72 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 rror('<error>Check.https://getco
358a0 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 mposer.org/doc/articles/troubles
358c0 68 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 hooting.md#proc-open-fork-failed
358e0 2d 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 -errors.for.details</error>');.}
35900 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 ..if.($output.instanceof.Console
35920 4f 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 OutputInterface).{.parent::rende
35940 72 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 2d 3e rException($exception,.$output->
35960 67 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 getErrorOutput());.}.else.{.pare
35980 6e 74 3a 3a 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 nt::renderException($exception,.
359a0 24 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 $output);.}.}........public.func
359c0 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 tion.getComposer($required.=.tru
359e0 65 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 e,.$disablePlugins.=.false).{.if
35a00 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 74 72 .(null.===.$this->composer).{.tr
35a20 79 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 y.{.$this->composer.=.Factory::c
35a40 72 65 61 74 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 reate($this->io,.null,.$disableP
35a60 6c 75 67 69 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 lugins);.}.catch.(\InvalidArgume
35a80 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 29 ntException.$e).{.if.($required)
35aa0 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 24 65 2d 3e 67 65 74 .{.$this->io->writeError($e->get
35ac0 4d 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 Message());.exit(1);.}.}.catch.(
35ae0 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 JsonValidationException.$e).{.$e
35b00 72 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 rrors.=.'.-.'...implode(PHP_EOL.
35b20 2e 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 ..'.-.',.$e->getErrors());.$mess
35b40 61 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 age.=.$e->getMessage()...':'...P
35b60 48 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 HP_EOL...$errors;.throw.new.Json
35b80 56 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 ValidationException($message);.}
35ba0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a .}..return.$this->composer;.}...
35bc0 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 65 72 28 ..public.function.resetComposer(
35be0 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 7d 0a 0a 0a ).{.$this->composer.=.null;.}...
35c00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 ..public.function.getIO().{.retu
35c20 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rn.$this->io;.}..public.function
35c40 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 67 6f 20 .getHelp().{.return.self::$logo.
35c60 2e 20 70 61 72 65 6e 74 3a 3a 67 65 74 48 65 6c 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 ..parent::getHelp();.}.....prote
35c80 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 cted.function.getDefaultCommands
35ca0 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 ().{.$commands.=.parent::getDefa
35cc0 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 ultCommands();.$commands[].=.new
35ce0 20 43 6f 6d 6d 61 6e 64 5c 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e .Command\AboutCommand();.$comman
35d00 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 ds[].=.new.Command\ConfigCommand
35d20 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 65 ();.$commands[].=.new.Command\De
35d40 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 pendsCommand();.$commands[].=.ne
35d60 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 69 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e w.Command\InitCommand();.$comman
35d80 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e ds[].=.new.Command\InstallComman
35da0 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 d();.$commands[].=.new.Command\C
35dc0 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 reateProjectCommand();.$commands
35de0 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 [].=.new.Command\UpdateCommand()
35e00 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 61 72 ;.$commands[].=.new.Command\Sear
35e20 63 68 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 chCommand();.$commands[].=.new.C
35e40 6f 6d 6d 61 6e 64 5c 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 ommand\ValidateCommand();.$comma
35e60 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 68 6f 77 43 6f 6d 6d 61 6e 64 28 nds[].=.new.Command\ShowCommand(
35e80 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 53 75 67 );.$commands[].=.new.Command\Sug
35ea0 67 65 73 74 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 gestsCommand();.$commands[].=.ne
35ec0 77 20 43 6f 6d 6d 61 6e 64 5c 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d w.Command\RequireCommand();.$com
35ee0 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 75 6d 70 41 75 74 6f 6c 6f mands[].=.new.Command\DumpAutolo
35f00 61 64 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 adCommand();.$commands[].=.new.C
35f20 6f 6d 6d 61 6e 64 5c 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 ommand\StatusCommand();.$command
35f40 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 s[].=.new.Command\ArchiveCommand
35f60 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 69 ();.$commands[].=.new.Command\Di
35f80 61 67 6e 6f 73 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 agnoseCommand();.$commands[].=.n
35fa0 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 ew.Command\RunScriptCommand();.$
35fc0 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 4c 69 63 65 6e 73 65 commands[].=.new.Command\License
35fe0 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 20 43 6f sCommand();.$commands[].=.new.Co
36000 6d 6d 61 6e 64 5c 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 mmand\GlobalCommand();.$commands
36020 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 6c 65 61 72 43 61 63 68 65 43 6f 6d 6d 61 [].=.new.Command\ClearCacheComma
36040 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c nd();.$commands[].=.new.Command\
36060 52 65 6d 6f 76 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 RemoveCommand();.$commands[].=.n
36080 65 77 20 43 6f 6d 6d 61 6e 64 5c 48 6f 6d 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 0a 69 66 20 28 27 ew.Command\HomeCommand();..if.('
360a0 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 2c 20 35 phar:'.===.substr(__FILE__,.0,.5
360c0 29 29 20 7b 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 )).{.$commands[].=.new.Command\S
360e0 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 elfUpdateCommand();.}..return.$c
36100 6f 6d 6d 61 6e 64 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 ommands;.}.....public.function.g
36120 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a etLongVersion().{.if.(Composer::
36140 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 45 52 53 49 4f 4e 29 20 7b 0a 72 65 74 75 72 6e 20 73 BRANCH_ALIAS_VERSION).{.return.s
36160 70 72 69 6e 74 66 28 0a 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e printf(.'<info>%s</info>.version
36180 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 20 28 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c .<comment>%s.(%s)</comment>.%s',
361a0 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 42 52 41 .$this->getName(),.Composer::BRA
361c0 4e 43 48 5f 41 4c 49 41 53 5f 56 45 52 53 49 4f 4e 2c 0a 24 74 68 69 73 2d 3e 67 65 74 56 65 72 NCH_ALIAS_VERSION,.$this->getVer
361e0 73 69 6f 6e 28 29 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 0a 29 sion(),.Composer::RELEASE_DATE.)
36200 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 4c 6f 6e 67 56 65 72 73 69 ;.}..return.parent::getLongVersi
36220 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 43 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 on()...'.'...Composer::RELEASE_D
36240 41 54 45 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 ATE;.}.....protected.function.ge
36260 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 24 64 65 66 tDefaultInputDefinition().{.$def
36280 69 6e 69 74 69 6f 6e 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 inition.=.parent::getDefaultInpu
362a0 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f tDefinition();.$definition->addO
362c0 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 ption(new.InputOption('--profile
362e0 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
36300 2c 20 27 44 69 73 70 6c 61 79 20 74 69 6d 69 6e 67 20 61 6e 64 20 6d 65 6d 6f 72 79 20 75 73 61 ,.'Display.timing.and.memory.usa
36320 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e ge.information'));.$definition->
36340 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 27 2d 2d 77 6f 72 addOption(new.InputOption('--wor
36360 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 king-dir',.'-d',.InputOption::VA
36380 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 LUE_REQUIRED,.'If.specified,.use
363a0 20 74 68 65 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 77 6f 72 6b 69 6e 67 20 .the.given.directory.as.working.
363c0 64 69 72 65 63 74 6f 72 79 2e 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 69 6e 69 74 69 directory.'));..return.$definiti
363e0 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 on;.}.}.<?php............namespa
36400 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e ce.Composer\Console;..use.Symfon
36420 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 y\Component\Console\Formatter\Ou
36440 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 74 6d 6c 4f 75 74 tputFormatter;.....class.HtmlOut
36460 70 75 74 46 6f 72 6d 61 74 74 65 72 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 putFormatter.extends.OutputForma
36480 74 74 65 72 0a 7b 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 tter.{.private.static.$available
364a0 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 33 30 20 3d 3e 20 ForegroundColors.=.array(.30.=>.
364c0 27 62 6c 61 63 6b 27 2c 0a 33 31 20 3d 3e 20 27 72 65 64 27 2c 0a 33 32 20 3d 3e 20 27 67 72 65 'black',.31.=>.'red',.32.=>.'gre
364e0 65 6e 27 2c 0a 33 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a 33 34 20 3d 3e 20 27 62 6c 75 65 en',.33.=>.'yellow',.34.=>.'blue
36500 27 2c 0a 33 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 2c 0a 33 36 20 3d 3e 20 27 63 79 61 6e 27 ',.35.=>.'magenta',.36.=>.'cyan'
36520 2c 0a 33 37 20 3d 3e 20 27 77 68 69 74 65 27 2c 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 ,.37.=>.'white',.);.private.stat
36540 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 6c 6f 72 73 20 3d 20 ic.$availableBackgroundColors.=.
36560 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 3d 3e 20 27 72 65 64 array(.40.=>.'black',.41.=>.'red
36580 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 79 65 6c 6c 6f 77 27 ',.42.=>.'green',.43.=>.'yellow'
365a0 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 67 65 6e 74 61 27 2c ,.44.=>.'blue',.45.=>.'magenta',
365c0 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 74 65 27 2c 0a 29 3b .46.=>.'cyan',.47.=>.'white',.);
365e0 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 4f 70 74 69 6f 6e .private.static.$availableOption
36600 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 3d 3e 20 27 75 6e s.=.array(.1.=>.'bold',.4.=>.'un
36620 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 62 6c 69 63 20 66 derscore',.......);.....public.f
36640 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 73 74 79 6c 65 unction.__construct(array.$style
36660 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 6f 6e 73 74 72 75 s.=.array()).{.parent::__constru
36680 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 69 63 20 66 75 6e ct(true,.$styles);.}..public.fun
366a0 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 66 6f 72 6d 61 74 ction.format($message).{.$format
366c0 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 61 67 65 29 3b 0a ted.=.parent::format($message);.
366e0 0a 24 63 6c 65 61 72 45 73 63 61 70 65 43 6f 64 65 73 20 3d 20 27 28 3f 3a 33 39 7c 34 39 7c 30 .$clearEscapeCodes.=.'(?:39|49|0
36700 7c 32 32 7c 32 34 7c 32 35 7c 32 37 7c 32 38 29 27 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f |22|24|25|27|28)';..return.preg_
36720 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 5c 30 33 33 5c 5b 28 5b 30 2d 39 3b 5d replace_callback("{\033\[([0-9;]
36740 2b 29 6d 28 2e 2a 3f 29 5c 30 33 33 5c 5b 28 3f 3a 22 2e 24 63 6c 65 61 72 45 73 63 61 70 65 43 +)m(.*?)\033\[(?:".$clearEscapeC
36760 6f 64 65 73 2e 22 3b 29 2a 3f 22 2e 24 63 6c 65 61 72 45 73 63 61 70 65 43 6f 64 65 73 2e 22 6d odes.";)*?".$clearEscapeCodes."m
36780 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 27 29 2c }s",.array($this,.'formatHtml'),
367a0 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 74 69 6f .$formatted);.}..private.functio
367c0 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 20 3d 20 n.formatHtml($matches).{.$out.=.
367e0 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 6c 6f 64 '<span.style="';.foreach.(explod
36800 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 20 7b 0a e(';',.$matches[1]).as.$code).{.
36820 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 65 67 72 if.(isset(self::$availableForegr
36840 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 20 27 63 oundColors[$code])).{.$out..=.'c
36860 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 6f 75 6e olor:'.self::$availableForegroun
36880 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 28 69 73 dColors[$code].';';.}.elseif.(is
368a0 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 64 43 6f set(self::$availableBackgroundCo
368c0 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 67 72 6f lors[$code])).{.$out..=.'backgro
368e0 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 61 63 6b und-color:'.self::$availableBack
36900 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 73 65 69 groundColors[$code].';';.}.elsei
36920 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 6f 6e 73 f.(isset(self::$availableOptions
36940 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 61 69 6c [$code])).{.switch.(self::$avail
36960 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 6f 6c 64 ableOptions[$code]).{.case.'bold
36980 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 27 3b 0a ':.$out..=.'font-weight:bold;';.
369a0 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 75 74 20 break;..case.'underscore':.$out.
369c0 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 3b 27 3b .=.'text-decoration:underline;';
369e0 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 3e 27 2e .break;.}.}.}..return.$out.'">'.
36a00 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 70 68 70 $matches[2].'</span>';.}.}.<?php
36a20 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
36a40 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 ependencyResolver;.......class.D
36a60 65 63 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 2c 20 5c ecisions.implements.\Iterator,.\
36a80 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 Countable.{.const.DECISION_LITER
36aa0 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 AL.=.0;.const.DECISION_REASON.=.
36ac0 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 1;..protected.$pool;.protected.$
36ae0 64 65 63 69 73 69 6f 6e 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e decisionMap;.protected.$decision
36b00 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Queue.=.array();..public.functio
36b20 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f n.__construct($pool).{.$this->po
36b40 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d ol.=.$pool;.$this->decisionMap.=
36b60 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 .array();.}..public.function.dec
36b80 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 77 68 79 29 0a 7b 0a 24 74 ide($literal,.$level,.$why).{.$t
36ba0 68 69 73 2d 3e 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 his->addDecision($literal,.$leve
36bc0 6c 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 61 72 72 l);.$this->decisionQueue[].=.arr
36be0 61 79 28 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 3e 20 24 6c ay(.self::DECISION_LITERAL.=>.$l
36c00 69 74 65 72 61 6c 2c 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 3e iteral,.self::DECISION_REASON.=>
36c20 20 24 77 68 79 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 .$why,.);.}..public.function.sat
36c40 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 isfy($literal).{.$packageId.=.ab
36c60 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 6c 69 74 65 72 61 6c 20 s($literal);..return.(.$literal.
36c80 3e 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b >.0.&&.isset($this->decisionMap[
36ca0 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d $packageId]).&&.$this->decisionM
36cc0 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c ap[$packageId].>.0.||.$literal.<
36ce0 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 .0.&&.isset($this->decisionMap[$
36d00 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 packageId]).&&.$this->decisionMa
36d20 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 p[$packageId].<.0.);.}..public.f
36d40 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 6c 69 63 74 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 unction.conflict($literal).{.$pa
36d60 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e ckageId.=.abs($literal);..return
36d80 20 28 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 .(.(isset($this->decisionMap[$pa
36da0 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[
36dc0 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3c 20 30 29 $packageId].>.0.&&.$literal.<.0)
36de0 20 7c 7c 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 .||.(isset($this->decisionMap[$p
36e00 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 ackageId]).&&.$this->decisionMap
36e20 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 [$packageId].<.0.&&.$literal.>.0
36e40 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 28 ).);.}..public.function.decided(
36e60 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 21 65 $literalOrPackageId).{.return.!e
36e80 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 mpty($this->decisionMap[abs($lit
36ea0 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 eralOrPackageId)]);.}..public.fu
36ec0 6e 63 74 69 6f 6e 20 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 nction.undecided($literalOrPacka
36ee0 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 geId).{.return.empty($this->deci
36f00 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 sionMap[abs($literalOrPackageId)
36f20 5d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 49 6e ]);.}..public.function.decidedIn
36f40 73 74 61 6c 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 stall($literalOrPackageId).{.$pa
36f60 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 ckageId.=.abs($literalOrPackageI
36f80 64 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f d);..return.isset($this->decisio
36fa0 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 nMap[$packageId]).&&.$this->deci
36fc0 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 3b 0a 7d 0a 0a 70 75 62 6c sionMap[$packageId].>.0;.}..publ
36fe0 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 ic.function.decisionLevel($liter
37000 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 alOrPackageId).{.$packageId.=.ab
37020 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 69 66 20 28 69 73 73 65 s($literalOrPackageId);.if.(isse
37040 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d t($this->decisionMap[$packageId]
37060 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 62 73 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d )).{.return.abs($this->decisionM
37080 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a ap[$packageId]);.}..return.0;.}.
370a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c .public.function.decisionRule($l
370c0 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 iteralOrPackageId).{.$packageId.
370e0 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 66 6f 72 =.abs($literalOrPackageId);..for
37100 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 each.($this->decisionQueue.as.$i
37120 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 .=>.$decision).{.if.($packageId.
37140 3d 3d 3d 20 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e ===.abs($decision[self::DECISION
37160 5f 4c 49 54 45 52 41 4c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 _LITERAL])).{.return.$decision[s
37180 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 elf::DECISION_REASON];.}.}..retu
371a0 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 rn.null;.}..public.function.atOf
371c0 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 fset($queueOffset).{.return.$thi
371e0 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a s->decisionQueue[$queueOffset];.
37200 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 }..public.function.validOffset($
37220 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 queueOffset).{.return.$queueOffs
37240 65 74 20 3e 3d 20 30 20 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 et.>=.0.&&.$queueOffset.<.count(
37260 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $this->decisionQueue);.}..public
37280 20 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.lastReason().{.return.
372a0 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 $this->decisionQueue[count($this
372c0 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 ->decisionQueue).-.1][self::DECI
372e0 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e SION_REASON];.}..public.function
37300 20 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 .lastLiteral().{.return.$this->d
37320 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 ecisionQueue[count($this->decisi
37340 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 onQueue).-.1][self::DECISION_LIT
37360 45 52 41 4c 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 ERAL];.}..public.function.reset(
37380 29 0a 7b 0a 77 68 69 6c 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 ).{.while.($decision.=.array_pop
373a0 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d ($this->decisionQueue)).{.$this-
373c0 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a >decisionMap[abs($decision[self:
373e0 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 :DECISION_LITERAL])].=.0;.}.}..p
37400 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 6f 66 ublic.function.resetToOffset($of
37420 66 73 65 74 29 0a 7b 0a 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 fset).{.while.(count($this->deci
37440 73 69 6f 6e 51 75 65 75 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 65 63 sionQueue).>.$offset.+.1).{.$dec
37460 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f ision.=.array_pop($this->decisio
37480 6e 51 75 65 75 65 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 nQueue);.$this->decisionMap[abs(
374a0 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c $decision[self::DECISION_LITERAL
374c0 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 ])].=.0;.}.}..public.function.re
374e0 76 65 72 74 4c 61 73 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b vertLast().{.$this->decisionMap[
37500 61 62 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a abs($this->lastLiteral())].=.0;.
37520 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b array_pop($this->decisionQueue);
37540 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 .}..public.function.count().{.re
37560 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 turn.count($this->decisionQueue)
37580 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a ;.}..public.function.rewind().{.
375a0 65 6e 64 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 end($this->decisionQueue);.}..pu
375c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.current().{.return
375e0 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a .current($this->decisionQueue);.
37600 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 }..public.function.key().{.retur
37620 6e 20 6b 65 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a n.key($this->decisionQueue);.}..
37640 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 public.function.next().{.return.
37660 70 72 65 76 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 prev($this->decisionQueue);.}..p
37680 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ublic.function.valid().{.return.
376a0 66 61 6c 73 65 20 21 3d 3d 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f false.!==.current($this->decisio
376c0 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6d nQueue);.}..public.function.isEm
376e0 70 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 pty().{.return.count($this->deci
37700 73 69 6f 6e 51 75 65 75 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 sionQueue).===.0;.}..protected.f
37720 75 6e 63 74 69 6f 6e 20 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c unction.addDecision($literal,.$l
37740 65 76 65 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 evel).{.$packageId.=.abs($litera
37760 6c 29 3b 0a 0a 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 l);..$previousDecision.=.isset($
37780 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 3f this->decisionMap[$packageId]).?
377a0 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 .$this->decisionMap[$packageId].
377c0 3a 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 21 3d :.null;.if.($previousDecision.!=
377e0 20 30 29 20 7b 0a 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 70 6f .0).{.$literalString.=.$this->po
37800 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 3b 0a 24 ol->literalToString($literal);.$
37820 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
37840 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c Package($literal);.throw.new.Sol
37860 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 64 65 63 69 verBugException(."Trying.to.deci
37880 64 65 20 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 6f 6e 20 6c 65 76 65 6c 20 24 6c 65 76 65 de.$literalString.on.level.$leve
378a0 6c 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 24 70 61 63 6b 61 67 65 20 77 61 73 20 70 72 65 76 l,.even.though.$package.was.prev
378c0 69 6f 75 73 6c 79 20 64 65 63 69 64 65 64 20 61 73 20 22 2e 28 69 6e 74 29 20 24 70 72 65 76 69 iously.decided.as.".(int).$previ
378e0 6f 75 73 44 65 63 69 73 69 6f 6e 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 ousDecision.".".);.}..if.($liter
37900 61 6c 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 al.>.0).{.$this->decisionMap[$pa
37920 63 6b 61 67 65 49 64 5d 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 ckageId].=.$level;.}.else.{.$thi
37940 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 2d 24 6c s->decisionMap[$packageId].=.-$l
37960 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d evel;.}.}.}.<?php............nam
37980 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 espace.Composer\DependencyResolv
379a0 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 er;..use.Composer\Package\Packag
379c0 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
379e0 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b \AliasPackage;.use.Composer\Pack
37a00 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 53 65 age\BasePackage;.use.Composer\Se
37a20 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a mver\Constraint\Constraint;.....
37a40 0a 63 6c 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 .class.DefaultPolicy.implements.
37a60 50 6f 6c 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 PolicyInterface.{.private.$prefe
37a80 72 53 74 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 rStable;.private.$preferLowest;.
37aa0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 72 .public.function.__construct($pr
37ac0 65 66 65 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 eferStable.=.false,.$preferLowes
37ae0 74 20 3d 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 t.=.false).{.$this->preferStable
37b00 20 3d 20 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 .=.$preferStable;.$this->preferL
37b20 6f 77 65 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 owest.=.$preferLowest;.}..public
37b40 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 .function.versionCompare(Package
37b60 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 Interface.$a,.PackageInterface.$
37b80 62 2c 20 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 b,.$operator).{.if.($this->prefe
37ba0 72 53 74 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 rStable.&&.($stabA.=.$a->getStab
37bc0 69 6c 69 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 ility()).!==.($stabB.=.$b->getSt
37be0 61 62 69 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 ability())).{.return.BasePackage
37c00 3a 3a 24 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 ::$stabilities[$stabA].<.BasePac
37c20 6b 61 67 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 kage::$stabilities[$stabB];.}..$
37c40 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 constraint.=.new.Constraint($ope
37c60 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 rator,.$b->getVersion());.$versi
37c80 6f 6e 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 61 2d 3e 67 65 on.=.new.Constraint('==',.$a->ge
37ca0 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 tVersion());..return.$constraint
37cc0 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 2c 20 74 72 75 65 29 3b ->matchSpecific($version,.true);
37ce0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 .}..public.function.findUpdatePa
37d00 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
37d20 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
37d40 65 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 70 61 e,.$mustMatchName.=.false).{.$pa
37d60 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 6f ckages.=.array();..foreach.($poo
37d80 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d l->whatProvides($package->getNam
37da0 65 28 29 2c 20 6e 75 6c 6c 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 29 20 61 73 20 24 63 e(),.null,.$mustMatchName).as.$c
37dc0 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 21 3d 3d 20 24 andidate).{.if.($candidate.!==.$
37de0 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 package).{.$packages[].=.$candid
37e00 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 ate;.}.}..return.$packages;.}..p
37e20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 28 50 6f 6f 6c 20 ublic.function.getPriority(Pool.
37e40 24 70 6f 6f 6c 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 $pool,.PackageInterface.$package
37e60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 ).{.return.$pool->getPriority($p
37e80 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a ackage->getRepository());.}.....
37ea0 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 65 64 50 61 public.function.selectPreferedPa
37ec0 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
37ee0 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 71 75 69 72 ledMap,.array.$literals,.$requir
37f00 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 74 72 69 67 67 65 72 5f 65 72 72 6f edPackage.=.null).{.trigger_erro
37f20 72 28 27 4d 65 74 68 6f 64 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 r('Method.selectPreferedPackages
37f40 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 61 6e 64 20 72 65 70 6c 61 63 65 64 20 62 79 20 73 .is.deprecated.and.replaced.by.s
37f60 65 6c 65 63 74 50 72 65 66 65 72 72 65 64 50 61 63 6b 61 67 65 73 2c 20 70 6c 65 61 73 65 20 75 electPreferredPackages,.please.u
37f80 70 64 61 74 65 20 79 6f 75 72 20 75 73 61 67 65 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 pdate.your.usage',.E_USER_DEPREC
37fa0 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 50 72 65 66 ATED);..return.$this->selectPref
37fc0 65 72 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d erredPackages($pool,.$installedM
37fe0 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 ap,.$literals,.$requiredPackage)
38000 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 ;.}..public.function.selectPrefe
38020 72 72 65 64 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 rredPackages(Pool.$pool,.array.$
38040 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 20 24 installedMap,.array.$literals,.$
38060 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 6b 61 requiredPackage.=.null).{.$packa
38080 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 6d 65 ges.=.$this->groupLiteralsByName
380a0 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 6c 65 PreferInstalled($pool,.$installe
380c0 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 61 63 dMap,.$literals);..foreach.($pac
380e0 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 20 3d kages.as.&$literals).{.$policy.=
38100 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 69 6f .$this;.usort($literals,.functio
38120 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 2c 20 n.($a,.$b).use.($policy,.$pool,.
38140 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 65 29 $installedMap,.$requiredPackage)
38160 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 6f .{.return.$policy->compareByPrio
38180 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 rityPreferInstalled($pool,.$inst
381a0 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 alledMap,.$pool->literalToPackag
381c0 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 e($a),.$pool->literalToPackage($
381e0 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 29 3b b),.$requiredPackage,.true);.});
38200 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 74 65 .}..foreach.($packages.as.&$lite
38220 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 6e 65 rals).{.$literals.=.$this->prune
38240 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f ToHighestPriorityOrInstalled($po
38260 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a ol,.$installedMap,.$literals);..
38280 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 42 65 73 74 56 65 $literals.=.$this->pruneToBestVe
382a0 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 rsion($pool,.$literals);..$liter
382c0 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 73 28 als.=.$this->pruneRemoteAliases(
382e0 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 64 20 $pool,.$literals);.}..$selected.
38300 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 6d 65 =.call_user_func_array('array_me
38320 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 6c 65 rge',.$packages);....usort($sele
38340 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 70 6f cted,.function.($a,.$b).use.($po
38360 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 65 71 licy,.$pool,.$installedMap,.$req
38380 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 2d 3e uiredPackage).{.return.$policy->
383a0 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 65 64 compareByPriorityPreferInstalled
383c0 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 6c 69 ($pool,.$installedMap,.$pool->li
383e0 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 65 72 teralToPackage($a),.$pool->liter
38400 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 61 67 alToPackage($b),.$requiredPackag
38420 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 70 72 e);.});..return.$selected;.}..pr
38440 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 42 79 otected.function.groupLiteralsBy
38460 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 2c 20 NamePreferInstalled(Pool.$pool,.
38480 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 29 0a array.$installedMap,.$literals).
384a0 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 {.$packages.=.array();.foreach.(
384c0 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 $literals.as.$literal).{.$packag
384e0 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 65 28 eName.=.$pool->literalToPackage(
38500 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 73 65 $literal)->getName();..if.(!isse
38520 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 24 70 t($packages[$packageName])).{.$p
38540 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 29 3b ackages[$packageName].=.array();
38560 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 73 28 .}..if.(isset($installedMap[abs(
38580 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 70 61 $literal)])).{.array_unshift($pa
385a0 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 29 3b ckages[$packageName],.$literal);
385c0 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 6d 65 .}.else.{.$packages[$packageName
385e0 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 61 63 ][].=.$literal;.}.}..return.$pac
38600 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 6f 6d kages;.}.....public.function.com
38620 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 50 6f pareByPriorityPreferInstalled(Po
38640 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 ol.$pool,.array.$installedMap,.P
38660 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 65 72 ackageInterface.$a,.PackageInter
38680 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 6c 6c face.$b,.$requiredPackage.=.null
386a0 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 20 28 ,.$ignoreReplace.=.false).{.if.(
386c0 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 74 52 $a->getRepository().===.$b->getR
386e0 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 6d 65 epository()).{...if.($a->getName
38700 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 73 65 ().===.$b->getName()).{.$aAliase
38720 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 3b 0a d.=.$a.instanceof.AliasPackage;.
38740 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 73 50 $bAliased.=.$b.instanceof.AliasP
38760 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 69 61 ackage;.if.($aAliased.&&.!$bAlia
38780 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 6c 69 sed).{.return.-1;...}.if.(!$aAli
387a0 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 20 0a ased.&&.$bAliased).{.return.1;..
387c0 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 20 69 .}.}..if.(!$ignoreReplace).{...i
387e0 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 72 65 f.($this->replaces($a,.$b)).{.re
38800 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 73 28 turn.1;...}.if.($this->replaces(
38820 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 20 69 $b,.$a)).{.return.-1;...}......i
38840 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 3d 3d f.($requiredPackage.&&.false.!==
38860 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 67 65 .($pos.=.strpos($requiredPackage
38880 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 75 62 ,.'/'))).{.$requiredVendor.=.sub
388a0 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 3b 0a str($requiredPackage,.0,.$pos);.
388c0 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 65 74 .$aIsSameVendor.=.substr($a->get
388e0 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 56 65 Name(),.0,.$pos).===.$requiredVe
38900 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 24 62 ndor;.$bIsSameVendor.=.substr($b
38920 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 75 69 ->getName(),.0,.$pos).===.$requi
38940 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 20 21 redVendor;..if.($bIsSameVendor.!
38960 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 49 73 ==.$aIsSameVendor).{.return.$aIs
38980 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 69 66 SameVendor.?.-1.:.1;.}.}.}....if
389a0 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 30 3b .($a->id.===.$b->id).{.return.0;
389c0 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 20 2d .}..return.($a->id.<.$b->id).?.-
389e0 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 4d 61 1.:.1;.}..if.(isset($installedMa
38a00 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 20 28 p[$a->id])).{.return.-1;.}..if.(
38a20 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 7b 0a isset($installedMap[$b->id])).{.
38a40 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 74 50 return.1;.}..return.($this->getP
38a60 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 74 50 riority($pool,.$a).>.$this->getP
38a80 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 7d 0a riority($pool,.$b)).?.-1.:.1;.}.
38aa0 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 72 65 ...........protected.function.re
38ac0 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 65 2c places(PackageInterface.$source,
38ae0 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 6f 72 .PackageInterface.$target).{.for
38b00 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 73 20 each.($source->getReplaces().as.
38b20 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().
38b40 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 72 65 ===.$target->getName()....).{.re
38b60 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a turn.true;.}.}..return.false;.}.
38b80 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 74 56 .protected.function.pruneToBestV
38ba0 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 7b 0a ersion(Pool.$pool,.$literals).{.
38bc0 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 74 20 $operator.=.$this->preferLowest.
38be0 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 72 72 ?.'<'.:.'>';.$bestLiterals.=.arr
38c00 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d ay($literals[0]);.$bestPackage.=
38c20 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 .$pool->literalToPackage($litera
38c40 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 ls[0]);.foreach.($literals.as.$i
38c60 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a .=>.$literal).{.if.(0.===.$i).{.
38c80 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c continue;.}..$package.=.$pool->l
38ca0 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.(
38cc0 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 $this->versionCompare($package,.
38ce0 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 65 73 $bestPackage,.$operator)).{.$bes
38d00 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 72 61 tPackage.=.$package;.$bestLitera
38d20 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 20 28 ls.=.array($literal);.}.elseif.(
38d40 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 $this->versionCompare($package,.
38d60 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 74 65 $bestPackage,.'==')).{.$bestLite
38d80 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 rals[].=.$literal;.}.}..return.$
38da0 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 66 75 bestLiterals;.}.....protected.fu
38dc0 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 nction.pruneToHighestPriorityOrI
38de0 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 nstalled(Pool.$pool,.array.$inst
38e00 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 73 65 alledMap,.array.$literals).{.$se
38e20 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e lected.=.array();..$priority.=.n
38e40 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 ull;..foreach.($literals.as.$lit
38e60 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 eral).{.$package.=.$pool->litera
38e80 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 lToPackage($literal);..if.(isset
38ea0 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 20 7b ($installedMap[$package->id])).{
38ec0 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 6e 75 .$selected[].=.$literal;.continu
38ee0 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 7b 0a e;.}..if.(null.===.$priority).{.
38f00 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 28 24 $priority.=.$this->getPriority($
38f20 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 3e 67 pool,.$package);.}..if.($this->g
38f40 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 20 24 etPriority($pool,.$package).!=.$
38f60 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 64 5b priority).{.break;.}..$selected[
38f80 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 74 65 ].=.$literal;.}..return.$selecte
38fa0 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 70 72 d;.}.......protected.function.pr
38fc0 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 72 72 uneRemoteAliases(Pool.$pool,.arr
38fe0 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 20 3d ay.$literals).{.$hasLocalAlias.=
39000 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 20 24 .false;..foreach.($literals.as.$
39020 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 74 literal).{.$package.=.$pool->lit
39040 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 70 eralToPackage($literal);..if.($p
39060 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 26 ackage.instanceof.AliasPackage.&
39080 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 29 &.$package->isRootPackageAlias()
390a0 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 61 6b ).{.$hasLocalAlias.=.true;.break
390c0 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 72 65 ;.}.}..if.(!$hasLocalAlias).{.re
390e0 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 20 61 turn.$literals;.}..$selected.=.a
39100 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 24 6c rray();.foreach.($literals.as.$l
39120 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
39140 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 70 61 ralToPackage($literal);..if.($pa
39160 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 26 26 ckage.instanceof.AliasPackage.&&
39180 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 29 29 .$package->isRootPackageAlias())
391a0 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 0a 0a .{.$selected[].=.$literal;.}.}..
391c0 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 0a 0a return.$selected;.}.}.<?php.....
391e0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 .......namespace.Composer\Depend
39200 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d encyResolver\Operation;..use.Com
39220 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;.
39240 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 ......class.InstallOperation.ext
39260 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 ends.SolverOperation.{.protected
39280 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$package;........public.functio
392a0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 n.__construct(PackageInterface.$
392c0 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e package,.$reason.=.null).{.paren
392e0 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d t::__construct($reason);..$this-
39300 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 >package.=.$package;.}.......pub
39320 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 lic.function.getPackage().{.retu
39340 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rn.$this->package;.}.......publi
39360 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getJobType().{.return
39380 20 27 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .'install';.}.....public.functio
393a0 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c n.__toString().{.return.'Install
393c0 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e ing.'.$this->package->getPrettyN
393e0 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 ame().'.('.$this->formatVersion(
39400 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a $this->package).')';.}.}.<?php..
39420 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
39440 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 20 endencyResolver\Operation;..use.
39460 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
39480 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 se.Composer\Package\PackageInter
394a0 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 face;.......class.MarkAliasInsta
394c0 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 lledOperation.extends.SolverOper
394e0 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 0a 0a 0a ation.{.protected.$package;.....
39500 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 41 ...public.function.__construct(A
39520 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 liasPackage.$package,.$reason.=.
39540 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 null).{.parent::__construct($rea
39560 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 70 61 63 6b 61 67 65 son);..$this->package.=.$package
39580 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 50 61 63 ;.}.......public.function.getPac
395a0 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 63 6b 61 67 65 3b 0a kage().{.return.$this->package;.
395c0 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 4a 6f 62 54 79 }.......public.function.getJobTy
395e0 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 pe().{.return.'markAliasInstalle
39600 64 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 d';.}.....public.function.__toSt
39620 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 ring().{.return.'Marking.'.$this
39640 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e ->package->getPrettyName().'.('.
39660 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b $this->formatVersion($this->pack
39680 61 67 65 29 2e 27 29 20 61 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 age).').as.installed,.alias.of.'
396a0 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 .$this->package->getAliasOf()->g
396c0 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 etPrettyName().'.('.$this->forma
396e0 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 tVersion($this->package->getAlia
39700 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a sOf()).')';.}.}.<?php...........
39720 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
39740 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c solver\Operation;..use.Composer\
39760 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 73 Package\AliasPackage;.use.Compos
39780 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a er\Package\PackageInterface;....
397a0 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 65 ...class.MarkAliasUninstalledOpe
397c0 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b ration.extends.SolverOperation.{
397e0 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .protected.$package;........publ
39800 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 63 ic.function.__construct(AliasPac
39820 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 7b kage.$package,.$reason.=.null).{
39840 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 0a .parent::__construct($reason);..
39860 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 0a $this->package.=.$package;.}....
39880 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 0a ...public.function.getPackage().
398a0 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 0a {.return.$this->package;.}......
398c0 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 0a .public.function.getJobType().{.
398e0 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 7d return.'markAliasUninstalled';.}
39900 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 28 .....public.function.__toString(
39920 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 63 ).{.return.'Marking.'.$this->pac
39940 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 kage->getPrettyName().'.('.$this
39960 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 2e ->formatVersion($this->package).
39980 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 74 ').as.uninstalled,.alias.of.'.$t
399a0 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 his->package->getAliasOf()->getP
399c0 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 rettyName().'.('.$this->formatVe
399e0 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 rsion($this->package->getAliasOf
39a00 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ()).')';.}.}.<?php............na
39a20 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
39a40 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 4f ver\Operation;.......interface.O
39a60 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 20 perationInterface.{......public.
39a80 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 62 function.getJobType();.......pub
39aa0 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 0a lic.function.getReason();.......
39ac0 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 0a public.function.__toString();.}.
39ae0 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
39b00 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e ser\DependencyResolver\Operation
39b20 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
39b40 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 20 53 nterface;.......abstract.class.S
39b60 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 70 65 72 61 74 olverOperation.implements.Operat
39b80 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e ionInterface.{.protected.$reason
39ba0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ;.......public.function.__constr
39bc0 75 63 74 28 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 61 uct($reason.=.null).{.$this->rea
39be0 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 son.=.$reason;.}.......public.fu
39c00 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 nction.getReason().{.return.$thi
39c20 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e s->reason;.}..protected.function
39c40 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 .formatVersion(PackageInterface.
39c60 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 $package).{.return.$package->get
39c80 46 75 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a FullPrettyVersion();.}.}.<?php..
39ca0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
39cc0 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 20 endencyResolver\Operation;..use.
39ce0 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
39d00 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f e;.......class.UninstallOperatio
39d20 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 n.extends.SolverOperation.{.prot
39d40 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ected.$package;........public.fu
39d60 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 nction.__construct(PackageInterf
39d80 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ace.$package,.$reason.=.null).{.
39da0 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 parent::__construct($reason);..$
39dc0 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 0a 0a this->package.=.$package;.}.....
39de0 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 0a 7b ..public.function.getPackage().{
39e00 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 0a 0a .return.$this->package;.}.......
39e20 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 0a 72 public.function.getJobType().{.r
39e40 65 74 75 72 6e 20 27 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 eturn.'uninstall';.}.....public.
39e60 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 function.__toString().{.return.'
39e80 55 6e 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 Uninstalling.'.$this->package->g
39ea0 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 etPrettyName().'.('.$this->forma
39ec0 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a tVersion($this->package).')';.}.
39ee0 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
39f00 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
39f20 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 on;..use.Composer\Package\Packag
39f40 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 4f 70 eInterface;.......class.UpdateOp
39f60 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.
39f80 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 70 72 6f {.protected.$initialPackage;.pro
39fa0 74 65 63 74 65 64 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 tected.$targetPackage;.........p
39fc0 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 61 63 6b 61 ublic.function.__construct(Packa
39fe0 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
3a000 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a erface.$target,.$reason.=.null).
3a020 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);.
3a040 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 69 6e 69 74 69 61 .$this->initialPackage.=.$initia
3a060 6c 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 20 3d 20 24 74 61 72 67 65 l;.$this->targetPackage.=.$targe
3a080 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 49 6e t;.}.......public.function.getIn
3a0a0 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 itialPackage().{.return.$this->i
3a0c0 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 nitialPackage;.}.......public.fu
3a0e0 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 nction.getTargetPackage().{.retu
3a100 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a rn.$this->targetPackage;.}......
3a120 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 0a .public.function.getJobType().{.
3a140 72 65 74 75 72 6e 20 27 75 70 64 61 74 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 return.'update';.}.....public.fu
3a160 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 70 nction.__toString().{.return.'Up
3a180 64 61 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 2d 3e dating.'.$this->initialPackage->
3a1a0 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d getPrettyName().'.('.$this->form
3a1c0 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 29 atVersion($this->initialPackage)
3a1e0 2e 27 29 20 74 6f 20 27 2e 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 2d 3e .').to.'..$this->targetPackage->
3a200 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 20 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 getPrettyName()..'.('.$this->for
3a220 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 29 matVersion($this->targetPackage)
3a240 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
3a260 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
3a280 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
3a2a0 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 69 63 79 49 6e nterface;.....interface.PolicyIn
3a2c0 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 65 72 73 69 6f terface.{.public.function.versio
3a2e0 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 61 2c 20 50 61 nCompare(PackageInterface.$a,.Pa
3a300 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 72 29 3b 0a 0a ckageInterface.$b,.$operator);..
3a320 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 63 6b 61 67 public.function.findUpdatePackag
3a340 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d es(Pool.$pool,.array.$installedM
3a360 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 65 29 3b 0a ap,.PackageInterface.$package);.
3a380 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 72 65 64 .public.function.selectPreferred
3a3a0 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 Packages(Pool.$pool,.array.$inst
3a3c0 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 3c 3f alledMap,.array.$literals);.}.<?
3a3e0 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
3a400 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f r\DependencyResolver;..use.Compo
3a420 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d ser\Package\BasePackage;.use.Com
3a440 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.
3a460 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 Composer\Semver\VersionParser;.u
3a480 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f se.Composer\Semver\Constraint\Co
3a4a0 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c nstraintInterface;.use.Composer\
3a4c0 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 Semver\Constraint\Constraint;.us
3a4e0 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 e.Composer\Semver\Constraint\Emp
3a500 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 tyConstraint;.use.Composer\Repos
3a520 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 itory\RepositoryInterface;.use.C
3a540 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f omposer\Repository\CompositeRepo
3a560 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 5c sitory;.use.Composer\Repository\
3a580 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ComposerRepository;.use.Composer
3a5a0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 \Repository\InstalledRepositoryI
3a5c0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nterface;.use.Composer\Repositor
3a5e0 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 6f 73 y\PlatformRepository;.use.Compos
3a600 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a er\Package\PackageInterface;....
3a620 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f 6f 6c 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 43 6f 75 6e 74 ....class.Pool.implements.\Count
3a640 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f able.{.const.MATCH_NAME.=.-1;.co
3a660 6e 73 74 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 nst.MATCH_NONE.=.0;.const.MATCH.
3a680 3d 20 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f =.1;.const.MATCH_PROVIDE.=.2;.co
3a6a0 6e 73 74 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 4d 41 54 nst.MATCH_REPLACE.=.3;.const.MAT
3a6c0 43 48 5f 46 49 4c 54 45 52 45 44 20 3d 20 34 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 CH_FILTERED.=.4;..protected.$rep
3a6e0 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ositories.=.array();.protected.$
3a700 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 providerRepos.=.array();.protect
3a720 65 64 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ed.$packages.=.array();.protecte
3a740 64 20 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 d.$packageByName.=.array();.prot
3a760 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d 65 20 3d 20 61 72 72 61 ected.$packageByExactName.=.arra
3a780 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c y();.protected.$acceptableStabil
3a7a0 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 ities;.protected.$stabilityFlags
3a7c0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 ;.protected.$versionParser;.prot
3a7e0 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a ected.$providerCache.=.array();.
3a800 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 protected.$filterRequires;.prote
3a820 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 6f 74 65 63 74 65 cted.$whitelist.=.null;.protecte
3a840 64 20 24 69 64 20 3d 20 31 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f d.$id.=.1;..public.function.__co
3a860 6e 73 74 72 75 63 74 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 nstruct($minimumStability.=.'sta
3a880 62 6c 65 27 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 ble',.array.$stabilityFlags.=.ar
3a8a0 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 20 3d 20 61 ray(),.array.$filterRequires.=.a
3a8c0 72 72 61 79 28 29 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 rray()).{.$this->versionParser.=
3a8e0 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 .new.VersionParser;.$this->accep
3a900 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 tableStabilities.=.array();.fore
3a920 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 20 61 ach.(BasePackage::$stabilities.a
3a940 73 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 s.$stability.=>.$value).{.if.($v
3a960 61 6c 75 65 20 3c 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 alue.<=.BasePackage::$stabilitie
3a980 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 s[$minimumStability]).{.$this->a
3a9a0 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d cceptableStabilities[$stability]
3a9c0 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 .=.$value;.}.}.$this->stabilityF
3a9e0 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 24 74 68 69 73 2d 3e 66 lags.=.$stabilityFlags;.$this->f
3aa00 69 6c 74 65 72 52 65 71 75 69 72 65 73 20 3d 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 3b ilterRequires.=.$filterRequires;
3aa20 0a 66 6f 72 65 61 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 .foreach.($filterRequires.as.$na
3aa40 6d 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 me.=>.$constraint).{.if.(preg_ma
3aa60 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
3aa80 5f 50 41 43 4b 41 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 _PACKAGE_REGEX,.$name)).{.unset(
3aaa0 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d $this->filterRequires[$name]);.}
3aac0 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 68 69 74 65 6c 69 .}.}..public.function.setWhiteli
3aae0 73 74 28 24 77 68 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 st($whitelist).{.$this->whitelis
3ab00 74 20 3d 20 24 77 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 t.=.$whitelist;.$this->providerC
3ab20 61 63 68 65 20 3d 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 ache.=.array();.}........public.
3ab40 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 function.addRepository(Repositor
3ab60 79 49 6e 74 65 72 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 yInterface.$repo,.$rootAliases.=
3ab80 20 61 72 72 61 79 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 .array()).{.if.($repo.instanceof
3aba0 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d .CompositeRepository).{.$repos.=
3abc0 20 24 72 65 70 6f 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 .$repo->getRepositories();.}.els
3abe0 65 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 0a 66 6f e.{.$repos.=.array($repo);.}..fo
3ac00 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d reach.($repos.as.$repo).{.$this-
3ac20 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 0a 24 65 78 65 6d 70 >repositories[].=.$repo;..$exemp
3ac40 74 20 3d 20 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 t.=.$repo.instanceof.PlatformRep
3ac60 6f 73 69 74 6f 72 79 20 7c 7c 20 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 ository.||.$repo.instanceof.Inst
3ac80 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 0a 69 66 20 28 24 alledRepositoryInterface;..if.($
3aca0 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f repo.instanceof.ComposerReposito
3acc0 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 24 ry.&&.$repo->hasProviders()).{.$
3ace0 74 68 69 73 2d 3e 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 this->providerRepos[].=.$repo;.$
3ad00 72 65 70 6f 2d 3e 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 repo->setRootAliases($rootAliase
3ad20 73 29 3b 0a 24 72 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 s);.$repo->resetPackageIds();.}.
3ad40 65 6c 73 65 20 7b 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 else.{.foreach.($repo->getPackag
3ad60 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 24 70 61 es().as.$package).{.$names.=.$pa
3ad80 63 6b 61 67 65 2d 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 ckage->getNames();.$stability.=.
3ada0 24 70 61 63 6b 61 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 $package->getStability();.if.($e
3adc0 78 65 6d 70 74 20 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 xempt.||.$this->isPackageAccepta
3ade0 62 6c 65 28 24 6e 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 ble($names,.$stability)).{.$pack
3ae00 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e age->setId($this->id++);.$this->
3ae20 70 61 63 6b 61 67 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 packages[].=.$package;.$this->pa
3ae40 63 6b 61 67 65 42 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 ckageByExactName[$package->getNa
3ae60 6d 65 28 29 5d 5b 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 me()][$package->id].=.$package;.
3ae80 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b .foreach.($names.as.$provided).{
3aea0 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d .$this->packageByName[$provided]
3aec0 5b 5d 20 3d 20 24 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 [].=.$package;.}....$name.=.$pac
3aee0 6b 61 67 65 2d 3e 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 kage->getName();.if.(isset($root
3af00 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 Aliases[$name][$package->getVers
3af20 69 6f 6e 28 29 5d 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 ion()])).{.$alias.=.$rootAliases
3af40 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 3b [$name][$package->getVersion()];
3af60 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 .if.($package.instanceof.AliasPa
3af80 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ckage).{.$package.=.$package->ge
3afa0 74 41 6c 69 61 73 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 tAliasOf();.}.$aliasPackage.=.ne
3afc0 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 5b w.AliasPackage($package,.$alias[
3afe0 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 'alias_normalized'],.$alias['ali
3b000 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 as']);.$aliasPackage->setRootPac
3b020 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e kageAlias(true);.$aliasPackage->
3b040 73 65 74 49 64 28 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 setId($this->id++);..$package->g
3b060 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 etRepository()->addPackage($alia
3b080 73 50 61 63 6b 61 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 sPackage);.$this->packages[].=.$
3b0a0 61 6c 69 61 73 50 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 aliasPackage;.$this->packageByEx
3b0c0 61 63 74 4e 61 6d 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 actName[$aliasPackage->getName()
3b0e0 5d 5b 24 61 6c 69 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 ][$aliasPackage->id].=.$aliasPac
3b100 6b 61 67 65 3b 0a 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 kage;..foreach.($aliasPackage->g
3b120 65 74 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 etNames().as.$name).{.$this->pac
3b140 6b 61 67 65 42 79 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 kageByName[$name][].=.$aliasPack
3b160 61 67 65 3b 0a 7d 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 age;.}.}.}.}.}.}.}..public.funct
3b180 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 ion.getPriority(RepositoryInterf
3b1a0 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 ace.$repo).{.$priority.=.array_s
3b1c0 65 61 72 63 68 28 24 72 65 70 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 earch($repo,.$this->repositories
3b1e0 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 ,.true);..if.(false.===.$priorit
3b200 79 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 y).{.throw.new.\RuntimeException
3b220 28 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 ("Could.not.determine.repository
3b240 20 70 72 69 6f 72 69 74 79 2e 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f .priority..The.repository.was.no
3b260 74 20 72 65 67 69 73 74 65 72 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a t.registered.in.the.pool.");.}..
3b280 72 65 74 75 72 6e 20 2d 24 70 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c return.-$priority;.}........publ
3b2a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 ic.function.packageById($id).{.r
3b2c0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 3b 0a eturn.$this->packages[$id.-.1];.
3b2e0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a }.....public.function.count().{.
3b300 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d return.count($this->packages);.}
3b320 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 77 68 61 74 ............public.function.what
3b340 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 Provides($name,.ConstraintInterf
3b360 61 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 ace.$constraint.=.null,.$mustMat
3b380 63 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 chName.=.false).{.$key.=.((int).
3b3a0 24 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 $mustMatchName).$constraint;.if.
3b3c0 28 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 (isset($this->providerCache[$nam
3b3e0 65 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 e][$key])).{.return.$this->provi
3b400 64 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 derCache[$name][$key];.}..return
3b420 20 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 .$this->providerCache[$name][$ke
3b440 79 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 y].=.$this->computeWhatProvides(
3b460 24 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 $name,.$constraint,.$mustMatchNa
3b480 6d 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 me);.}.....private.function.comp
3b4a0 75 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 uteWhatProvides($name,.$constrai
3b4c0 6e 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 nt,.$mustMatchName.=.false).{.$c
3b4e0 61 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 andidates.=.array();..foreach.($
3b500 74 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 this->providerRepos.as.$repo).{.
3b520 66 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 foreach.($repo->whatProvides($th
3b540 69 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 is,.$name).as.$candidate).{.$can
3b560 64 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 didates[].=.$candidate;.if.($can
3b580 64 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 didate->id.<.1).{.$candidate->se
3b5a0 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 65 tId($this->id++);.$this->package
3b5c0 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d s[$this->id.-.2].=.$candidate;.}
3b5e0 0a 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 .}.}..if.($mustMatchName).{.$can
3b600 64 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 didates.=.array_filter($candidat
3b620 65 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 es,.function.($candidate).use.($
3b640 6e 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 name).{.return.$candidate->getNa
3b660 6d 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 me().==.$name;.});.if.(isset($th
3b680 69 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 is->packageByExactName[$name])).
3b6a0 7b 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 {.$candidates.=.array_merge($can
3b6c0 64 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 didates,.$this->packageByExactNa
3b6e0 6d 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 me[$name]);.}.}.elseif.(isset($t
3b700 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 29 20 7b 0a 24 63 his->packageByName[$name])).{.$c
3b720 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 69 64 61 andidates.=.array_merge($candida
3b740 74 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 tes,.$this->packageByName[$name]
3b760 29 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 );.}..$matches.=.$provideMatches
3b780 20 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 .=.array();.$nameMatch.=.false;.
3b7a0 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 64 69 64 .foreach.($candidates.as.$candid
3b7c0 61 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 ate).{.$aliasOfCandidate.=.null;
3b7e0 0a 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 ......if.($candidate.instanceof.
3b800 41 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 AliasPackage).{.$aliasOfCandidat
3b820 65 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 e.=.$candidate->getAliasOf();.}.
3b840 0a 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 .if.($this->whitelist.!==.null.&
3b860 26 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 &.(.(!($candidate.instanceof.Ali
3b880 61 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 asPackage).&&.!isset($this->whit
3b8a0 65 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 elist[$candidate->id])).||.($can
3b8c0 64 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 didate.instanceof.AliasPackage.&
3b8e0 26 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 &.!isset($this->whitelist[$alias
3b900 4f 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 OfCandidate->id])).)).{.continue
3b920 3b 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 ;.}.switch.($this->match($candid
3b940 61 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 ate,.$name,.$constraint)).{.case
3b960 20 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 .self::MATCH_NONE:.break;..case.
3b980 73 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 self::MATCH_NAME:.$nameMatch.=.t
3b9a0 72 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 rue;.break;..case.self::MATCH:.$
3b9c0 6e 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 nameMatch.=.true;.$matches[].=.$
3b9e0 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 41 candidate;.break;..case.self::MA
3ba00 54 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 TCH_PROVIDE:.$provideMatches[].=
3ba20 20 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 .$candidate;.break;..case.self::
3ba40 4d 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 MATCH_REPLACE:.$matches[].=.$can
3ba60 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 43 48 didate;.break;..case.self::MATCH
3ba80 5f 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 _FILTERED:.break;..default:.thro
3baa0 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(
3bac0 27 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 'Unexpected.match.type');.}.}...
3bae0 20 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 .if.($nameMatch).{.return.$match
3bb00 65 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 es;.}..return.array_merge($match
3bb20 65 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 es,.$provideMatches);.}..public.
3bb40 66 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 function.literalToPackage($liter
3bb60 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 al).{.$packageId.=.abs($literal)
3bb80 3b 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 ;..return.$this->packageById($pa
3bba0 63 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 ckageId);.}..public.function.lit
3bbc0 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e eralToPrettyString($literal,.$in
3bbe0 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e stalledMap).{.$package.=.$this->
3bc00 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 literalToPackage($literal);..if.
3bc20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 (isset($installedMap[$package->i
3bc40 64 5d 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f d])).{.$prefix.=.($literal.>.0.?
3bc60 20 27 6b 65 65 70 27 20 3a 20 27 72 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 .'keep'.:.'remove');.}.else.{.$p
3bc80 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 69 6e 73 74 61 6c 6c refix.=.($literal.>.0.?.'install
3bca0 27 20 3a 20 27 64 6f 6e 5c 27 74 20 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e '.:.'don\'t.install');.}..return
3bcc0 20 24 70 72 65 66 69 78 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 .$prefix.'.'.$package->getPretty
3bce0 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 String();.}..public.function.isP
3bd00 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 61 62 69 6c 69 ackageAcceptable($name,.$stabili
3bd20 74 79 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 6e 61 6d 65 20 61 73 20 ty).{.foreach.((array).$name.as.
3bd40 24 6e 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c $n).{...if.(!isset($this->stabil
3bd60 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 63 ityFlags[$n]).&&.isset($this->ac
3bd80 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 ceptableStabilities[$stability])
3bda0 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 69 73 73 65 74 28 ).{.return.true;.}....if.(isset(
3bdc0 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 42 61 $this->stabilityFlags[$n]).&&.Ba
3bde0 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 sePackage::$stabilities[$stabili
3be00 74 79 5d 20 3c 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d ty].<=.$this->stabilityFlags[$n]
3be20 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
3be40 73 65 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 se;.}...........private.function
3be60 20 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 43 6f 6e 73 74 72 .match($candidate,.$name,.Constr
3be80 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c aintInterface.$constraint.=.null
3bea0 29 0a 7b 0a 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d ).{.$candidateName.=.$candidate-
3bec0 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 >getName();.$candidateVersion.=.
3bee0 24 63 61 6e 64 69 64 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 $candidate->getVersion();.$isDev
3bf00 20 3d 20 24 63 61 6e 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 .=.$candidate->getStability().==
3bf20 3d 20 27 64 65 76 27 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 =.'dev';.$isAlias.=.$candidate.i
3bf40 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 21 24 69 nstanceof.AliasPackage;..if.(!$i
3bf60 73 44 65 76 20 26 26 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 sDev.&&.!$isAlias.&&.isset($this
3bf80 2d 3e 66 69 6c 74 65 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 ->filterRequires[$name])).{.$req
3bfa0 75 69 72 65 46 69 6c 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 uireFilter.=.$this->filterRequir
3bfc0 65 73 5b 24 6e 61 6d 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 es[$name];.}.else.{.$requireFilt
3bfe0 65 72 20 3d 20 6e 65 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 er.=.new.EmptyConstraint;.}..if.
3c000 28 24 63 61 6e 64 69 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 ($candidateName.===.$name).{.$pk
3c020 67 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d gConstraint.=.new.Constraint('==
3c040 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
3c060 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-
3c080 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
3c0a0 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
3c0c0 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:
3c0e0 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:
3c100 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
3c120 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
3c140 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();...
3c160 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
3c180 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
3c1a0 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
3c1c0 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
3c1e0 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
3c200 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()))).{.
3c220 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($
3c240 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
3c260 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
3c280 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.
3c2a0 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().
3c2c0 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
3c2e0 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
3c300 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
3c320 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
3c340 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
3c360 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;.}.}.
3c380 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.
3c3a0 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
3c3c0 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
3c3e0 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
3c400 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
3c420 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]
3c440 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
3c460 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;
3c480 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]).
3c4a0 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
3c4c0 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
3c4e0 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.$
3c500 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
3c520 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
3c540 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
3c560 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
3c580 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
3c5a0 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;.
3c5c0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ......class.Problem.{.....protec
3c5e0 74 65 64 20 24 72 65 61 73 6f 6e 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ted.$reasonSeen;......protected.
3c600 24 72 65 61 73 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 $reasons.=.array();..protected.$
3c620 73 65 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a section.=.0;..protected.$pool;..
3c640 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c public.function.__construct(Pool
3c660 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d .$pool).{.$this->pool.=.$pool;.}
3c680 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 52 .......public.function.addRule(R
3c6a0 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 61 73 6f 6e 28 73 70 ule.$rule).{.$this->addReason(sp
3c6c0 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 72 75 6c 65 29 2c 20 61 72 72 61 79 28 0a 27 72 75 l_object_hash($rule),.array(.'ru
3c6e0 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
3c700 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
3c720 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-
3c740 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
3c760 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
3c780 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
3c7a0 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
3c7c0 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)
3c7e0 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).{
3c800 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
3c820 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[
3c840 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'];.
3c860 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'])).
3c880 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
3c8a0 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
3c8c0 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
3c8e0 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.&&.$
3c900 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
3c920 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 0a 0a 20 69 66 20 28 24 6a 6f 62 5b 27 70 61 63 y($packages)).{....if.($job['pac
3c940 6b 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 kageName'].===.'php'.||.$job['pa
3c960 63 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 ckageName'].===.'php-64bit'.||.$
3c980 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 20 7b job['packageName'].===.'hhvm').{
3c9a0 0a 24 61 76 61 69 6c 61 62 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 .$available.=.$this->pool->whatP
3c9c0 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 3b 0a 24 76 rovides($job['packageName']);.$v
3c9e0 65 72 73 69 6f 6e 20 3d 20 63 6f 75 6e 74 28 24 61 76 61 69 6c 61 62 6c 65 29 20 3f 20 24 61 76 ersion.=.count($available).?.$av
3ca00 61 69 6c 61 62 6c 65 5b 30 5d 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3a ailable[0]->getPrettyVersion().:
3ca20 20 70 68 70 76 65 72 73 69 6f 6e 28 29 3b 0a 0a 24 6d 73 67 20 3d 20 22 5c 6e 20 20 20 20 2d 20 .phpversion();..$msg.=."\n....-.
3ca40 54 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 73 20 22 2e 24 6a 6f 62 5b 27 70 61 This.package.requires.".$job['pa
3ca60 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 ckageName'].$this->constraintToT
3ca80 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 62 75 74 20 27 3b ext($job['constraint']).'.but.';
3caa0 0a 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 29 29 20 7b ..if.(defined('HHVM_VERSION')).{
3cac0 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 79 6f 75 72 20 48 48 56 4d 20 76 65 72 73 69 6f .return.$msg...'your.HHVM.versio
3cae0 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 6d n.does.not.satisfy.that.requirem
3cb00 65 6e 74 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 ent.';.}.elseif.($job['packageNa
3cb20 6d 65 27 5d 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e me'].===.'hhvm').{.return.$msg..
3cb40 20 27 79 6f 75 20 61 72 65 20 72 75 6e 6e 69 6e 67 20 74 68 69 73 20 77 69 74 68 20 50 48 50 20 .'you.are.running.this.with.PHP.
3cb60 61 6e 64 20 6e 6f 74 20 48 48 56 4d 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e and.not.HHVM.';.}..return.$msg..
3cb80 20 27 79 6f 75 72 20 50 48 50 20 76 65 72 73 69 6f 6e 20 28 27 2e 20 24 76 65 72 73 69 6f 6e 20 .'your.PHP.version.('..$version.
3cba0 2e 27 29 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 .').does.not.satisfy.that.requir
3cbc0 65 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 ement.';.}....if.(0.===.stripos(
3cbe0 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a $job['packageName'],.'ext-')).{.
3cc00 24 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 $ext.=.substr($job['packageName'
3cc20 5d 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 ],.4);.$error.=.extension_loaded
3cc40 28 24 65 78 74 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 ($ext).?.'has.the.wrong.version.
3cc60 28 27 2e 28 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 20 3f 3a 20 27 30 27 29 2e 27 29 20 ('.(phpversion($ext).?:.'0').').
3cc80 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f installed'.:.'is.missing.from.yo
3cca0 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 ur.system';..return."\n....-.The
3ccc0 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 22 2e 24 6a 6f 62 5b .requested.PHP.extension.".$job[
3cce0 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 'packageName'].$this->constraint
3cd00 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 27 2e 24 ToText($job['constraint']).'.'.$
3cd20 65 72 72 6f 72 2e 27 2e 20 49 6e 73 74 61 6c 6c 20 6f 72 20 65 6e 61 62 6c 65 20 50 48 50 5c 27 error.'..Install.or.enable.PHP\'
3cd40 73 20 27 2e 24 65 78 74 2e 27 20 65 78 74 65 6e 73 69 6f 6e 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 s.'.$ext.'.extension.';.}....if.
3cd60 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 (0.===.stripos($job['packageName
3cd80 27 5d 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6a '],.'lib-')).{.if.(strtolower($j
3cda0 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 20 3d 3d 3d 20 27 6c 69 62 2d 69 63 75 27 ob['packageName']).===.'lib-icu'
3cdc0 29 20 7b 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 27 69 ).{.$error.=.extension_loaded('i
3cde0 6e 74 6c 27 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 69 ntl').?.'has.the.wrong.version.i
3ce00 6e 73 74 61 6c 6c 65 64 2c 20 74 72 79 20 75 70 67 72 61 64 69 6e 67 20 74 68 65 20 69 6e 74 6c nstalled,.try.upgrading.the.intl
3ce20 20 65 78 74 65 6e 73 69 6f 6e 2e 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 .extension.'.:.'is.missing.from.
3ce40 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69 6e 74 6c 20 your.system,.make.sure.the.intl.
3ce60 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6c 6f 61 64 65 64 2e 27 3b 0a 0a 72 65 74 75 72 6e 20 22 extension.is.loaded.';..return."
3ce80 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 \n....-.The.requested.linked.lib
3cea0 72 61 72 79 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 73 rary.".$job['packageName'].$this
3cec0 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
3cee0 69 6e 74 27 5d 29 2e 27 20 27 2e 24 65 72 72 6f 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e int']).'.'.$error;.}..return."\n
3cf00 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 ....-.The.requested.linked.libra
3cf20 72 79 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 73 2d 3e ry.".$job['packageName'].$this->
3cf40 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 69 6e constraintToText($job['constrain
3cf60 74 27 5d 29 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 t']).'.has.the.wrong.version.ins
3cf80 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 talled.or.is.missing.from.your.s
3cfa0 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 6c 6f 61 64 20 74 68 65 20 65 78 74 ystem,.make.sure.to.load.the.ext
3cfc0 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 70 ension.providing.it.';.}..if.(!p
3cfe0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 reg_match('{^[A-Za-z0-9_./-]+$}'
3d000 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 24 69 6c 6c 65 67 ,.$job['packageName'])).{.$illeg
3d020 61 6c 43 68 61 72 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 41 2d 5a 61 2d 7a alChars.=.preg_replace('{[A-Za-z
3d040 30 2d 39 5f 2e 2f 2d 5d 2b 7d 27 2c 20 27 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 0-9_./-]+}',.'',.$job['packageNa
3d060 6d 65 27 5d 29 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 71 75 me']);..return."\n....-.The.requ
3d080 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d ested.package.".$job['packageNam
3d0a0 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2c 20 69 74 20 6c 6f 6f e'].'.could.not.be.found,.it.loo
3d0c0 6b 73 20 6c 69 6b 65 20 69 74 73 20 6e 61 6d 65 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 22 27 2e ks.like.its.name.is.invalid,."'.
3d0e0 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 2e 27 22 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 $illegalChars.'".is.not.allowed.
3d100 69 6e 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 in.package.names.';.}..if.(!$thi
3d120 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
3d140 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 ageName'])).{.return."\n....-.Th
3d160 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 6b e.requested.package.".$job['pack
3d180 61 67 65 4e 61 6d 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 ageName'].'.could.not.be.found.i
3d1a0 6e 20 61 6e 79 20 76 65 72 73 69 6f 6e 2c 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 61 20 74 79 n.any.version,.there.may.be.a.ty
3d1c0 70 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2e 27 3b 0a 7d 0a 0a 72 65 74 po.in.the.package.name.';.}..ret
3d1e0 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 63 6b 61 urn."\n....-.The.requested.packa
3d200 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 24 74 68 69 73 2d 3e ge.".$job['packageName'].$this->
3d220 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 69 6e constraintToText($job['constrain
3d240 74 27 5d 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d t']).'.could.not.be.found.';.}.}
3d260 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ..$messages.=.array();..foreach.
3d280 28 24 72 65 61 73 6f 6e 73 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 72 75 6c 65 20 3d 20 ($reasons.as.$reason).{.$rule.=.
3d2a0 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b $reason['rule'];.$job.=.$reason[
3d2c0 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 'job'];..if.($job).{.$messages[]
3d2e0 20 3d 20 24 74 68 69 73 2d 3e 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 .=.$this->jobToText($job);.}.els
3d300 65 69 66 20 28 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 eif.($rule).{.if.($rule.instance
3d320 6f 66 20 52 75 6c 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e of.Rule).{.$messages[].=.$rule->
3d340 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 69 6e getPrettyString($this->pool,.$in
3d360 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 stalledMap);.}.}.}..return."\n..
3d380 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 2d 20 22 2c 20 24 6d 65 73 73 61 ..-.".implode("\n....-.",.$messa
3d3a0 67 65 73 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 ges);.}........protected.functio
3d3c0 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 69 64 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 n.addReason($id,.$reason).{.if.(
3d3e0 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 29 29 20 !isset($this->reasonSeen[$id])).
3d400 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 20 3d 20 74 72 75 65 3b {.$this->reasonSeen[$id].=.true;
3d420 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b .$this->reasons[$this->section][
3d440 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ].=.$reason;.}.}..public.functio
3d460 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e n.nextSection().{.$this->section
3d480 2b 2b 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 ++;.}........protected.function.
3d4a0 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 jobToText($job).{.switch.($job['
3d4c0 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 24 70 61 63 6b 61 67 cmd']).{.case.'install':.$packag
3d4e0 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 es.=.$this->pool->whatProvides($
3d500 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 63 6f 6e 73 74 72 job['packageName'],.$job['constr
3d520 61 69 6e 74 27 5d 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 72 65 74 75 72 aint']);.if.(!$packages).{.retur
3d540 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 20 74 6f 20 73 61 74 69 73 66 79 20 69 n.'No.package.found.to.satisfy.i
3d560 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 nstall.request.for.'.$job['packa
3d580 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 74 geName'].$this->constraintToText
3d5a0 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ($job['constraint']);.}..return.
3d5c0 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 'Installation.request.for.'.$job
3d5e0 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e ['packageName'].$this->constrain
3d600 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 2d 3e tToText($job['constraint']).'.->
3d620 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b .satisfiable.by.'.$this->getPack
3d640 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 75 70 ageList($packages).'.';.case.'up
3d660 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 65 20 72 65 71 75 65 73 74 20 66 6f date':.return.'Update.request.fo
3d680 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 2d 3e 63 r.'.$job['packageName'].$this->c
3d6a0 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 69 6e 74 onstraintToText($job['constraint
3d6c0 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 72 65 74 75 72 6e 20 27 ']).'.';.case.'remove':.return.'
3d6e0 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b Removal.request.for.'.$job['pack
3d700 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
3d720 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 27 3b 0a 7d 0a 0a 69 66 20 t($job['constraint']).'';.}..if.
3d740 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 7b 0a 24 70 (isset($job['constraint'])).{.$p
3d760 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 69 ackages.=.$this->pool->whatProvi
3d780 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 63 des($job['packageName'],.$job['c
3d7a0 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 61 67 65 73 onstraint']);.}.else.{.$packages
3d7c0 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 .=.array();.}..return.'Job(cmd='
3d7e0 2e 24 6a 6f 62 5b 27 63 6d 64 27 5d 2e 27 2c 20 74 61 72 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 .$job['cmd'].',.target='.$job['p
3d800 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 2c 20 70 61 63 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 ackageName'].',.packages=['.$thi
3d820 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 2e 27 5d 29 s->getPackageList($packages).'])
3d840 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b ';.}..protected.function.getPack
3d860 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d ageList($packages).{.$prepared.=
3d880 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 .array();.foreach.($packages.as.
3d8a0 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e $package).{.$prepared[$package->
3d8c0 67 65 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 getName()]['name'].=.$package->g
3d8e0 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 etPrettyName();.$prepared[$packa
3d900 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b ge->getName()]['versions'][$pack
3d920 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 age->getVersion()].=.$package->g
3d940 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 etPrettyVersion();.}.foreach.($p
3d960 72 65 70 61 72 65 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a repared.as.$name.=>.$package).{.
3d980 24 70 72 65 70 61 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d $prepared[$name].=.$package['nam
3d9a0 65 27 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 e'].'['.implode(',.',.$package['
3d9c0 76 65 72 73 69 6f 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f versions']).']';.}..return.implo
3d9e0 64 65 28 27 2c 20 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 de(',.',.$prepared);.}........pr
3da00 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 otected.function.constraintToTex
3da20 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 t($constraint).{.return.($constr
3da40 61 69 6e 74 29 20 3f 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 aint).?.'.'.$constraint->getPret
3da60 74 79 53 74 72 69 6e 67 28 29 20 3a 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a tyString().:.'';.}.}.<?php......
3da80 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
3daa0 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 53 65 6d 76 65 ncyResolver;..use.Composer\Semve
3dac0 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 r\Constraint\ConstraintInterface
3dae0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 ;.....class.Request.{.protected.
3db00 24 6a 6f 62 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 $jobs;..public.function.__constr
3db20 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d uct().{.$this->jobs.=.array();.}
3db40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 ..public.function.install($packa
3db60 67 65 4e 61 6d 65 2c 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e geName,.ConstraintInterface.$con
3db80 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 28 straint.=.null).{.$this->addJob(
3dba0 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 $packageName,.'install',.$constr
3dbc0 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 aint);.}..public.function.update
3dbe0 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 ($packageName,.ConstraintInterfa
3dc00 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e ce.$constraint.=.null).{.$this->
3dc20 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 addJob($packageName,.'update',.$
3dc40 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 constraint);.}..public.function.
3dc60 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 43 6f 6e 73 74 72 61 69 6e 74 49 remove($packageName,.ConstraintI
3dc80 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).{.$
3dca0 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 72 65 6d 6f this->addJob($packageName,.'remo
3dcc0 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ve',.$constraint);.}.......publi
3dce0 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 78 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 43 6f 6e c.function.fix($packageName,.Con
3dd00 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e straintInterface.$constraint.=.n
3dd20 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 61 6d ull).{.$this->addJob($packageNam
3dd40 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 e,.'install',.$constraint,.true)
3dd60 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 ;.}..protected.function.addJob($
3dd80 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6d 64 2c 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 packageName,.$cmd,.ConstraintInt
3dda0 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 2c 20 24 66 69 78 65 erface.$constraint.=.null,.$fixe
3ddc0 64 20 3d 20 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 d.=.false).{.$packageName.=.strt
3dde0 6f 6c 6f 77 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 olower($packageName);..$this->jo
3de00 62 73 5b 5d 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 bs[].=.array(.'cmd'.=>.$cmd,.'pa
3de20 63 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 27 63 6f 6e ckageName'.=>.$packageName,.'con
3de40 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 27 66 69 78 65 64 27 straint'.=>.$constraint,.'fixed'
3de60 20 3d 3e 20 24 66 69 78 65 64 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .=>.$fixed,.);.}..public.functio
3de80 6e 20 75 70 64 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 n.updateAll().{.$this->jobs[].=.
3dea0 61 72 72 61 79 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 array('cmd'.=>.'update-all');.}.
3dec0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 .public.function.getJobs().{.ret
3dee0 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a urn.$this->jobs;.}.}.<?php......
3df00 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
3df20 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 0a 7b 0a 63 6f ncyResolver;.....class.Rule.{.co
3df40 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 20 3d nst.RULE_INTERNAL_ALLOW_UPDATE.=
3df60 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 20 3d 20 32 3b 0a .1;.const.RULE_JOB_INSTALL.=.2;.
3df80 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 const.RULE_JOB_REMOVE.=.3;.const
3dfa0 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 20 3d 20 36 3b 0a 63 6f 6e 73 .RULE_PACKAGE_CONFLICT.=.6;.cons
3dfc0 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 20 3d 20 37 3b 0a 63 6f 6e t.RULE_PACKAGE_REQUIRES.=.7;.con
3dfe0 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 38 3b 0a 63 st.RULE_PACKAGE_OBSOLETES.=.8;.c
3e000 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f onst.RULE_INSTALLED_PACKAGE_OBSO
3e020 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 LETES.=.9;.const.RULE_PACKAGE_SA
3e040 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 ME_NAME.=.10;.const.RULE_PACKAGE
3e060 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 31 31 3b 0a 63 6f 6e 73 74 20 _IMPLICIT_OBSOLETES.=.11;.const.
3e080 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 3d 20 31 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 RULE_LEARNED.=.12;.const.RULE_PA
3e0a0 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d 20 31 33 3b 0a 0a 63 6f 6e 73 74 20 42 49 54 46 49 45 4c CKAGE_ALIAS.=.13;..const.BITFIEL
3e0c0 44 5f 54 59 50 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 42 49 54 46 49 45 4c 44 5f 52 45 41 53 4f D_TYPE.=.0;.const.BITFIELD_REASO
3e0e0 4e 20 3d 20 38 3b 0a 63 6f 6e 73 74 20 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 20 3d N.=.8;.const.BITFIELD_DISABLED.=
3e100 20 31 36 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 .16;......public.$literals;..pro
3e120 74 65 63 74 65 64 20 24 62 69 74 66 69 65 6c 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 tected.$bitfield;.protected.$rea
3e140 73 6f 6e 44 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 sonData;..public.function.__cons
3e160 74 72 75 63 74 28 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 truct(array.$literals,.$reason,.
3e180 24 72 65 61 73 6f 6e 44 61 74 61 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 73 6f $reasonData,.$job.=.null).{...so
3e1a0 72 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 rt($literals);..$this->literals.
3e1c0 3d 20 24 6c 69 74 65 72 61 6c 73 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 20 3d =.$literals;.$this->reasonData.=
3e1e0 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 74 68 69 73 .$reasonData;..if.($job).{.$this
3e200 2d 3e 6a 6f 62 20 3d 20 24 6a 6f 62 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 ->job.=.$job;.}..$this->bitfield
3e220 20 3d 20 28 30 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 .=.(0.<<.self::BITFIELD_DISABLED
3e240 29 20 7c 0a 28 24 72 65 61 73 6f 6e 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 52 ).|.($reason.<<.self::BITFIELD_R
3e260 45 41 53 4f 4e 29 20 7c 0a 28 32 35 35 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f EASON).|.(255.<<.self::BITFIELD_
3e280 54 59 50 45 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 TYPE);.}..public.function.getHas
3e2a0 68 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 75 6e 70 61 63 6b 28 27 69 68 61 73 68 27 2c 20 6d 64 h().{.$data.=.unpack('ihash',.md
3e2c0 35 28 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 2c 5(implode(',',.$this->literals),
3e2e0 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 5b 27 68 61 73 68 27 5d 3b 0a .true));..return.$data['hash'];.
3e300 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 }..public.function.getJob().{.re
3e320 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6a 6f 62 29 20 3f 20 24 74 68 69 73 2d 3e turn.isset($this->job).?.$this->
3e340 6a 6f 62 20 3a 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 67 job.:.null;.}..public.function.g
3e360 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 62 69 74 66 etReason().{.return.($this->bitf
3e380 69 65 6c 64 20 26 20 28 32 35 35 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 52 45 ield.&.(255.<<.self::BITFIELD_RE
3e3a0 41 53 4f 4e 29 29 20 3e 3e 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 52 45 41 53 4f 4e 3b ASON)).>>.self::BITFIELD_REASON;
3e3c0 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 6f 6e 44 61 74 .}..public.function.getReasonDat
3e3e0 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 61 74 61 3b 0a a().{.return.$this->reasonData;.
3e400 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 72 65 64 50 61 }..public.function.getRequiredPa
3e420 63 6b 61 67 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 ckage().{.if.($this->getReason()
3e440 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
3e460 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.(
3e480 24 74 68 69 73 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c $this->getReason().===.self::RUL
3e4a0 45 5f 50 41 43 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 E_PACKAGE_REQUIRES).{.return.$th
3e4c0 69 73 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 7d 0a 7d is->reasonData->getTarget();.}.}
3e4e0 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 71 75 61 6c 73 ..........public.function.equals
3e500 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e (Rule.$rule).{.if.(count($this->
3e520 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 literals).!=.count($rule->litera
3e540 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 ls)).{.return.false;.}..for.($i.
3e560 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 =.0,.$n.=.count($this->literals)
3e580 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 ;.$i.<.$n;.$i++).{.if.($this->li
3e5a0 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 terals[$i].!==.$rule->literals[$
3e5c0 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 i]).{.return.false;.}.}..return.
3e5e0 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 54 79 70 65 true;.}..public.function.setType
3e600 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 3d 20 28 24 74 68 ($type).{.$this->bitfield.=.($th
3e620 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 26 20 7e 28 32 35 35 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 is->bitfield.&.~(255.<<.self::BI
3e640 54 46 49 45 4c 44 5f 54 59 50 45 29 29 20 7c 20 28 28 32 35 35 20 26 20 24 74 79 70 65 29 20 3c TFIELD_TYPE)).|.((255.&.$type).<
3e660 3c 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 54 59 50 45 29 3b 0a 7d 0a 0a 70 75 62 6c 69 <.self::BITFIELD_TYPE);.}..publi
3e680 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 c.function.getType().{.return.($
3e6a0 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 26 20 28 32 35 35 20 3c 3c 20 73 65 6c 66 3a 3a 42 this->bitfield.&.(255.<<.self::B
3e6c0 49 54 46 49 45 4c 44 5f 54 59 50 45 29 29 20 3e 3e 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 ITFIELD_TYPE)).>>.self::BITFIELD
3e6e0 5f 54 59 50 45 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 62 6c _TYPE;.}..public.function.disabl
3e700 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 3d 20 28 24 74 68 69 73 2d 3e e().{.$this->bitfield.=.($this->
3e720 62 69 74 66 69 65 6c 64 20 26 20 7e 28 32 35 35 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 bitfield.&.~(255.<<.self::BITFIE
3e740 4c 44 5f 44 49 53 41 42 4c 45 44 29 29 20 7c 20 28 31 20 3c 3c 20 73 65 6c 66 3a 3a 42 49 54 46 LD_DISABLED)).|.(1.<<.self::BITF
3e760 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 IELD_DISABLED);.}..public.functi
3e780 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 3d 20 on.enable().{.$this->bitfield.=.
3e7a0 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 26 20 7e 28 32 35 35 20 3c 3c 20 73 65 6c 66 3a $this->bitfield.&.~(255.<<.self:
3e7c0 3a 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 :BITFIELD_DISABLED);.}..public.f
3e7e0 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 28 62 unction.isDisabled().{.return.(b
3e800 6f 6f 6c 29 20 28 28 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 26 20 28 32 35 35 20 3c 3c ool).(($this->bitfield.&.(255.<<
3e820 20 73 65 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 29 29 20 3e 3e 20 73 65 .self::BITFIELD_DISABLED)).>>.se
3e840 6c 66 3a 3a 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 29 3b 0a 7d 0a 0a 70 75 62 6c 69 lf::BITFIELD_DISABLED);.}..publi
3e860 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 c.function.isEnabled().{.return.
3e880 21 28 28 24 74 68 69 73 2d 3e 62 69 74 66 69 65 6c 64 20 26 20 28 32 35 35 20 3c 3c 20 73 65 6c !(($this->bitfield.&.(255.<<.sel
3e8a0 66 3a 3a 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 29 29 20 3e 3e 20 73 65 6c 66 3a 3a f::BITFIELD_DISABLED)).>>.self::
3e8c0 42 49 54 46 49 45 4c 44 5f 44 49 53 41 42 4c 45 44 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 BITFIELD_DISABLED);.}.....public
3e8e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getLiterals().{.return
3e900 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$this->literals;.}..public.func
3e920 74 69 6f 6e 20 69 73 41 73 73 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 31 20 3d 3d tion.isAssertion().{.return.1.==
3e940 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 70 75 62 =.count($this->literals);.}..pub
3e960 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 50 6f 6f lic.function.getPrettyString(Poo
3e980 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 20 3d 20 61 l.$pool,.array.$installedMap.=.a
3e9a0 72 72 61 79 28 29 29 0a 7b 0a 24 72 75 6c 65 54 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 rray()).{.$ruleText.=.'';.foreac
3e9c0 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 h.($this->literals.as.$i.=>.$lit
3e9e0 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b 0a 24 72 75 6c 65 54 65 78 74 eral).{.if.($i.!=.0).{.$ruleText
3ea00 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 24 70 6f 6f 6c 2d 3e 6c ..=.'|';.}.$ruleText..=.$pool->l
3ea20 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 iteralToPrettyString($literal,.$
3ea40 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d installedMap);.}..switch.($this-
3ea60 3e 67 65 74 52 65 61 73 6f 6e 28 29 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f >getReason()).{.case.self::RULE_
3ea80 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 INTERNAL_ALLOW_UPDATE:.return.$r
3eaa0 75 6c 65 54 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e uleText;..case.self::RULE_JOB_IN
3eac0 53 54 41 4c 4c 3a 0a 72 65 74 75 72 6e 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 STALL:.return."Install.command.r
3eae0 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 ule.($ruleText)";..case.self::RU
3eb00 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 3a 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f LE_JOB_REMOVE:.return."Remove.co
3eb20 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 mmand.rule.($ruleText)";..case.s
3eb40 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 elf::RULE_PACKAGE_CONFLICT:.$pac
3eb60 6b 61 67 65 31 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 kage1.=.$pool->literalToPackage(
3eb80 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d $this->literals[0]);.$package2.=
3eba0 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 74 68 69 73 2d 3e .$pool->literalToPackage($this->
3ebc0 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 31 2d literals[1]);..return.$package1-
3ebe0 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 63 6f 6e 66 6c 69 63 74 73 20 77 >getPrettyString().'.conflicts.w
3ec00 69 74 68 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 ith.'.$this->formatPackagesUniqu
3ec20 65 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 32 29 29 2e 27 2e 27 3b 0a e($pool,.array($package2)).'.';.
3ec40 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 52 45 51 55 49 52 45 .case.self::RULE_PACKAGE_REQUIRE
3ec60 53 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a S:.$literals.=.$this->literals;.
3ec80 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 $sourceLiteral.=.array_shift($li
3eca0 74 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d terals);.$sourcePackage.=.$pool-
3ecc0 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c >literalToPackage($sourceLiteral
3ece0 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 );..$requires.=.array();.foreach
3ed00 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 72 65 71 75 .($literals.as.$literal).{.$requ
3ed20 69 72 65 73 5b 5d 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 ires[].=.$pool->literalToPackage
3ed40 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 ($literal);.}..$text.=.$this->re
3ed60 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 73 6f 75 72 63 asonData->getPrettyString($sourc
3ed80 65 50 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 74 65 78 ePackage);.if.($requires).{.$tex
3eda0 74 20 2e 3d 20 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 20 2e 20 24 74 68 t..=.'.->.satisfiable.by.'...$th
3edc0 69 73 2d 3e 66 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 is->formatPackagesUnique($pool,.
3ede0 24 72 65 71 75 69 72 65 73 29 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 61 72 67 $requires)...'.';.}.else.{.$targ
3ee00 65 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 etName.=.$this->reasonData->getT
3ee20 61 72 67 65 74 28 29 3b 0a 0a 69 66 20 28 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 70 arget();..if.($targetName.===.'p
3ee40 68 70 27 20 7c 7c 20 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 2d 36 34 62 69 hp'.||.$targetName.===.'php-64bi
3ee60 74 27 20 7c 7c 20 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 t'.||.$targetName.===.'hhvm').{.
3ee80 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 7b ..if.(defined('HHVM_VERSION')).{
3eea0 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 72 20 48 48 56 4d 20 76 65 72 73 69 6f 6e .$text..=.'.->.your.HHVM.version
3eec0 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 6d 65 .does.not.satisfy.that.requireme
3eee0 6e 74 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 nt.';.}.elseif.($targetName.===.
3ef00 27 68 68 76 6d 27 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 20 61 72 65 20 'hhvm').{.$text..=.'.->.you.are.
3ef20 72 75 6e 6e 69 6e 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 running.this.with.PHP.and.not.HH
3ef40 56 4d 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 VM.';.}.else.{.$text..=.'.->.you
3ef60 72 20 50 48 50 20 76 65 72 73 69 6f 6e 20 28 27 2e 20 70 68 70 76 65 72 73 69 6f 6e 28 29 20 2e r.PHP.version.('..phpversion()..
3ef80 27 29 20 6f 72 20 22 63 6f 6e 66 69 67 2e 70 6c 61 74 66 6f 72 6d 2e 70 68 70 22 20 76 61 6c 75 ').or."config.platform.php".valu
3efa0 65 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 6d e.does.not.satisfy.that.requirem
3efc0 65 6e 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 ent.';.}.}.elseif.(0.===.strpos(
3efe0 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 0a 20 24 65 78 74 20 3d $targetName,.'ext-')).{...$ext.=
3f000 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 .substr($targetName,.4);.$error.
3f020 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 24 65 78 74 29 20 3f 20 27 68 61 73 20 =.extension_loaded($ext).?.'has.
3f040 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 2e 28 70 68 70 76 65 72 73 69 6f 6e the.wrong.version.('.(phpversion
3f060 28 24 65 78 74 29 20 3f 3a 20 27 30 27 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 ($ext).?:.'0').').installed'.:.'
3f080 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 24 is.missing.from.your.system';..$
3f0a0 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 text..=.'.->.the.requested.PHP.e
3f0c0 78 74 65 6e 73 69 6f 6e 20 27 2e 24 65 78 74 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a xtension.'.$ext.'.'.$error.'.';.
3f0e0 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 4e 61 }.elseif.(0.===.strpos($targetNa
3f100 6d 65 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 0a 20 24 6c 69 62 20 3d 20 73 75 62 73 74 72 28 24 me,.'lib-')).{...$lib.=.substr($
3f120 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 targetName,.4);..$text..=.'.->.t
3f140 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 27 2e 24 6c he.requested.linked.library.'.$l
3f160 69 62 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 ib.'.has.the.wrong.version.insta
3f180 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 lled.or.is.missing.from.your.sys
3f1a0 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e tem,.make.sure.to.have.the.exten
3f1c0 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 sion.providing.it.';.}.else.{.$t
3f1e0 65 78 74 20 2e 3d 20 27 20 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 ext..=.'.->.no.matching.package.
3f200 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 61 73 found.';.}.}..return.$text;..cas
3f220 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a e.self::RULE_PACKAGE_OBSOLETES:.
3f240 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c return.$ruleText;.case.self::RUL
3f260 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 E_INSTALLED_PACKAGE_OBSOLETES:.r
3f280 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 eturn.$ruleText;.case.self::RULE
3f2a0 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 3a 0a 72 65 74 75 72 6e 20 27 43 61 6e 20 _PACKAGE_SAME_NAME:.return.'Can.
3f2c0 6f 6e 6c 79 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e only.install.one.of:.'...$this->
3f2e0 66 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 24 74 68 69 formatPackagesUnique($pool,.$thi
3f300 73 2d 3e 6c 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 s->literals)...'.';.case.self::R
3f320 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a ULE_PACKAGE_IMPLICIT_OBSOLETES:.
3f340 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c return.$ruleText;.case.self::RUL
3f360 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e 3a 20 27 E_LEARNED:.return.'Conclusion:.'
3f380 2e 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b .$ruleText;.case.self::RULE_PACK
3f3a0 41 47 45 5f 41 4c 49 41 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 64 65 66 AGE_ALIAS:.return.$ruleText;.def
3f3c0 61 75 6c 74 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 ault:.return.'('.$ruleText.')';.
3f3e0 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 50 61 }.}..protected.function.formatPa
3f400 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 20 24 70 61 63 6b 61 ckagesUnique($pool,.array.$packa
3f420 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
3f440 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 69 66 ach.($packages.as.$package).{.if
3f460 20 28 21 69 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 .(!is_object($package)).{.$packa
3f480 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 24 70 61 ge.=.$pool->literalToPackage($pa
3f4a0 63 6b 61 67 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 ckage);.}.$prepared[$package->ge
3f4c0 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 tName()]['name'].=.$package->get
3f4e0 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 PrettyName();.$prepared[$package
3f500 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 67 ->getName()]['versions'][$packag
3f520 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 e->getVersion()].=.$package->get
3f540 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 65 PrettyVersion();.}.foreach.($pre
3f560 70 61 72 65 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 pared.as.$name.=>.$package).{.$p
3f580 72 65 70 61 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 repared[$name].=.$package['name'
3f5a0 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 65 ].'['.implode(',.',.$package['ve
3f5c0 72 73 69 6f 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 rsions']).']';.}..return.implode
3f5e0 28 27 2c 20 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 (',.',.$prepared);.}.......publi
3f600 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 72 65 73 75 6c c.function.__toString().{.$resul
3f620 74 20 3d 20 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 t.=.($this->isDisabled()).?.'dis
3f640 61 62 6c 65 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 abled('.:.'(';..foreach.($this->
3f660 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 66 literals.as.$i.=>.$literal).{.if
3f680 20 28 24 69 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 .($i.!=.0).{.$result..=.'|';.}.$
3f6a0 72 65 73 75 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 result..=.$literal;.}..$result..
3f6c0 3d 20 27 29 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 =.')';..return.$result;.}.}.<?ph
3f6e0 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\
3f700 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 52 75 DependencyResolver;.....class.Ru
3f720 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 67 72 65 67 leSet.implements.\IteratorAggreg
3f740 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 50 45 5f 50 ate,.\Countable.{...const.TYPE_P
3f760 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 20 31 3b 0a ACKAGE.=.0;.const.TYPE_JOB.=.1;.
3f780 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 0a 0a 70 75 const.TYPE_LEARNED.=.4;.......pu
3f7a0 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 74 61 74 69 blic.$ruleById;..protected.stati
3f7c0 63 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 32 35 35 20 3d 3e 20 27 55 4e 4b 4e 4f 57 c.$types.=.array(.255.=>.'UNKNOW
3f7e0 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 43 4b 41 N',.self::TYPE_PACKAGE.=>.'PACKA
3f800 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 0a 73 65 GE',.self::TYPE_JOB.=>.'JOB',.se
3f820 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 2c 0a 29 lf::TYPE_LEARNED.=>.'LEARNED',.)
3f840 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 64 20 24 ;..protected.$rules;.protected.$
3f860 6e 65 78 74 52 75 6c 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 42 79 48 nextRuleId;..protected.$rulesByH
3f880 61 73 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ash;..public.function.__construc
3f8a0 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 20 3d 20 30 3b 0a 0a 66 6f t().{.$this->nextRuleId.=.0;..fo
3f8c0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 54 79 70 65 73 28 29 20 61 73 20 24 74 79 70 reach.($this->getTypes().as.$typ
3f8e0 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 e).{.$this->rules[$type].=.array
3f900 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 20 3d 20 61 72 72 61 ();.}..$this->rulesByHash.=.arra
3f920 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 52 75 6c 65 y();.}..public.function.add(Rule
3f940 20 24 72 75 6c 65 2c 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 .$rule,.$type).{.if.(!isset(self
3f960 3a 3a 24 74 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4f ::$types[$type])).{.throw.new.\O
3f980 75 74 4f 66 42 6f 75 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 72 75 6c utOfBoundsException('Unknown.rul
3f9a0 65 20 74 79 70 65 3a 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 e.type:.'...$type);.}..if.(!isse
3f9c0 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d t($this->rules[$type])).{.$this-
3f9e0 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 >rules[$type].=.array();.}..$thi
3fa00 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 74 68 69 73 s->rules[$type][].=.$rule;.$this
3fa20 2d 3e 72 75 6c 65 42 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 5d 20 3d 20 ->ruleById[$this->nextRuleId].=.
3fa40 24 72 75 6c 65 3b 0a 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 65 28 24 74 79 70 65 29 3b 0a 0a 24 $rule;.$rule->setType($type);..$
3fa60 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b 0a 0a 24 68 61 73 68 20 3d 20 24 72 75 this->nextRuleId++;..$hash.=.$ru
3fa80 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d le->getHash();.if.(!isset($this-
3faa0 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 >rulesByHash[$hash])).{.$this->r
3fac0 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 61 79 28 24 72 75 6c 65 29 ulesByHash[$hash].=.array($rule)
3fae0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 ;.}.else.{.$this->rulesByHash[$h
3fb00 61 73 68 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ash][].=.$rule;.}.}..public.func
3fb20 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 65 78 tion.count().{.return.$this->nex
3fb40 74 52 75 6c 65 49 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6c 65 tRuleId;.}..public.function.rule
3fb60 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 ById($id).{.return.$this->ruleBy
3fb80 49 64 5b 24 69 64 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 Id[$id];.}..public.function.getR
3fba0 75 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a ules().{.return.$this->rules;.}.
3fbc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b .public.function.getIterator().{
3fbe0 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 74 68 69 .return.new.RuleSetIterator($thi
3fc00 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 s->getRules());.}..public.functi
3fc20 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 on.getIteratorFor($types).{.if.(
3fc40 21 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 !is_array($types)).{.$types.=.ar
3fc60 72 61 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c 6c 52 75 6c 65 73 20 3d 20 24 74 68 69 ray($types);.}..$allRules.=.$thi
3fc80 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b s->getRules();.$rules.=.array();
3fca0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 72 ..foreach.($types.as.$type).{.$r
3fcc0 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 75 6c 65 73 5b 24 74 79 70 65 5d 3b 0a ules[$type].=.$allRules[$type];.
3fce0 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 }..return.new.RuleSetIterator($r
3fd00 75 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 ules);.}..public.function.getIte
3fd20 72 61 74 6f 72 57 69 74 68 6f 75 74 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 ratorWithout($types).{.if.(!is_a
3fd40 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 rray($types)).{.$types.=.array($
3fd60 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 75 types);.}..$rules.=.$this->getRu
3fd80 6c 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 les();..foreach.($types.as.$type
3fda0 29 20 7b 0a 75 6e 73 65 74 28 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 ).{.unset($rules[$type]);.}..ret
3fdc0 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b urn.new.RuleSetIterator($rules);
3fde0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 73 28 29 0a 7b .}..public.function.getTypes().{
3fe00 0a 24 74 79 70 65 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 70 65 73 3b 0a 75 6e 73 65 74 28 24 74 .$types.=.self::$types;.unset($t
3fe20 79 70 65 73 5b 32 35 35 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 ypes[255]);..return.array_keys($
3fe40 74 79 70 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 types);.}..public.function.conta
3fe60 69 6e 73 45 71 75 61 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 insEqual($rule).{.if.(isset($thi
3fe80 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d s->rulesByHash[$rule->getHash()]
3fea0 29 29 20 7b 0a 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 3d 20 24 74 68 69 )).{.$potentialDuplicates.=.$thi
3fec0 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d s->rulesByHash[$rule->getHash()]
3fee0 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 ;.foreach.($potentialDuplicates.
3ff00 61 73 20 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 20 7b 0a 69 66 20 28 24 72 as.$potentialDuplicate).{.if.($r
3ff20 75 6c 65 2d 3e 65 71 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 ule->equals($potentialDuplicate)
3ff40 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 66 ).{.return.true;.}.}.}..return.f
3ff60 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 72 65 74 alse;.}..public.function.getPret
3ff80 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 0a 24 73 tyString(Pool.$pool.=.null).{.$s
3ffa0 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 3e 72 75 tring.=."\n";.foreach.($this->ru
3ffc0 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 72 69 6e les.as.$type.=>.$rules).{.$strin
3ffe0 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 70 65 5d g..=.str_pad(self::$types[$type]
40000 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 75 6c 65 ,.8,.'.')...":.";.foreach.($rule
40020 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 6f 6c 20 s.as.$rule).{.$string..=.($pool.
40040 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 6c 29 20 ?.$rule->getPrettyString($pool).
40060 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 5c 6e 5c :.$rule)."\n";.}.$string..=."\n\
40080 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 6c 69 63 n";.}..return.$string;.}..public
400a0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.__toString().{.return.
400c0 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 0a 7d 0a $this->getPrettyString(null);.}.
400e0 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
40100 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 poser\DependencyResolver;..use.C
40120 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
40140 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b ;.use.Composer\Package\AliasPack
40160 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 age;.use.Composer\Repository\Pla
40180 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 tformRepository;.....class.RuleS
401a0 65 74 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b etGenerator.{.protected.$policy;
401c0 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c .protected.$pool;.protected.$rul
401e0 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 es;.protected.$jobs;.protected.$
40200 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 68 69 74 65 6c 69 installedMap;.protected.$whiteli
40220 73 74 65 64 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 4d 61 70 3b 0a 0a 70 stedMap;.protected.$addedMap;..p
40240 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 ublic.function.__construct(Polic
40260 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a yInterface.$policy,.Pool.$pool).
40280 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 {.$this->policy.=.$policy;.$this
402a0 2d 3e 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 0a 0a 0a 0a 0a ->pool.=.$pool;.}...............
402c0 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 52 65 71 75 69 72 .protected.function.createRequir
402e0 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c eRule(PackageInterface.$package,
40300 20 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 72 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 .array.$providers,.$reason,.$rea
40320 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 sonData.=.null).{.$literals.=.ar
40340 72 61 79 28 2d 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 70 ray(-$package->id);..foreach.($p
40360 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 0a 20 69 66 20 28 24 roviders.as.$provider).{...if.($
40380 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 72 65 74 75 72 6e 20 provider.===.$package).{.return.
403a0 6e 75 6c 6c 3b 0a 7d 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d null;.}.$literals[].=.$provider-
403c0 3e 69 64 3b 0a 7d 0a 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 >id;.}..return.new.Rule($literal
403e0 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a s,.$reason,.$reasonData);.}.....
40400 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 72 65 61 .........protected.function.crea
40420 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 teInstallOneOfRule(array.$packag
40440 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d es,.$reason,.$job).{.$literals.=
40460 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 .array();.foreach.($packages.as.
40480 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 61 63 6b 61 $package).{.$literals[].=.$packa
404a0 67 65 2d 3e 69 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 6c 69 74 65 ge->id;.}..return.new.Rule($lite
404c0 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 rals,.$reason,.$job['packageName
404e0 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 '],.$job);.}.............protect
40500 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 63 ed.function.createRemoveRule(Pac
40520 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 2c kageInterface.$package,.$reason,
40540 20 24 6a 6f 62 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 61 72 72 61 79 28 2d .$job).{.return.new.Rule(array(-
40560 24 70 61 63 6b 61 67 65 2d 3e 69 64 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 $package->id),.$reason,.$job['pa
40580 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ckageName'],.$job);.}...........
405a0 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 65 43 6f .....protected.function.createCo
405c0 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 73 73 nflictRule(PackageInterface.$iss
405e0 75 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 2c uer,.PackageInterface.$provider,
40600 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a .$reason,.$reasonData.=.null).{.
40620 0a 20 69 66 20 28 24 69 73 73 75 65 72 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 72 ..if.($issuer.===.$provider).{.r
40640 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 61 eturn.null;.}..return.new.Rule(a
40660 72 72 61 79 28 2d 24 69 73 73 75 65 72 2d 3e 69 64 2c 20 2d 24 70 72 6f 76 69 64 65 72 2d 3e 69 rray(-$issuer->id,.-$provider->i
40680 64 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a d),.$reason,.$reasonData);.}....
406a0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 .......private.function.addRule(
406c0 24 74 79 70 65 2c 20 52 75 6c 65 20 24 6e 65 77 52 75 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 $type,.Rule.$newRule.=.null).{.i
406e0 66 20 28 21 24 6e 65 77 52 75 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 63 6f f.(!$newRule.||.$this->rules->co
40700 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b ntainsEqual($newRule)).{.return;
40720 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 .}..$this->rules->add($newRule,.
40740 24 74 79 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 68 $type);.}..protected.function.wh
40760 69 74 65 6c 69 73 74 46 72 6f 6d 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 itelistFromPackage(PackageInterf
40780 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 ace.$package).{.$workQueue.=.new
407a0 20 5c 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 .\SplQueue;.$workQueue->enqueue(
407c0 24 70 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e $package);..while.(!$workQueue->
407e0 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 isEmpty()).{.$package.=.$workQue
40800 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e ue->dequeue();.if.(isset($this->
40820 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b whitelistedMap[$package->id])).{
40840 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 .continue;.}..$this->whitelisted
40860 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 Map[$package->id].=.true;..forea
40880 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 ch.($package->getRequires().as.$
408a0 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 link).{.$possibleRequires.=.$thi
408c0 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 s->pool->whatProvides($link->get
408e0 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 Target(),.$link->getConstraint()
40900 2c 20 74 72 75 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 ,.true);..foreach.($possibleRequ
40920 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e ires.as.$require).{.$workQueue->
40940 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 enqueue($require);.}.}..$obsolet
40960 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 eProviders.=.$this->pool->whatPr
40980 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c ovides($package->getName(),.null
409a0 2c 20 74 72 75 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 ,.true);..foreach.($obsoleteProv
409c0 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 iders.as.$provider).{.if.($provi
409e0 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a der.===.$package).{.continue;.}.
40a00 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 .if.(($package.instanceof.AliasP
40a20 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 ackage).&&.$package->getAliasOf(
40a40 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 ).===.$provider).{.$workQueue->e
40a60 6e 71 75 65 75 65 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 nqueue($provider);.}.}.}.}..prot
40a80 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 ected.function.addRulesForPackag
40aa0 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 69 67 e(PackageInterface.$package,.$ig
40ac0 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d norePlatformReqs).{.$workQueue.=
40ae0 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 .new.\SplQueue;.$workQueue->enqu
40b00 65 75 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 eue($package);..while.(!$workQue
40b20 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 77 6f 72 ue->isEmpty()).{.$package.=.$wor
40b40 6b 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 kQueue->dequeue();.if.(isset($th
40b60 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 29 29 20 7b 0a 63 is->addedMap[$package->id])).{.c
40b80 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 ontinue;.}..$this->addedMap[$pac
40ba0 6b 61 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 kage->id].=.true;..foreach.($pac
40bc0 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a kage->getRequires().as.$link).{.
40be0 69 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 if.($ignorePlatformReqs.&&.preg_
40c00 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f match(PlatformRepository::PLATFO
40c20 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 RM_PACKAGE_REGEX,.$link->getTarg
40c40 65 74 28 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 6f 73 73 69 62 6c 65 52 et())).{.continue;.}..$possibleR
40c60 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
40c80 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
40ca0 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 etConstraint());..$this->addRule
40cc0 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 (RuleSet::TYPE_PACKAGE,.$rule.=.
40ce0 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 $this->createRequireRule($packag
40d00 65 2c 20 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 e,.$possibleRequires,.Rule::RULE
40d20 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 2c 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 _PACKAGE_REQUIRES,.$link));..for
40d40 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 65 71 75 each.($possibleRequires.as.$requ
40d60 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 65 71 75 ire).{.$workQueue->enqueue($requ
40d80 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 ire);.}.}..foreach.($package->ge
40da0 74 43 6f 6e 66 6c 69 63 74 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 tConflicts().as.$link).{.$possib
40dc0 6c 65 43 6f 6e 66 6c 69 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 leConflicts.=.$this->pool->whatP
40de0 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 24 6c 69 6e rovides($link->getTarget(),.$lin
40e00 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 k->getConstraint());..foreach.($
40e20 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 61 73 20 24 63 6f 6e 66 6c 69 63 74 29 20 possibleConflicts.as.$conflict).
40e40 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 {.$this->addRule(RuleSet::TYPE_P
40e60 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c ACKAGE,.$this->createConflictRul
40e80 65 28 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 66 6c 69 63 74 2c 20 52 75 6c 65 3a 3a 52 55 4c e($package,.$conflict,.Rule::RUL
40ea0 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d E_PACKAGE_CONFLICT,.$link));.}.}
40ec0 0a 0a 0a 20 24 69 73 49 6e 73 74 61 6c 6c 65 64 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d ....$isInstalled.=.(isset($this-
40ee0 3e 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 3b 0a 0a >installedMap[$package->id]));..
40f00 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 foreach.($package->getReplaces()
40f20 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 .as.$link).{.$obsoleteProviders.
40f40 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e =.$this->pool->whatProvides($lin
40f60 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 k->getTarget(),.$link->getConstr
40f80 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 aint());..foreach.($obsoleteProv
40fa0 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 iders.as.$provider).{.if.($provi
40fc0 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a der.===.$package).{.continue;.}.
40fe0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 .if.(!$this->obsoleteImpossibleF
41000 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a orAlias($package,.$provider)).{.
41020 24 72 65 61 73 6f 6e 20 3d 20 28 24 69 73 49 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a $reason.=.($isInstalled).?.Rule:
41040 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 :RULE_INSTALLED_PACKAGE_OBSOLETE
41060 53 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 S.:.Rule::RULE_PACKAGE_OBSOLETES
41080 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 50 ;.$this->addRule(RuleSet::TYPE_P
410a0 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c ACKAGE,.$this->createConflictRul
410c0 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 e($package,.$provider,.$reason,.
410e0 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 $link));.}.}.}..$obsoleteProvide
41100 72 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 rs.=.$this->pool->whatProvides($
41120 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 package->getName(),.null);..fore
41140 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 ach.($obsoleteProviders.as.$prov
41160 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 ider).{.if.($provider.===.$packa
41180 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 6b 61 67 65 ge).{.continue;.}..if.(($package
411a0 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 20 24 70 61 .instanceof.AliasPackage).&&.$pa
411c0 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 ckage->getAliasOf().===.$provide
411e0 72 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 r).{.$this->addRule(RuleSet::TYP
41200 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 61 74 65 E_PACKAGE,.$rule.=.$this->create
41220 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f RequireRule($package,.array($pro
41240 76 69 64 65 72 29 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 vider),.Rule::RULE_PACKAGE_ALIAS
41260 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e ,.$package));.}.elseif.(!$this->
41280 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b obsoleteImpossibleForAlias($pack
412a0 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 age,.$provider)).{.$reason.=.($p
412c0 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e ackage->getName().==.$provider->
412e0 67 65 74 4e 61 6d 65 28 29 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f getName()).?.Rule::RULE_PACKAGE_
41300 53 41 4d 45 5f 4e 41 4d 45 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 SAME_NAME.:.Rule::RULE_PACKAGE_I
41320 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c MPLICIT_OBSOLETES;.$this->addRul
41340 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d e(RuleSet::TYPE_PACKAGE,.$rule.=
41360 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b .$this->createConflictRule($pack
41380 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 age,.$provider,.$reason,.$packag
413a0 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e e));.}.}.}.}..protected.function
413c0 20 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 .obsoleteImpossibleForAlias($pac
413e0 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 kage,.$provider).{.$packageIsAli
41400 61 73 20 3d 20 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 as.=.$package.instanceof.AliasPa
41420 63 6b 61 67 65 3b 0a 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 ckage;.$providerIsAlias.=.$provi
41440 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 der.instanceof.AliasPackage;..$i
41460 6d 70 6f 73 73 69 62 6c 65 20 3d 20 28 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 mpossible.=.(.($packageIsAlias.&
41480 26 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 &.$package->getAliasOf().===.$pr
414a0 6f 76 69 64 65 72 29 20 7c 7c 0a 28 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 ovider).||.($providerIsAlias.&&.
414c0 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 $provider->getAliasOf().===.$pac
414e0 6b 61 67 65 29 20 7c 7c 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 kage).||.($packageIsAlias.&&.$pr
41500 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 oviderIsAlias.&&.$provider->getA
41520 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f liasOf().===.$package->getAliasO
41540 66 28 29 29 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a f()).);..return.$impossible;.}..
41560 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 6d protected.function.whitelistFrom
41580 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 Jobs().{.foreach.($this->jobs.as
415a0 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a .$job).{.switch.($job['cmd']).{.
415c0 63 61 73 65 20 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 case.'install':.$packages.=.$thi
415e0 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
41600 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 2c 20 74 ageName'],.$job['constraint'],.t
41620 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 rue);.foreach.($packages.as.$pac
41640 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 50 61 63 6b kage).{.$this->whitelistFromPack
41660 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 age($package);.}.break;.}.}.}..p
41680 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 rotected.function.addRulesForJob
416a0 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 0a 7b 0a 66 6f 72 65 61 63 68 s($ignorePlatformReqs).{.foreach
416c0 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 77 69 74 63 68 20 .($this->jobs.as.$job).{.switch.
416e0 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a ($job['cmd']).{.case.'install':.
41700 69 66 20 28 21 24 6a 6f 62 5b 27 66 69 78 65 64 27 5d 20 26 26 20 24 69 67 6e 6f 72 65 50 6c 61 if.(!$job['fixed'].&&.$ignorePla
41720 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 6d tformReqs.&&.preg_match(Platform
41740 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 47 Repository::PLATFORM_PACKAGE_REG
41760 45 58 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 63 6f 6e 74 EX,.$job['packageName'])).{.cont
41780 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c inue;.}..$packages.=.$this->pool
417a0 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 ->whatProvides($job['packageName
417c0 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 24 70 61 '],.$job['constraint']);.if.($pa
417e0 63 6b 61 67 65 73 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 ckages).{.foreach.($packages.as.
41800 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e $package).{.if.(!isset($this->in
41820 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 20 7b 0a 24 74 68 stalledMap[$package->id])).{.$th
41840 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c is->addRulesForPackage($package,
41860 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 7d 0a 7d 0a 0a 24 72 75 6c .$ignorePlatformReqs);.}.}..$rul
41880 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c e.=.$this->createInstallOneOfRul
418a0 65 28 24 70 61 63 6b 61 67 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 e($packages,.Rule::RULE_JOB_INST
418c0 41 4c 4c 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 ALL,.$job);.$this->addRule(RuleS
418e0 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 et::TYPE_JOB,.$rule);.}.break;.c
41900 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 0a 20 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 ase.'remove':.....$packages.=.$t
41920 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 6a 6f 62 5b 27 70 61 his->pool->whatProvides($job['pa
41940 63 6b 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 ckageName'],.$job['constraint'])
41960 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 ;.foreach.($packages.as.$package
41980 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 52 ).{.$rule.=.$this->createRemoveR
419a0 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d ule($package,.Rule::RULE_JOB_REM
419c0 4f 56 45 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 OVE,.$job);.$this->addRule(RuleS
419e0 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d et::TYPE_JOB,.$rule);.}.break;.}
41a00 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 46 6f .}.}..public.function.getRulesFo
41a20 72 28 24 6a 6f 62 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 69 67 6e 6f 72 65 50 r($jobs,.$installedMap,.$ignoreP
41a40 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 68 69 73 2d 3e 6a 6f latformReqs.=.false).{.$this->jo
41a60 62 73 20 3d 20 24 6a 6f 62 73 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 77 20 52 bs.=.$jobs;.$this->rules.=.new.R
41a80 75 6c 65 53 65 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 uleSet;.$this->installedMap.=.$i
41aa0 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 nstalledMap;..$this->whitelisted
41ac0 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 73 2d 3e 69 Map.=.array();.foreach.($this->i
41ae0 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 68 69 73 nstalledMap.as.$package).{.$this
41b00 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 67 65 29 ->whitelistFromPackage($package)
41b20 3b 0a 7d 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 4a 6f 62 73 28 29 3b 0a ;.}.$this->whitelistFromJobs();.
41b40 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 28 24 74 68 69 73 .$this->pool->setWhitelist($this
41b60 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 ->whitelistedMap);..$this->added
41b80 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 73 2d 3e 69 Map.=.array();.foreach.($this->i
41ba0 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 68 69 73 nstalledMap.as.$package).{.$this
41bc0 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 ->addRulesForPackage($package,.$
41be0 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 ignorePlatformReqs);.}..$this->a
41c00 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 ddRulesForJobs($ignorePlatformRe
41c20 71 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 7d 0a 3c qs);..return.$this->rules;.}.}.<
41c40 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
41c60 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 er\DependencyResolver;.....class
41c80 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 .RuleSetIterator.implements.\Ite
41ca0 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 rator.{.protected.$rules;.protec
41cc0 74 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 4f ted.$types;..protected.$currentO
41ce0 66 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 70 ffset;.protected.$currentType;.p
41d00 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 3b 0a 0a 70 75 rotected.$currentTypeOffset;..pu
41d20 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.
41d40 24 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 72 75 6c 65 73 3b $rules).{.$this->rules.=.$rules;
41d60 0a 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 75 6c 65 .$this->types.=.array_keys($rule
41d80 73 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e s);.sort($this->types);..$this->
41da0 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 rewind();.}..public.function.cur
41dc0 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 rent().{.return.$this->rules[$th
41de0 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f is->currentType][$this->currentO
41e00 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 ffset];.}..public.function.key()
41e20 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 7d 0a .{.return.$this->currentType;.}.
41e40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 24 74 68 69 73 2d .public.function.next().{.$this-
41e60 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 >currentOffset++;..if.(!isset($t
41e80 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 his->rules[$this->currentType]))
41ea0 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 .{.return;.}..if.($this->current
41ec0 4f 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 Offset.>=.sizeof($this->rules[$t
41ee0 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 his->currentType])).{.$this->cur
41f00 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 rentOffset.=.0;..do.{.$this->cur
41f20 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 rentTypeOffset++;..if.(!isset($t
41f40 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 his->types[$this->currentTypeOff
41f60 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 set])).{.$this->currentType.=.-1
41f80 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d ;.break;.}..$this->currentType.=
41fa0 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 .$this->types[$this->currentType
41fc0 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 Offset];.}.while.(isset($this->t
41fe0 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 ypes[$this->currentTypeOffset]).
42000 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 &&.!sizeof($this->rules[$this->c
42020 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 urrentType]));.}.}..public.funct
42040 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 ion.rewind().{.$this->currentOff
42060 73 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 set.=.0;..$this->currentTypeOffs
42080 65 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 et.=.-1;.$this->currentType.=.-1
420a0 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 ;..do.{.$this->currentTypeOffset
420c0 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 ++;..if.(!isset($this->types[$th
420e0 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 is->currentTypeOffset])).{.$this
42100 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 ->currentType.=.-1;.break;.}..$t
42120 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b his->currentType.=.$this->types[
42140 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 $this->currentTypeOffset];.}.whi
42160 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 le.(isset($this->types[$this->cu
42180 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 rrentTypeOffset]).&&.!sizeof($th
421a0 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 3b is->rules[$this->currentType]));
421c0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 .}..public.function.valid().{.re
421e0 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 turn.isset($this->rules[$this->c
42200 75 72 72 65 6e 74 54 79 70 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c urrentType]).&&.isset($this->rul
42220 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 es[$this->currentType][$this->cu
42240 72 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a rrentOffset]);.}.}.<?php........
42260 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 ....namespace.Composer\Dependenc
42280 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 yResolver;..........class.RuleWa
422a0 74 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 6e 6b 65 tchChain.extends.\SplDoublyLinke
422c0 64 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a dList.{.protected.$offset.=.0;..
422e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 65 6b 28 24 6f 66 66 73 65 .....public.function.seek($offse
42300 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 t).{.$this->rewind();.for.($i.=.
42320 30 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b 20 24 69 2b 2b 2c 20 24 74 68 69 73 2d 3e 6e 65 0;.$i.<.$offset;.$i++,.$this->ne
42340 78 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f xt());.}..........public.functio
42360 6e 20 72 65 6d 6f 76 65 28 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 24 74 68 69 73 2d 3e 6b 65 n.remove().{.$offset.=.$this->ke
42380 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 55 6e 73 65 74 28 24 6f 66 66 73 65 74 29 y();.$this->offsetUnset($offset)
423a0 3b 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f 66 66 73 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ;.$this->seek($offset);.}.}.<?ph
423c0 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\
423e0 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 DependencyResolver;............c
42400 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 lass.RuleWatchGraph.{.protected.
42420 24 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a $watchChains.=.array();.........
42440 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 28 52 75 6c 65 .....public.function.insert(Rule
42460 57 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 24 6e 6f 64 65 2d 3e 67 65 WatchNode.$node).{.if.($node->ge
42480 74 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e tRule()->isAssertion()).{.return
424a0 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 6e 6f 64 65 2d 3e 77 61 74 63 68 ;.}..foreach.(array($node->watch
424c0 31 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 32 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 1,.$node->watch2).as.$literal).{
424e0 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 .if.(!isset($this->watchChains[$
42500 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b literal])).{.$this->watchChains[
42520 24 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a $literal].=.new.RuleWatchChain;.
42540 7d 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 2d }..$this->watchChains[$literal]-
42560 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a >unshift($node);.}.}............
42580 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 70 72 6f .............public.function.pro
425a0 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 2c 20 24 pagateLiteral($decidedLiteral,.$
425c0 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 0a 20 0a 20 0a 20 24 6c 69 74 65 level,.$decisions).{.......$lite
425e0 72 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 21 69 73 ral.=.-$decidedLiteral;..if.(!is
42600 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d set($this->watchChains[$literal]
42620 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 63 68 61 69 6e 20 3d 20 24 74 )).{.return.null;.}..$chain.=.$t
42640 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 3b 0a 0a 24 63 68 his->watchChains[$literal];..$ch
42660 61 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 77 68 69 6c 65 20 28 24 63 68 61 69 6e 2d 3e 76 61 ain->rewind();.while.($chain->va
42680 6c 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 3d 20 24 63 68 61 69 6e 2d 3e 63 75 72 72 65 6e 74 lid()).{.$node.=.$chain->current
426a0 28 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 4f 74 68 65 ();.$otherWatch.=.$node->getOthe
426c0 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6e 6f 64 65 2d 3e 67 rWatch($literal);..if.(!$node->g
426e0 65 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 26 26 20 21 24 64 65 63 69 etRule()->isDisabled().&&.!$deci
42700 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 24 sions->satisfy($otherWatch)).{.$
42720 72 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d ruleLiterals.=.$node->getRule()-
42740 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 >literals;..$alternativeLiterals
42760 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 2c 20 66 .=.array_filter($ruleLiterals,.f
42780 75 6e 63 74 69 6f 6e 20 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 20 28 24 6c 69 74 unction.($ruleLiteral).use.($lit
427a0 65 72 61 6c 2c 20 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 20 7b eral,.$otherWatch,.$decisions).{
427c0 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 .return.$literal.!==.$ruleLitera
427e0 6c 20 26 26 0a 24 6f 74 68 65 72 57 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 l.&&.$otherWatch.!==.$ruleLitera
42800 6c 20 26 26 0a 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 72 75 6c 65 l.&&.!$decisions->conflict($rule
42820 4c 69 74 65 72 61 6c 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c Literal);.});..if.($alternativeL
42840 69 74 65 72 61 6c 73 29 20 7b 0a 72 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 iterals).{.reset($alternativeLit
42860 65 72 61 6c 73 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 6c 69 74 65 72 61 erals);.$this->moveWatch($litera
42880 6c 2c 20 63 75 72 72 65 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 l,.current($alternativeLiterals)
428a0 2c 20 24 6e 6f 64 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 63 69 ,.$node);.continue;.}..if.($deci
428c0 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a sions->conflict($otherWatch)).{.
428e0 72 65 74 75 72 6e 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d 0a 0a 24 64 65 63 return.$node->getRule();.}..$dec
42900 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 6c 65 76 isions->decide($otherWatch,.$lev
42920 65 6c 2c 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a 24 63 68 61 69 6e el,.$node->getRule());.}..$chain
42940 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a ->next();.}..return.null;.}.....
42960 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 6d 6f 76 65 57 61 74 ......protected.function.moveWat
42980 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 2c 20 24 6e 6f ch($fromLiteral,.$toLiteral,.$no
429a0 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 de).{.if.(!isset($this->watchCha
429c0 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 ins[$toLiteral])).{.$this->watch
429e0 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 Chains[$toLiteral].=.new.RuleWat
42a00 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 66 72 chChain;.}..$node->moveWatch($fr
42a20 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 77 omLiteral,.$toLiteral);.$this->w
42a40 61 74 63 68 43 68 61 69 6e 73 5b 24 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e 72 65 6d 6f 76 65 atchChains[$fromLiteral]->remove
42a60 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 ();.$this->watchChains[$toLitera
42a80 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a l]->unshift($node);.}.}.<?php...
42aa0 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
42ac0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 ndencyResolver;.........class.Ru
42ae0 6c 65 57 61 74 63 68 4e 6f 64 65 0a 7b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 31 3b 0a 70 75 leWatchNode.{.public.$watch1;.pu
42b00 62 6c 69 63 20 24 77 61 74 63 68 32 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 3b 0a blic.$watch2;..protected.$rule;.
42b20 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
42b40 74 28 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a t($rule).{.$this->rule.=.$rule;.
42b60 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 73 3b 0a 0a 24 .$literals.=.$rule->literals;..$
42b80 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 this->watch1.=.count($literals).
42ba0 3e 20 30 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 20 3a 20 30 3b 0a 24 74 68 69 73 2d 3e 77 >.0.?.$literals[0].:.0;.$this->w
42bc0 61 74 63 68 32 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 31 20 3f 20 24 atch2.=.count($literals).>.1.?.$
42be0 6c 69 74 65 72 61 6c 73 5b 31 5d 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c literals[1].:.0;.}..........publ
42c00 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 44 65 63 69 ic.function.watch2OnHighest(Deci
42c20 73 69 6f 6e 73 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 sions.$decisions).{.$literals.=.
42c40 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 0a 20 69 66 20 28 63 6f $this->rule->literals;....if.(co
42c60 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3c 20 33 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a unt($literals).<.3).{.return;.}.
42c80 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 .$watchLevel.=.0;..foreach.($lit
42ca0 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 6c 65 76 65 6c 20 3d 20 24 64 erals.as.$literal).{.$level.=.$d
42cc0 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 6c ecisions->decisionLevel($literal
42ce0 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 24 77 61 74 63 68 4c 65 76 65 6c 29 20 7b 0a );..if.($level.>.$watchLevel).{.
42d00 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 77 61 74 63 68 $this->watch2.=.$literal;.$watch
42d20 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c Level.=.$level;.}.}.}.......publ
42d40 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ic.function.getRule().{.return.$
42d60 74 68 69 73 2d 3e 72 75 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->rule;.}........public.func
42d80 74 69 6f 6e 20 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 69 tion.getOtherWatch($literal).{.i
42da0 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a f.($this->watch1.==.$literal).{.
42dc0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 return.$this->watch2;.}.else.{.r
42de0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 31 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a eturn.$this->watch1;.}.}........
42e00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 2c public.function.moveWatch($from,
42e20 20 24 74 6f 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 24 66 72 .$to).{.if.($this->watch1.==.$fr
42e40 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 24 74 6f 3b 0a 7d 20 65 6c 73 om).{.$this->watch1.=.$to;.}.els
42e60 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 74 6f 3b 0a 7d 0a 7d 0a 7d 0a 3c e.{.$this->watch2.=.$to;.}.}.}.<
42e80 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
42ea0 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 er\DependencyResolver;..use.Comp
42ec0 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
42ee0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 ace;.use.Composer\Repository\Pla
42f00 74 66 6f 72 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 tformRepository;.....class.Solve
42f20 72 0a 7b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 r.{.const.BRANCH_LITERALS.=.0;.c
42f40 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 0a 70 72 6f 74 65 63 74 onst.BRANCH_LEVEL.=.1;...protect
42f60 65 64 20 24 70 6f 6c 69 63 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 ed.$policy;..protected.$pool;..p
42f80 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 rotected.$installed;..protected.
42fa0 24 72 75 6c 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 $rules;..protected.$ruleSetGener
42fc0 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 0a 0a 70 72 6f 74 65 63 ator;..protected.$jobs;...protec
42fe0 74 65 64 20 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 ted.$updateMap.=.array();..prote
43000 63 74 65 64 20 24 77 61 74 63 68 47 72 61 70 68 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 cted.$watchGraph;..protected.$de
43020 63 69 73 69 6f 6e 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 cisions;..protected.$installedMa
43040 70 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 3b 0a p;...protected.$propagateIndex;.
43060 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a .protected.$branches.=.array();.
43080 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a .protected.$problems.=.array();.
430a0 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 64 50 6f 6f 6c 20 3d 20 61 72 72 61 79 28 .protected.$learnedPool.=.array(
430c0 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 64 57 68 79 20 3d 20 61 72 72 61 );..protected.$learnedWhy.=.arra
430e0 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e y();.......public.function.__con
43100 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 struct(PolicyInterface.$policy,.
43120 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 Pool.$pool,.RepositoryInterface.
43140 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 $installed).{.$this->policy.=.$p
43160 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 olicy;.$this->pool.=.$pool;.$thi
43180 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 24 74 68 69 73 s->installed.=.$installed;.$this
431a0 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 ->ruleSetGenerator.=.new.RuleSet
431c0 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 29 3b 0a 7d 0a 0a 0a 0a Generator($policy,.$pool);.}....
431e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 53 65 74 53 69 7a 65 28 .public.function.getRuleSetSize(
43200 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 0a ).{.return.count($this->rules);.
43220 7d 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 41 73 73 65 72 74 }....private.function.makeAssert
43240 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 69 73 69 6f 6e 53 74 ionRuleDecisions().{.$decisionSt
43260 61 72 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 20 2d 20 art.=.count($this->decisions).-.
43280 31 3b 0a 0a 24 72 75 6c 65 73 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 1;..$rulesCount.=.count($this->r
432a0 75 6c 65 73 29 3b 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 30 3b 20 24 72 75 6c ules);.for.($ruleIndex.=.0;.$rul
432c0 65 49 6e 64 65 78 20 3c 20 24 72 75 6c 65 73 43 6f 75 6e 74 3b 20 24 72 75 6c 65 49 6e 64 65 78 eIndex.<.$rulesCount;.$ruleIndex
432e0 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 ++).{.$rule.=.$this->rules->rule
43300 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 72 75 6c 65 2d 3e 69 ById[$ruleIndex];..if.(!$rule->i
43320 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 sAssertion().||.$rule->isDisable
43340 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 d()).{.continue;.}..$literals.=.
43360 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 20 3d 20 24 6c 69 74 $rule->literals;.$literal.=.$lit
43380 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 erals[0];..if.(!$this->decisions
433a0 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 74 68 69 ->decided(abs($literal))).{.$thi
433c0 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 31 s->decisions->decide($literal,.1
433e0 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 ,.$rule);.continue;.}..if.($this
43400 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 ->decisions->satisfy($literal)).
43420 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 53 65 74 3a 3a 54 59 {.continue;.}....if.(RuleSet::TY
43440 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 29 PE_LEARNED.===.$rule->getType())
43460 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d .{.$rule->disable();.continue;.}
43480 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e ..$conflict.=.$this->decisions->
434a0 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 63 6f decisionRule($literal);..if.($co
434c0 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 nflict.&&.RuleSet::TYPE_PACKAGE.
434e0 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 70 72 6f ===.$conflict->getType()).{.$pro
43500 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b blem.=.new.Problem($this->pool);
43520 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 72 6f ..$problem->addRule($rule);.$pro
43540 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 24 74 68 69 73 2d blem->addRule($conflict);.$this-
43560 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 70 >disableProblem($rule);.$this->p
43580 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a roblems[].=.$problem;.continue;.
435a0 7d 0a 0a 0a 20 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 }....$problem.=.new.Problem($thi
435c0 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c s->pool);.$problem->addRule($rul
435e0 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 e);.$problem->addRule($conflict)
43600 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 ;......foreach.($this->rules->ge
43620 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 20 tIteratorFor(RuleSet::TYPE_JOB).
43640 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 61 73 73 65 72 74 52 75 6c as.$assertRule).{.if.($assertRul
43660 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 7c 7c 20 21 24 61 73 73 65 72 74 52 75 6c 65 2d e->isDisabled().||.!$assertRule-
43680 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 >isAssertion()).{.continue;.}..$
436a0 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 assertRuleLiterals.=.$assertRule
436c0 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 74 65 72 61 6c 20 3d ->literals;.$assertRuleLiteral.=
436e0 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 61 62 .$assertRuleLiterals[0];..if.(ab
43700 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 28 24 61 73 73 65 72 74 52 75 6c 65 4c s($literal).!==.abs($assertRuleL
43720 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d iteral)).{.continue;.}..$problem
43740 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 64 ->addRule($assertRule);.$this->d
43760 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 7d 0a 24 74 isableProblem($assertRule);.}.$t
43780 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 74 68 his->problems[].=.$problem;..$th
437a0 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 73 65 74 28 24 64 65 is->decisions->resetToOffset($de
437c0 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 3d 20 2d 31 3b 0a 7d cisionStart);.$ruleIndex.=.-1;.}
437e0 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 49 6e 73 74 .}..protected.function.setupInst
43800 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 6c 6c 65 64 4d 61 70 alledMap().{.$this->installedMap
43820 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 69 6e 73 74 .=.array();.foreach.($this->inst
43840 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 70 61 63 6b 61 67 65 alled->getPackages().as.$package
43860 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 70 61 63 6b 61 67 65 ).{.$this->installedMap[$package
43880 2d 3e 69 64 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ->id].=.$package;.}.}.....protec
438a0 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 75 69 72 65 ted.function.checkForRootRequire
438c0 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 29 0a 7b 0a Problems($ignorePlatformReqs).{.
438e0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a foreach.($this->jobs.as.$job).{.
43900 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 75 70 64 switch.($job['cmd']).{.case.'upd
43920 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 6c 2d 3e 77 ate':.$packages.=.$this->pool->w
43940 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'],
43960 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 28 24 .$job['constraint']);.foreach.($
43980 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 69 73 73 65 packages.as.$package).{.if.(isse
439a0 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e t($this->installedMap[$package->
439c0 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 63 6b 61 67 id])).{.$this->updateMap[$packag
439e0 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 61 73 65 20 e->id].=.true;.}.}.break;..case.
43a00 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 2d 3e 69 6e 'update-all':.foreach.($this->in
43a20 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 68 69 73 2d stalledMap.as.$package).{.$this-
43a40 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 72 75 65 3b >updateMap[$package->id].=.true;
43a60 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 66 20 28 24 .}.break;..case.'install':.if.($
43a80 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 61 74 63 68 ignorePlatformReqs.&&.preg_match
43aa0 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 5f 50 41 (PlatformRepository::PLATFORM_PA
43ac0 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 6d 65 27 5d CKAGE_REGEX,.$job['packageName']
43ae0 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 6f 6f 6c 2d )).{.break;.}..if.(!$this->pool-
43b00 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'
43b20 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 72 6f 62 6c ],.$job['constraint'])).{.$probl
43b40 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 em.=.new.Problem($this->pool);.$
43b60 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 72 61 79 28 problem->addRule(new.Rule(array(
43b80 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 2d 3e 70 72 ),.null,.null,.$job));.$this->pr
43ba0 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 3b 0a 7d 0a oblems[].=.$problem;.}.break;.}.
43bc0 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 6f 6c 76 65 28 }.}.......public.function.solve(
43be0 52 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 Request.$request,.$ignorePlatfor
43c00 6d 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 mReqs.=.false).{.$this->jobs.=.$
43c20 72 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 request->getJobs();..$this->setu
43c40 70 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 pInstalledMap();.$this->rules.=.
43c60 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2d 3e 67 65 74 52 75 6c 65 $this->ruleSetGenerator->getRule
43c80 73 46 6f 72 28 24 74 68 69 73 2d 3e 6a 6f 62 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c sFor($this->jobs,.$this->install
43ca0 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 73 29 3b 0a 24 74 68 edMap,.$ignorePlatformReqs);.$th
43cc0 69 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 is->checkForRootRequireProblems(
43ce0 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 73 2d 3e 64 65 63 $ignorePlatformReqs);.$this->dec
43d00 69 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 isions.=.new.Decisions($this->po
43d20 6f 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 ol);.$this->watchGraph.=.new.Rul
43d40 65 57 61 74 63 68 47 72 61 70 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 eWatchGraph;..foreach.($this->ru
43d60 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 les.as.$rule).{.$this->watchGrap
43d80 68 2d 3e 69 6e 73 65 72 74 28 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 72 75 6c h->insert(new.RuleWatchNode($rul
43da0 65 29 29 3b 0a 7d 0a 0a 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c e));.}...$this->makeAssertionRul
43dc0 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 53 61 74 28 74 72 75 eDecisions();..$this->runSat(tru
43de0 65 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 e);....foreach.($this->installed
43e00 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 69 66 Map.as.$packageId.=>.$void).{.if
43e20 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 70 .($this->decisions->undecided($p
43e40 61 63 6b 61 67 65 49 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 ackageId)).{.$this->decisions->d
43e60 65 63 69 64 65 28 2d 24 70 61 63 6b 61 67 65 49 64 2c 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d ecide(-$packageId,.1,.null);.}.}
43e80 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 7b 0a 74 68 72 6f 77 20 6e ..if.($this->problems).{.throw.n
43ea0 65 77 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 ew.SolverProblemsException($this
43ec0 2d 3e 70 72 6f 62 6c 65 6d 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 ->problems,.$this->installedMap)
43ee0 3b 0a 7d 0a 0a 24 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 6e 65 77 20 54 72 61 6e 73 61 63 74 ;.}..$transaction.=.new.Transact
43f00 69 6f 6e 28 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 ion($this->policy,.$this->pool,.
43f20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 74 68 69 73 2d 3e 64 65 63 69 $this->installedMap,.$this->deci
43f40 73 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 2d 3e 67 65 sions);..return.$transaction->ge
43f60 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 tOperations();.}...........prote
43f80 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 0a cted.function.propagate($level).
43fa0 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 64 {.while.($this->decisions->valid
43fc0 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 7b Offset($this->propagateIndex)).{
43fe0 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 .$decision.=.$this->decisions->a
44000 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 0a tOffset($this->propagateIndex);.
44020 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 3e .$conflict.=.$this->watchGraph->
44040 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 69 propagateLiteral(.$decision[Deci
44060 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 6c sions::DECISION_LITERAL],.$level
44080 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 72 ,.$this->decisions.);..$this->pr
440a0 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 20 opagateIndex++;..if.($conflict).
440c0 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 20 {.return.$conflict;.}.}..return.
440e0 6e 75 6c 6c 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 72 null;.}.......private.function.r
44100 65 76 65 72 74 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 evert($level).{.while.(!$this->d
44120 65 63 69 73 69 6f 6e 73 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 ecisions->isEmpty()).{.$literal.
44140 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 =.$this->decisions->lastLiteral(
44160 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 );..if.($this->decisions->undeci
44180 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 ded($literal)).{.break;.}..$deci
441a0 73 69 6f 6e 4c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 sionLevel.=.$this->decisions->de
441c0 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 64 65 63 cisionLevel($literal);..if.($dec
441e0 69 73 69 6f 6e 4c 65 76 65 6c 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d isionLevel.<=.$level).{.break;.}
44200 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 ..$this->decisions->revertLast()
44220 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 63 6f 75 6e 74 28 ;.$this->propagateIndex.=.count(
44240 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 65 6d $this->decisions);.}..while.(!em
44260 70 74 79 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 26 26 20 24 74 68 69 73 2d 3e 62 pty($this->branches).&&.$this->b
44280 72 61 6e 63 68 65 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d ranches[count($this->branches).-
442a0 20 31 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 76 65 .1][self::BRANCH_LEVEL].>=.$leve
442c0 6c 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 3b l).{.array_pop($this->branches);
442e0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 .}.}.....................private
44300 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 .function.setPropagateLearn($lev
44320 65 6c 2c 20 24 6c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c el,.$literal,.$disableRules,.Rul
44340 65 20 24 72 75 6c 65 29 0a 7b 0a 24 6c 65 76 65 6c 2b 2b 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 e.$rule).{.$level++;..$this->dec
44360 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c isions->decide($literal,.$level,
44380 20 24 72 75 6c 65 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d .$rule);..while.(true).{.$rule.=
443a0 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 .$this->propagate($level);..if.(
443c0 21 24 72 75 6c 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d !$rule).{.break;.}..if.($level.=
443e0 3d 20 31 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f =.1).{.return.$this->analyzeUnso
44400 6c 76 61 62 6c 65 28 24 72 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a lvable($rule,.$disableRules);.}.
44420 0a 0a 20 6c 69 73 74 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c ...list($learnLiteral,.$newLevel
44440 2c 20 24 6e 65 77 52 75 6c 65 2c 20 24 77 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 ,.$newRule,.$why).=.$this->analy
44460 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 ze($level,.$rule);..if.($newLeve
44480 6c 20 3c 3d 20 30 20 7c 7c 20 24 6e 65 77 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b l.<=.0.||.$newLevel.>=.$level).{
444a0 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 .throw.new.SolverBugException(."
444c0 54 72 79 69 6e 67 20 74 6f 20 72 65 76 65 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 Trying.to.revert.to.invalid.leve
444e0 6c 20 22 2e 28 69 6e 74 29 20 24 6e 65 77 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c l.".(int).$newLevel.".from.level
44500 20 22 2e 28 69 6e 74 29 20 24 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 .".(int).$level.".".);.}.elseif.
44520 28 21 24 6e 65 77 52 75 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 (!$newRule).{.throw.new.SolverBu
44540 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 4e 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 gException(."No.rule.was.learned
44560 20 66 72 6f 6d 20 61 6e 61 6c 79 7a 69 6e 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 .from.analyzing.$rule.at.level.$
44580 6c 65 76 65 6c 2e 22 0a 29 3b 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c level.".);.}..$level.=.$newLevel
445a0 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 ;..$this->revert($level);..$this
445c0 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a ->rules->add($newRule,.RuleSet::
445e0 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 TYPE_LEARNED);..$this->learnedWh
44600 79 5b 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 6e 65 77 52 75 6c 65 29 5d 20 3d 20 24 y[spl_object_hash($newRule)].=.$
44620 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f 64 65 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e why;..$ruleNode.=.new.RuleWatchN
44640 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 3b 0a 24 72 75 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 68 32 ode($newRule);.$ruleNode->watch2
44660 4f 6e 48 69 67 68 65 73 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 24 74 68 OnHighest($this->decisions);.$th
44680 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e 73 65 72 74 28 24 72 75 6c 65 4e 6f 64 65 is->watchGraph->insert($ruleNode
446a0 29 3b 0a 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 65 );..$this->decisions->decide($le
446c0 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 29 3b 0a 7d arnLiteral,.$level,.$newRule);.}
446e0 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ..return.$level;.}.........priva
44700 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 te.function.selectAndInstall($le
44720 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 vel,.array.$decisionQueue,.$disa
44740 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 0a 20 24 6c 69 74 65 72 bleRules,.Rule.$rule).{...$liter
44760 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 66 65 als.=.$this->policy->selectPrefe
44780 72 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d rredPackages($this->pool,.$this-
447a0 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 >installedMap,.$decisionQueue,.$
447c0 72 75 6c 65 2d 3e 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 29 3b 0a 0a 24 73 rule->getRequiredPackage());..$s
447e0 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 electedLiteral.=.array_shift($li
44800 74 65 72 61 6c 73 29 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 terals);....if.(count($literals)
44820 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 6c ).{.$this->branches[].=.array($l
44840 69 74 65 72 61 6c 73 2c 20 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 iterals,.$level);.}..return.$thi
44860 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 73 65 s->setPropagateLearn($level,.$se
44880 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 lectedLiteral,.$disableRules,.$r
448a0 75 6c 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ule);.}.......protected.function
448c0 20 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 .analyze($level,.Rule.$rule).{.$
448e0 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 6c analyzedRule.=.$rule;.$ruleLevel
44900 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 65 .=.1;.$num.=.0;.$l1num.=.0;.$see
44920 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 20 n.=.array();.$learnedLiterals.=.
44940 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 6e array(null);..$decisionId.=.coun
44960 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 61 t($this->decisions);..$this->lea
44980 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 72 rnedPool[].=.array();..while.(tr
449a0 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 24 ue).{.$this->learnedPool[count($
449c0 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 6c this->learnedPool).-.1][].=.$rul
449e0 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 20 e;..foreach.($rule->literals.as.
44a00 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 6f $literal).{...if.($this->decisio
44a20 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 75 ns->satisfy($literal)).{.continu
44a40 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 72 e;.}..if.(isset($seen[abs($liter
44a60 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 24 al)])).{.continue;.}.$seen[abs($
44a80 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 64 literal)].=.true;..$l.=.$this->d
44aa0 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 6c ecisions->decisionLevel($literal
44ac0 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 20 );..if.(1.===.$l).{.$l1num++;.}.
44ae0 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 3b elseif.($level.===.$l).{.$num++;
44b00 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 3d .}.else.{...$learnedLiterals[].=
44b20 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 29 .$literal;..if.($l.>.$ruleLevel)
44b40 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 65 .{.$ruleLevel.=.$l;.}.}.}..$l1re
44b60 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 24 try.=.true;.while.($l1retry).{.$
44b80 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 21 l1retry.=.false;..if.(!$num.&&.!
44ba0 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 20 --$l1num).{...break.2;.}..while.
44bc0 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 7b (true).{.if.($decisionId.<=.0).{
44be0 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 .throw.new.SolverBugException(."
44c00 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 63 Reached.invalid.decision.id.$dec
44c20 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 72 isionId.while.looking.through.$r
44c40 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 65 ule.for.a.literal.present.in.the
44c60 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 29 .analyzed.rule.$analyzedRule.".)
44c80 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 3d ;.}..$decisionId--;..$decision.=
44ca0 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 63 .$this->decisions->atOffset($dec
44cc0 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 44 isionId);.$literal.=.$decision[D
44ce0 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 66 ecisions::DECISION_LITERAL];..if
44d00 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 7b .(isset($seen[abs($literal)])).{
44d20 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 69 .break;.}.}..unset($seen[abs($li
44d40 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 24 teral)]);..if.($num.&&.0.===.--$
44d60 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 62 num).{.$learnedLiterals[0].=.-ab
44d80 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 65 s($literal);..if.(!$l1num).{.bre
44da0 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 61 ak.2;.}..foreach.($learnedLitera
44dc0 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 69 ls.as.$i.=>.$learnedLiteral).{.i
44de0 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 24 f.($i.!==.0).{.unset($seen[abs($
44e00 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 2b learnedLiteral)]);.}.}...$l1num+
44e20 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 69 +;.$l1retry.=.true;.}.}..$decisi
44e40 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 28 on.=.$this->decisions->atOffset(
44e60 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 5b $decisionId);.$rule.=.$decision[
44e80 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 0a Decisions::DECISION_REASON];.}..
44ea0 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 29 $why.=.count($this->learnedPool)
44ec0 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 29 .-.1;..if.(!$learnedLiterals[0])
44ee0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 .{.throw.new.SolverBugException(
44f00 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 72 ."Did.not.find.a.learnable.liter
44f20 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 6c al.in.analyzed.rule.$analyzedRul
44f40 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 6c e.".);.}..$newRule.=.new.Rule($l
44f60 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 4e earnedLiterals,.Rule::RULE_LEARN
44f80 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 65 ED,.$why);..return.array($learne
44fa0 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 75 dLiterals[0],.$ruleLevel,.$newRu
44fc0 6c 65 2c 20 24 77 68 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 le,.$why);.}......private.functi
44fe0 6f 6e 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 50 72 6f 62 6c 65 6d on.analyzeUnsolvableRule(Problem
45000 20 24 70 72 6f 62 6c 65 6d 2c 20 52 75 6c 65 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 0a 7b .$problem,.Rule.$conflictRule).{
45020 0a 24 77 68 79 20 3d 20 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 63 6f 6e 66 6c 69 63 .$why.=.spl_object_hash($conflic
45040 74 52 75 6c 65 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 54 tRule);..if.($conflictRule->getT
45060 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 ype().==.RuleSet::TYPE_LEARNED).
45080 7b 0a 24 6c 65 61 72 6e 65 64 57 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 {.$learnedWhy.=.$this->learnedWh
450a0 79 5b 24 77 68 79 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e y[$why];.$problemRules.=.$this->
450c0 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 6c 65 61 72 6e 65 64 57 68 79 5d 3b 0a 0a 66 6f 72 65 61 learnedPool[$learnedWhy];..forea
450e0 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c ch.($problemRules.as.$problemRul
45100 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c e).{.$this->analyzeUnsolvableRul
45120 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 e($problem,.$problemRule);.}..re
45140 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 54 turn;.}..if.($conflictRule->getT
45160 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 29 20 ype().==.RuleSet::TYPE_PACKAGE).
45180 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 6e 65 78 74 53 65 63 {...return;.}..$problem->nextSec
451a0 74 69 6f 6e 28 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c tion();.$problem->addRule($confl
451c0 69 63 74 52 75 6c 65 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 ictRule);.}.......private.functi
451e0 6f 6e 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 52 75 6c 65 20 24 63 6f 6e 66 6c on.analyzeUnsolvable(Rule.$confl
45200 69 63 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 ictRule,.$disableRules).{.$probl
45220 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 em.=.new.Problem($this->pool);.$
45240 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 52 75 6c 65 29 3b problem->addRule($conflictRule);
45260 0a 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($
45280 70 72 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 problem,.$conflictRule);..$this-
452a0 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d >problems[].=.$problem;..$seen.=
452c0 20 61 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 .array();.$literals.=.$conflictR
452e0 75 6c 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 ule->literals;..foreach.($litera
45300 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 ls.as.$literal).{...if.($this->d
45320 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 ecisions->satisfy($literal)).{.c
45340 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 ontinue;.}.$seen[abs($literal)].
45360 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 =.true;.}..foreach.($this->decis
45380 69 6f 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 ions.as.$decision).{.$literal.=.
453a0 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 $decision[Decisions::DECISION_LI
453c0 54 45 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 TERAL];....if.(!isset($seen[abs(
453e0 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 68 79 $literal)])).{.continue;.}..$why
45400 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e .=.$decision[Decisions::DECISION
45420 5f 52 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 _REASON];..$problem->addRule($wh
45440 79 29 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 y);.$this->analyzeUnsolvableRule
45460 28 24 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 ($problem,.$why);..$literals.=.$
45480 77 68 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 why->literals;..foreach.($litera
454a0 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 ls.as.$literal).{...if.($this->d
454c0 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 ecisions->satisfy($literal)).{.c
454e0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 ontinue;.}.$seen[abs($literal)].
45500 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 20 =.true;.}.}..if.($disableRules).
45520 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e 74 {.foreach.($this->problems[count
45540 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 6f ($this->problems).-.1].as.$reaso
45560 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 73 n).{.$this->disableProblem($reas
45580 6f 6e 5b 27 72 75 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c 76 on['rule']);.}..$this->resetSolv
455a0 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a er();..return.1;.}..return.0;.}.
455c0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 ....private.function.disableProb
455e0 6c 65 6d 28 52 75 6c 65 20 24 77 68 79 29 0a 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 lem(Rule.$why).{.$job.=.$why->ge
45600 74 4a 6f 62 28 29 3b 0a 0a 69 66 20 28 21 24 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 tJob();..if.(!$job).{.$why->disa
45620 62 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 ble();..return;.}....foreach.($t
45640 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 0a 69 66 20 28 24 6a 6f 62 his->rules.as.$rule).{..if.($job
45660 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 .===.$rule->getJob()).{.$rule->d
45680 69 73 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f isable();.}.}.}..private.functio
456a0 6e 20 72 65 73 65 74 53 6f 6c 76 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f n.resetSolver().{.$this->decisio
456c0 6e 73 2d 3e 72 65 73 65 74 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e ns->reset();..$this->propagateIn
456e0 64 65 78 20 3d 20 30 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 dex.=.0;.$this->branches.=.array
45700 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 ();..$this->enableDisableLearned
45720 52 75 6c 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c Rules();.$this->makeAssertionRul
45740 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 eDecisions();.}.........private.
45760 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c function.enableDisableLearnedRul
45780 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 es().{.foreach.($this->rules->ge
457a0 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e tIteratorFor(RuleSet::TYPE_LEARN
457c0 45 44 29 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 ED).as.$rule).{.$why.=.$this->le
457e0 61 72 6e 65 64 57 68 79 5b 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 72 75 6c 65 29 5d arnedWhy[spl_object_hash($rule)]
45800 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 ;.$problemRules.=.$this->learned
45820 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 66 61 Pool[$why];..$foundDisabled.=.fa
45840 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 lse;.foreach.($problemRules.as.$
45860 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 2d problemRule).{.if.($problemRule-
45880 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 >isDisabled()).{.$foundDisabled.
458a0 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 66 6f 75 6e 64 44 69 =.true;.break;.}.}..if.($foundDi
458c0 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a sabled.&&.$rule->isEnabled()).{.
458e0 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 66 6f $rule->disable();.}.elseif.(!$fo
45900 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 undDisabled.&&.$rule->isDisabled
45920 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a ()).{.$rule->enable();.}.}.}....
45940 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 53 61 74 28 24 64 69 73 61 62 6c .private.function.runSat($disabl
45960 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 eRules.=.true).{.$this->propagat
45980 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 24 64 65 63 69 73 69 6f 6e eIndex.=.0;............$decision
459a0 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 Queue.=.array();.$decisionSupple
459c0 6d 65 6e 74 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 24 64 69 73 61 62 6c 65 mentQueue.=.array();....$disable
459e0 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 73 Rules.=.array();..$level.=.1;.$s
45a00 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 24 69 6e 73 74 61 6c ystemLevel.=.$level.+.1;.$instal
45a20 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 69 66 20 28 ledPos.=.0;..while.(true).{.if.(
45a40 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 1.===.$level).{.$conflictRule.=.
45a60 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 6e 75 $this->propagate($level);.if.(nu
45a80 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 74 68 69 ll.!==.$conflictRule).{.if.($thi
45aa0 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 s->analyzeUnsolvable($conflictRu
45ac0 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a le,.$disableRules)).{.continue;.
45ae0 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 }..return;.}.}....if.($level.<.$
45b00 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 systemLevel).{.$iterator.=.$this
45b20 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a ->rules->getIteratorFor(RuleSet:
45b40 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 :TYPE_JOB);.foreach.($iterator.a
45b60 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 s.$rule).{.if.($rule->isEnabled(
45b80 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 )).{.$decisionQueue.=.array();.$
45ba0 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 noneSatisfied.=.true;..foreach.(
45bc0 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 $rule->literals.as.$literal).{.i
45be0 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 f.($this->decisions->satisfy($li
45c00 74 65 72 61 6c 29 29 20 7b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 teral)).{.$noneSatisfied.=.false
45c20 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 ;.break;.}.if.($literal.>.0.&&.$
45c40 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 6c 69 74 65 this->decisions->undecided($lite
45c60 72 61 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 ral)).{.$decisionQueue[].=.$lite
45c80 72 61 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 ral;.}.}..if.($noneSatisfied.&&.
45ca0 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 count($decisionQueue)).{.....if.
45cc0 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e (count($this->installed).!=.coun
45ce0 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 t($this->updateMap)).{.$prunedQu
45d00 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f eue.=.array();.foreach.($decisio
45d20 6e 51 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 nQueue.as.$literal).{.if.(isset(
45d40 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c $this->installedMap[abs($literal
45d60 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c )])).{.$prunedQueue[].=.$literal
45d80 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 ;.if.(isset($this->updateMap[abs
45da0 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 ($literal)])).{.$prunedQueue.=.$
45dc0 64 65 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 decisionQueue;.break;.}.}.}.$dec
45de0 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 75 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a isionQueue.=.$prunedQueue;.}.}..
45e00 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 if.($noneSatisfied.&&.count($dec
45e20 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b isionQueue)).{.$oLevel.=.$level;
45e40 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c .$level.=.$this->selectAndInstal
45e60 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 l($level,.$decisionQueue,.$disab
45e80 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 leRules,.$rule);..if.(0.===.$lev
45ea0 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 6f el).{.return;.}.if.($level.<=.$o
45ec0 4c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d Level).{.break;.}.}.}.}..$system
45ee0 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f 72 Level.=.$level.+.1;....$iterator
45f00 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 ->next();.if.($iterator->valid()
45f20 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 ).{.continue;.}.}..if.($level.<.
45f40 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 $systemLevel).{.$systemLevel.=.$
45f60 6c 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 24 level;.}..for.($i.=.0,.$n.=.0;.$
45f80 6e 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 24 n.<.count($this->rules);.$i++,.$
45fa0 6e 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 n++).{.if.($i.==.count($this->ru
45fc0 6c 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 les)).{.$i.=.0;.}..$rule.=.$this
45fe0 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 69 5d 3b 0a 24 6c 69 74 65 72 61 6c 73 ->rules->ruleById[$i];.$literals
46000 20 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 69 66 20 28 24 72 75 6c 65 2d 3e .=.$rule->literals;..if.($rule->
46020 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 isDisabled()).{.continue;.}..$de
46040 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 cisionQueue.=.array();..........
46060 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 ....foreach.($literals.as.$liter
46080 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 29 20 7b 0a 69 66 20 28 21 al).{.if.($literal.<=.0).{.if.(!
460a0 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c $this->decisions->decidedInstall
460c0 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a (abs($literal))).{.continue.2;..
460e0 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 .}.}.else.{.if.($this->decisions
46100 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 ->decidedInstall(abs($literal)))
46120 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 .{.continue.2;...}.if.($this->de
46140 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 cisions->undecided(abs($literal)
46160 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c )).{.$decisionQueue[].=.$literal
46180 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 ;.}.}.}....if.(count($decisionQu
461a0 65 75 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c 65 76 65 6c eue).<.2).{.continue;.}..$oLevel
461c0 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 .=.$level;.$level.=.$this->selec
461e0 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 tAndInstall($level,.$decisionQue
46200 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 ue,.$disableRules,.$rule);..if.(
46220 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 0a 0a 20 24 6e 20 0.===.$level).{.return;.}....$n.
46240 3d 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 =.-1;.}..if.($level.<.$systemLev
46260 65 6c 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 el).{.continue;.}....if.(count($
46280 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 this->branches)).{.$lastLiteral.
462a0 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 =.null;.$lastLevel.=.null;.$last
462c0 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 BranchIndex.=.0;.$lastBranchOffs
462e0 65 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 63 6f 75 6e 74 et.=.0;.$l.=.0;..for.($i.=.count
46300 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 3b 20 24 69 20 3e 3d 20 30 3b 20 ($this->branches).-.1;.$i.>=.0;.
46320 24 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 29 20 3d 20 24 74 $i--).{.list($literals,.$l).=.$t
46340 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 his->branches[$i];..foreach.($li
46360 74 65 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b terals.as.$offset.=>.$literal).{
46380 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 .if.($literal.&&.$literal.>.0.&&
463a0 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c .$this->decisions->decisionLevel
463c0 28 24 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 ($literal).>.$l.+.1).{.$lastLite
463e0 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 ral.=.$literal;.$lastBranchIndex
46400 20 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 .=.$i;.$lastBranchOffset.=.$offs
46420 65 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 et;.$lastLevel.=.$l;.}.}.}..if.(
46440 24 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 62 72 61 $lastLiteral).{.unset($this->bra
46460 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 nches[$lastBranchIndex][self::BR
46480 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 ANCH_LITERALS][$lastBranchOffset
464a0 5d 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d ]);..$level.=.$lastLevel;.$this-
464c0 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e >revert($level);..$why.=.$this->
464e0 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 24 6f 4c 65 76 65 decisions->lastReason();..$oLeve
46500 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 50 l.=.$level;.$level.=.$this->setP
46520 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 ropagateLearn($level,.$lastLiter
46540 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 al,.$disableRules,.$why);..if.($
46560 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 level.==.0).{.return;.}..continu
46580 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a e;.}.}..break;.}.}.}.<?php......
465a0 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
465c0 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 42 75 67 ncyResolver;.....class.SolverBug
465e0 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
46600 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 6f 6e 73 74 72 75 63 ion.{.public.function.__construc
46620 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 t($message).{.parent::__construc
46640 74 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c 6e 54 68 69 73 20 65 78 63 65 70 74 69 6f 6e 20 77 61 t(.$message."\nThis.exception.wa
46660 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 63 61 75 73 65 64 20 62 79 20 61 20 62 75 67 20 69 6e s.most.likely.caused.by.a.bug.in
46680 20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e 0a 22 50 6c 65 61 73 65 20 72 65 70 6f 72 74 20 74 68 .Composer.\n".."Please.report.th
466a0 65 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 72 61 6e 2c 20 74 68 65 20 65 78 61 63 74 20 65 72 72 e.command.you.ran,.the.exact.err
466c0 6f 72 20 79 6f 75 20 72 65 63 65 69 76 65 64 2c 20 61 6e 64 20 79 6f 75 72 20 63 6f 6d 70 6f 73 or.you.received,.and.your.compos
466e0 65 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f er.json.on.https://github.com/co
46700 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 20 2d 20 74 68 61 6e 6b 20 79 mposer/composer/issues.-.thank.y
46720 6f 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ou!\n");.}.}.<?php............na
46740 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
46760 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 45 78 63 ver;.....class.SolverProblemsExc
46780 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 6e eption.extends.\RuntimeException
467a0 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 63 74 65 .{.protected.$problems;.protecte
467c0 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 74 69 6f d.$installedMap;..public.functio
467e0 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 2c 20 61 n.__construct(array.$problems,.a
46800 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 70 72 6f rray.$installedMap).{.$this->pro
46820 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 74 61 6c blems.=.$problems;.$this->instal
46840 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 6e 74 3a ledMap.=.$installedMap;..parent:
46860 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 73 61 67 :__construct($this->createMessag
46880 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 6e 20 63 e(),.2);.}..protected.function.c
468a0 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 3b 0a 66 reateMessage().{.$text.=."\n";.f
468c0 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 20 3d 3e oreach.($this->problems.as.$i.=>
468e0 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 6c 65 6d .$problem).{.$text..=."..Problem
46900 20 22 2e 28 24 69 20 2b 20 31 29 2e 24 70 72 6f 62 6c 65 6d 2d 3e 67 65 74 50 72 65 74 74 79 53 .".($i.+.1).$problem->getPrettyS
46920 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 3b tring($this->installedMap)."\n";
46940 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 74 .}..if.(strpos($text,.'could.not
46960 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 6f .be.found').||.strpos($text,.'no
46980 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 65 .matching.package.found')).{.$te
469a0 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 41 xt..=."\nPotential.causes:\n.-.A
469c0 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 68 .typo.in.the.package.name\n.-.Th
469e0 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 20 e.package.is.not.available.in.a.
46a00 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 20 stable-enough.version.according.
46a20 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 6e to.your.minimum-stability.settin
46a40 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 65 g\n...see.<https://groups.google
46a60 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 65 .com/d/topic/composer-dev/_g3ASe
46a80 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 69 IFlrc/discussion>.for.more.detai
46aa0 6c 73 2e 5c 6e 5c 6e 52 65 61 64 20 3c 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 ls.\n\nRead.<https://getcomposer
46ac0 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
46ae0 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
46b00 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.
46b20 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.
46b40 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......
46b60 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
46b80 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
46ba0 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
46bc0 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
46be0 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
46c00 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
46c20 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
46c40 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,
46c60 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
46c80 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
46ca0 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.
46cc0 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
46ce0 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
46d00 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
46d20 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
46d40 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()
46d60 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
46d80 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.=.
46da0 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
46dc0 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
46de0 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
46e00 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
46e20 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];..$
46e40 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
46e60 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
46e80 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
46ea0 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
46ec0 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
46ee0 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(
46f00 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
46f20 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
46f40 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
46f60 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].=
46f80 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,.'
46fa0 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'.=>.
46fc0 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
46fe0 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
47000 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;.
47020 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
47040 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
47060 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,.);.}.}.}
47080 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.$
470a0 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
470c0 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
470e0 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
47100 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.=
47120 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($
47140 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.&&.
47160 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
47180 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
471a0 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
471c0 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
471e0 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
47200 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
47220 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,.
47240 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
47260 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
47280 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
472a0 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).{.
472c0 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
472e0 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
47300 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
47320 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).);.
47340 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
47360 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_
47380 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
473a0 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
473c0 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,.
473e0 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
47400 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($
47420 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());.
47440 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
47460 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
47480 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
474a0 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
474c0 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
474e0 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
47500 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);.}.}.}.
47520 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;.
47540 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[$
47560 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(.$
47580 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'
475a0 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
475c0 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
475e0 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[$
47600 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
47620 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'],.
47640 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'
47660 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
47680 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
476a0 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
476c0 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
476e0 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
47700 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
47720 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
47740 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
47760 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
47780 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
477a0 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
477c0 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
477e0 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
47800 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.(
47820 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
47840 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
47860 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
47880 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());..
478a0 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
478c0 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-
478e0 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;.}..
47900 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()
47920 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
47940 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.
47960 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.=
47980 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
479a0 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-
479c0 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
479e0 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
47a00 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
47a20 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
47a40 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.=
47a60 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
47a80 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
47aa0 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
47ac0 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
47ae0 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[].=
47b00 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
47b20 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
47b40 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
47b60 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
47b80 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
47ba0 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
47bc0 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
47be0 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
47c00 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
47c20 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
47c40 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
47c60 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
47c80 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
47ca0 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
47cc0 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[
47ce0 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
47d00 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
47d20 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
47d40 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
47d60 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
47d80 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
47da0 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
47dc0 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
47de0 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
47e00 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
47e20 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->
47e40 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
47e60 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
47e80 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
47ea0 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
47ec0 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
47ee0 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
47f00 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
47f20 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
47f40 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f ace.Composer\Downloader;..use.Co
47f60 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;
47f80 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 46 69 .use.Symfony\Component\Finder\Fi
47fa0 6e 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 nder;.........abstract.class.Arc
47fc0 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 46 69 6c 65 44 6f 77 6e 6c hiveDownloader.extends.FileDownl
47fe0 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c oader.{....public.function.downl
48000 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,.$
48020 70 61 74 68 29 0a 7b 0a 24 74 65 6d 70 6f 72 61 72 79 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 path).{.$temporaryDir.=.$this->c
48040 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f onfig->get('vendor-dir').'/compo
48060 73 65 72 2f 27 2e 73 75 62 73 74 72 28 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 74 72 75 65 ser/'.substr(md5(uniqid('',.true
48080 29 29 2c 20 30 2c 20 38 29 3b 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 )),.0,.8);.$retries.=.3;.while.(
480a0 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 70 61 72 65 6e 74 $retries--).{.$fileName.=.parent
480c0 3a 3a 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 ::download($package,.$path);..if
480e0 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 .($this->io->isVerbose()).{.$thi
48100 73 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 s->io->writeError('....Extractin
48120 67 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 g.archive');.}..try.{.$this->fil
48140 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 esystem->ensureDirectoryExists($
48160 74 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 temporaryDir);.try.{.$this->extr
48180 61 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 act($fileName,.$temporaryDir);.}
481a0 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 70 61 72 65 6e .catch.(\Exception.$e).{...paren
481c0 74 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 t::clearCache($package,.$path);.
481e0 74 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 throw.$e;.}..$this->filesystem->
48200 75 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 unlink($fileName);..$contentDir.
48220 3d 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 =.$this->getFolderContent($tempo
48240 72 61 72 79 44 69 72 29 3b 0a 0a 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f raryDir);....if.(1.===.count($co
48260 6e 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 ntentDir).&&.is_dir(reset($conte
48280 6e 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 ntDir))).{.$contentDir.=.$this->
482a0 67 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 getFolderContent((string).reset(
482c0 24 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 $contentDir));.}....foreach.($co
482e0 6e 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 ntentDir.as.$file).{.$file.=.(st
48300 72 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 ring).$file;.$this->filesystem->
48320 72 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 rename($file,.$path...'/'...base
48340 6e 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 name($file));.}..$this->filesyst
48360 65 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 em->removeDirectory($temporaryDi
48380 72 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 r);.if.($this->filesystem->isDir
483a0 45 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 Empty($this->config->get('vendor
483c0 2d 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 -dir').'/composer/')).{.$this->f
483e0 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 ilesystem->removeDirectory($this
48400 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f ->config->get('vendor-dir').'/co
48420 6d 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 mposer/');.}.if.($this->filesyst
48440 65 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 em->isDirEmpty($this->config->ge
48460 74 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 t('vendor-dir'))).{.$this->files
48480 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 3e 63 6f ystem->removeDirectory($this->co
484a0 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 7d 0a 7d 20 63 61 nfig->get('vendor-dir'));.}.}.ca
484c0 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 tch.(\Exception.$e).{...$this->f
484e0 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 ilesystem->removeDirectory($path
48500 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 );.$this->filesystem->removeDire
48520 63 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 ctory($temporaryDir);....if.($re
48540 74 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 tries.&&.$e.instanceof.\Unexpect
48560 65 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 edValueException.&&.class_exists
48580 28 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 ('ZipArchive').&&.$e->getCode().
485a0 3d 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 69 66 20 ===.\ZipArchive::ER_NOZIP).{.if.
485c0 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->
485e0 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 69 70 20 io->writeError('....Invalid.zip.
48600 66 69 6c 65 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 2c 20 72 65 74 file.('.$e->getMessage().'),.ret
48620 72 79 69 6e 67 2e 2e 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 rying...');.}.else.{.$this->io->
48640 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 69 70 20 66 69 6c 65 writeError('....Invalid.zip.file
48660 2c 20 72 65 74 72 79 69 6e 67 2e 2e 2e 27 29 3b 0a 7d 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 ,.retrying...');.}.usleep(500000
48680 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 0a 0a 62 72 65 );.continue;.}..throw.$e;.}..bre
486a0 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 72 28 27 27 29 ak;.}..$this->io->writeError('')
486c0 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 ;.}.....protected.function.getFi
486e0 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 65 leName(PackageInterface.$package
48700 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 74 68 2e 27 2f ,.$path).{.return.rtrim($path.'/
48720 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 28 24 70 61 63 '.md5($path.spl_object_hash($pac
48740 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 72 6c 28 24 70 kage)).'.'.pathinfo(parse_url($p
48760 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 52 4c 5f 50 41 ackage->getDistUrl(),.PHP_URL_PA
48780 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 2e 27 29 3b 0a TH),.PATHINFO_EXTENSION),.'.');.
487a0 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 6f 63 65 73 73 }.....protected.function.process
487c0 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 Url(PackageInterface.$package,.$
487e0 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 74 52 65 66 65 url).{.if.($package->getDistRefe
48800 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 74 68 75 62 2e rence().&&.strpos($url,.'github.
48820 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 68 74 74 70 73 com')).{.if.(preg_match('{^https
48840 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 5b 5e 2f 5d 2b ?://(?:www\.)?github\.com/([^/]+
48860 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 29 24 7d 69 27 )/([^/]+)/(zip|tar)ball/(.+)$}i'
48880 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 68 74 74 ,.$url,.$match)).{...$url.=.'htt
488a0 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 20 24 6d ps://api.github.com/repos/'...$m
488c0 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 27 20 2e atch[1]...'/'..$match[2]...'/'..
488e0 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 67 65 2d .$match[3]...'ball/'...$package-
48900 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 20 28 24 >getDistReference();.}.elseif.($
48920 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 26 20 70 package->getDistReference().&&.p
48940 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 77 5c 2e 29 3f reg_match('{^https?://(?:www\.)?
48960 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 2f 61 72 63 68 github\.com/([^/]+)/([^/]+)/arch
48980 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 7d 69 27 2c 20 ive/.+\.(zip|tar)(?:\.gz)?$}i',.
489a0 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 68 74 74 70 73 $url,.$match)).{...$url.=.'https
489c0 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 20 24 6d 61 74 ://api.github.com/repos/'...$mat
489e0 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 27 20 2e 20 24 ch[1]...'/'..$match[2]...'/'...$
48a00 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 67 65 2d 3e 67 match[3]...'ball/'...$package->g
48a20 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 20 28 24 70 61 etDistReference();.}.elseif.($pa
48a40 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 20 70 72 65 ckage->getDistReference().&&.pre
48a60 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 74 68 75 62 5c g_match('{^https?://api\.github\
48a80 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 28 7a 69 70 7c .com/repos/([^/]+)/([^/]+)/(zip|
48aa0 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 20 24 6d 61 74 tar)ball(?:/.+)?$}i',.$url,.$mat
48ac0 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 ch)).{...$url.=.'https://api.git
48ae0 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f hub.com/repos/'...$match[1]...'/
48b00 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e '..$match[2]...'/'...$match[3]..
48b20 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 .'ball/'...$package->getDistRefe
48b40 72 65 6e 63 65 28 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 rence();.}.}.elseif.($package->g
48b60 65 74 44 69 73 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 etDistReference().&&.strpos($url
48b80 2c 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d ,.'bitbucket.org')).{.if.(preg_m
48ba0 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 62 69 74 62 75 atch('{^https?://(?:www\.)?bitbu
48bc0 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 67 65 74 2f 28 2e cket\.org/([^/]+)/([^/]+)/get/(.
48be0 2b 29 5c 2e 28 7a 69 70 7c 74 61 72 5c 2e 67 7a 7c 74 61 72 5c 2e 62 7a 32 29 24 7d 69 27 2c 20 +)\.(zip|tar\.gz|tar\.bz2)$}i',.
48c00 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 68 74 74 70 73 $url,.$match)).{...$url.=.'https
48c20 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e ://bitbucket.org/'...$match[1]..
48c40 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 67 65 74 2f 27 20 2e 20 24 70 61 63 .'/'..$match[2]...'/get/'...$pac
48c60 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 2e 20 27 2e 27 20 2e kage->getDistReference()...'.'..
48c80 20 24 6d 61 74 63 68 5b 34 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a .$match[4];.}.}..return.parent::
48ca0 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 7d 0a 0a 0a processUrl($package,.$url);.}...
48cc0 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .......abstract.protected.functi
48ce0 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a on.extract($file,.$path);.......
48d00 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 6c 64 65 72 43 6f 6e 74 65 .private.function.getFolderConte
48d20 6e 74 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 nt($dir).{.$finder.=.Finder::cre
48d40 61 74 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 ate().->ignoreVCS(false).->ignor
48d60 65 44 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 eDotFiles(false).->depth(0).->in
48d80 28 24 64 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 ($dir);..return.iterator_to_arra
48da0 79 28 24 66 69 6e 64 65 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a y($finder);.}.}.<?php...........
48dc0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a .namespace.Composer\Downloader;.
48de0 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
48e00 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 68 61 6e 67 65 52 65 erface;.......interface.ChangeRe
48e20 70 6f 72 74 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 portInterface.{........public.fu
48e40 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e nction.getLocalChanges(PackageIn
48e60 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 terface.$package,.$path);.}.<?ph
48e80 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\
48ea0 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
48ec0 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
48ee0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 \IO\IOInterface;.use.Composer\Ut
48f00 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 6f 77 6e 6c il\Filesystem;.......class.Downl
48f20 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 69 76 61 74 oadManager.{.private.$io;.privat
48f40 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 74 65 20 24 e.$preferDist.=.false;.private.$
48f60 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 65 20 24 66 preferSource.=.false;.private.$f
48f80 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 65 72 73 20 ilesystem;.private.$downloaders.
48fa0 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 6e 63 74 69 =.array();.........public.functi
48fc0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
48fe0 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 79 73 74 65 $preferSource.=.false,.Filesyste
49000 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 m.$filesystem.=.null).{.$this->i
49020 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 20 3d 20 24 o.=.$io;.$this->preferSource.=.$
49040 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 74 65 6d 20 preferSource;.$this->filesystem.
49060 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 =.$filesystem.?:.new.Filesystem(
49080 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 73 65 74 50 );.}........public.function.setP
490a0 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 0a 24 74 68 referSource($preferSource).{.$th
490c0 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 75 72 63 65 is->preferSource.=.$preferSource
490e0 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 69 63 ;..return.$this;.}........public
49100 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 .function.setPreferDist($preferD
49120 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 70 72 65 66 ist).{.$this->preferDist.=.$pref
49140 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 0a 0a 0a 0a erDist;..return.$this;.}........
49160 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 6f 67 72 65 .public.function.setOutputProgre
49180 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 68 20 28 24 ss($outputProgress).{.foreach.($
491a0 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 61 64 65 72 this->downloaders.as.$downloader
491c0 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 6f 67 72 65 ).{.$downloader->setOutputProgre
491e0 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 72 6e 20 24 ss($outputProgress);.}..return.$
49200 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.
49220 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 64 65 72 49 setDownloader($type,.DownloaderI
49240 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 65 20 3d 20 nterface.$downloader).{.$type.=.
49260 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 77 6e 6c 6f strtolower($type);.$this->downlo
49280 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 0a 72 65 74 aders[$type].=.$downloader;..ret
492a0 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
492c0 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 0a 24 74 79 70 tion.getDownloader($type).{.$typ
492e0 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 21 69 73 73 65 e.=.strtolower($type);.if.(!isse
49300 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 29 29 20 7b 0a t($this->downloaders[$type])).{.
49320 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
49340 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 61 64 65 72 20 ion(sprintf('Unknown.downloader.
49360 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 25 73 2e 27 2c type:.%s..Available.types:.%s.',
49380 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 5f 6b 65 79 73 .$type,.implode(',.',.array_keys
493a0 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 0a 72 65 74 75 ($this->downloaders))));.}..retu
493c0 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 5d 3b 0a 7d 0a rn.$this->downloaders[$type];.}.
493e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 ..........public.function.getDow
49400 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 nloaderForInstalledPackage(Packa
49420 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c geInterface.$package).{.$install
49440 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 74 49 6e 73 74 61 ationSource.=.$package->getInsta
49460 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 61 70 61 63 6b 61 llationSource();..if.('metapacka
49480 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 29 29 20 7b 0a 72 ge'.===.$package->getType()).{.r
494a0 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 69 6e 73 74 61 6c eturn;.}..if.('dist'.===.$instal
494c0 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 lationSource).{.$downloader.=.$t
494e0 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 his->getDownloader($package->get
49500 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 75 72 63 65 27 20 DistType());.}.elseif.('source'.
49520 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
49540 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 loader.=.$this->getDownloader($p
49560 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 7d 20 65 6c 73 65 ackage->getSourceType());.}.else
49580 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
495a0 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 65 2e 27 20 73 65 eption(.'Package.'.$package.'.se
495c0 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 70 65 72 6c 79 27 ems.not.been.installed.properly'
495e0 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 75 72 63 65 20 21 .);.}..if.($installationSource.!
49600 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 61 74 69 6f 6e 53 ==.$downloader->getInstallationS
49620 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 63 45 78 63 65 70 ource()).{.throw.new.\LogicExcep
49640 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 22 25 73 22 20 69 tion(sprintf(.'Downloader."%s".i
49660 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 20 63 61 6e 20 6e s.a.%s.type.downloader.and.can.n
49680 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 2c 0a 67 65 74 5f ot.be.used.to.download.%s',.get_
496a0 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 6f 61 64 65 72 2d class($downloader),.$downloader-
496c0 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 24 69 6e 73 74 61 >getInstallationSource(),.$insta
496e0 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 6e 20 24 64 6f 77 llationSource.));.}..return.$dow
49700 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 69 63 20 66 75 6e nloader;.}............public.fun
49720 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ction.download(PackageInterface.
49740 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 66 65 72 53 6f 75 $package,.$targetDir,.$preferSou
49760 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 65 20 3d 20 6e 75 rce.=.null).{.$preferSource.=.nu
49780 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 65 66 65 72 53 6f ll.!==.$preferSource.?.$preferSo
497a0 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 3b 0a 24 73 6f 75 urce.:.$this->preferSource;.$sou
497c0 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 72 63 65 54 79 70 rceType.=.$package->getSourceTyp
497e0 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 3e 67 65 74 44 69 e();.$distType.=.$package->getDi
49800 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 79 28 29 3b 0a 69 stType();..$sources.=.array();.i
49820 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 5b 5d 20 3d 20 27 f.($sourceType).{.$sources[].=.'
49840 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 7b 0a 24 73 6f 75 source';.}.if.($distType).{.$sou
49860 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 70 74 79 28 24 73 rces[].=.'dist';.}..if.(empty($s
49880 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 6c 69 64 41 72 67 ources)).{.throw.new.\InvalidArg
498a0 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 umentException('Package.'.$packa
498c0 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 20 64 69 73 74 20 ge.'.must.have.a.source.or.dist.
498e0 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 6b 61 67 65 2d 3e specified');.}..if.((!$package->
49900 69 73 44 65 76 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 20 26 26 isDev().||.$this->preferDist).&&
49920 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 73 20 3d 20 61 72 .!$preferSource).{.$sources.=.ar
49940 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 24 74 68 69 73 2d ray_reverse($sources);.}..$this-
49960 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 >filesystem->ensureDirectoryExis
49980 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 24 73 6f 75 72 63 ts($targetDir);..foreach.($sourc
499a0 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 28 69 73 73 65 74 es.as.$i.=>.$source).{.if.(isset
499c0 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 72 6f 72 28 27 20 ($e)).{.$this->io->writeError('.
499e0 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 64 6f 77 6e 6c 6f ...<warning>Now.trying.to.downlo
49a00 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 61 72 6e 69 6e 67 ad.from.'...$source...'</warning
49a20 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 6c 61 74 69 6f 6e >');.}.$package->setInstallation
49a40 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 77 6e 6c 6f 61 64 Source($source);.try.{.$download
49a60 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 er.=.$this->getDownloaderForInst
49a80 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 20 28 24 64 6f 77 alledPackage($package);.if.($dow
49aa0 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 77 6e 6c 6f 61 64 nloader).{.$downloader->download
49ac0 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 62 72 65 61 6b 3b ($package,.$targetDir);.}.break;
49ae0 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).
49b00 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 73 29 20 2d 20 31 {.if.($i.===.count($sources).-.1
49b20 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 2d 3e 77 72 69 74 ).{.throw.$e;.}..$this->io->writ
49b40 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 65 64 20 74 6f 20 eError(.'....<warning>Failed.to.
49b60 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 72 65 74 74 79 4e download.'..$package->getPrettyN
49b80 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 2e 20 27 3a 20 27 ame()..'.from.'...$source...':.'
49ba0 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 69 6e 67 3e 27 0a ..$e->getMessage().'</warning>'.
49bc0 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 66 75 6e 63 74 69 );.}.}.}...........public.functi
49be0 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 20 24 69 6e 69 74 on.update(PackageInterface.$init
49c00 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 ial,.PackageInterface.$target,.$
49c20 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 targetDir).{.$downloader.=.$this
49c40 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 ->getDownloaderForInstalledPacka
49c60 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 61 64 65 72 29 20 ge($initial);.if.(!$downloader).
49c80 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 53 6f 75 72 63 65 {.return;.}..$installationSource
49ca0 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 .=.$initial->getInstallationSour
49cc0 63 65 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 ce();..if.('dist'.===.$installat
49ce0 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 ionSource).{.$initialType.=.$ini
49d00 74 69 61 6c 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 tial->getDistType();.$targetType
49d20 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 20 65 6c 73 .=.$target->getDistType();.}.els
49d40 65 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 e.{.$initialType.=.$initial->get
49d60 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 SourceType();.$targetType.=.$tar
49d80 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 get->getSourceType();.}....if.($
49da0 74 61 72 67 65 74 2d 3e 69 73 44 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 target->isDev().&&.'dist'.===.$i
49dc0 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 nstallationSource).{.$downloader
49de0 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a ->remove($initial,.$targetDir);.
49e00 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 $this->download($target,.$target
49e20 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 Dir);..return;.}..if.($initialTy
49e40 70 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 pe.===.$targetType).{.$target->s
49e60 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 61 6c 6c 61 74 69 etInstallationSource($installati
49e80 6f 6e 53 6f 75 72 63 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 64 61 74 65 28 24 onSource);.$downloader->update($
49ea0 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d initial,.$target,.$targetDir);.}
49ec0 20 65 6c 73 65 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 .else.{.$downloader->remove($ini
49ee0 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f tial,.$targetDir);.$this->downlo
49f00 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 6f 75 72 63 65 27 ad($target,.$targetDir,.'source'
49f20 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 7d 0a 7d 0a 0a .===.$installationSource);.}.}..
49f40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 ......public.function.remove(Pac
49f60 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 kageInterface.$package,.$targetD
49f80 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f ir).{.$downloader.=.$this->getDo
49fa0 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 wnloaderForInstalledPackage($pac
49fc0 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 24 64 6f 77 6e 6c kage);.if.($downloader).{.$downl
49fe0 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 61 72 67 65 74 44 oader->remove($package,.$targetD
4a000 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 0a 0a 6e 61 6d 65 ir);.}.}.}.<?php............name
4a020 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 space.Composer\Downloader;..use.
4a040 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
4a060 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 61 64 65 72 49 6e e;........interface.DownloaderIn
4a080 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 terface.{......public.function.g
4a0a0 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 etInstallationSource();........p
4a0c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 ublic.function.download(PackageI
4a0e0 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a nterface.$package,.$path);......
4a100 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 ...public.function.update(Packag
4a120 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 eInterface.$initial,.PackageInte
4a140 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 0a 0a 0a 0a 70 75 rface.$target,.$path);........pu
4a160 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 blic.function.remove(PackageInte
4a180 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 rface.$package,.$path);........p
4a1a0 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 6f 67 72 65 73 73 ublic.function.setOutputProgress
4a1c0 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 0a 0a 0a 0a 0a 0a ($outputProgress);.}.<?php......
4a1e0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 ......namespace.Composer\Downloa
4a200 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 der;..use.Composer\Config;.use.C
4a220 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 omposer\Cache;.use.Composer\IO\I
4a240 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 OInterface;.use.Composer\Package
4a260 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\
4a280 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Plugin\PluginEvents;.use.Compose
4a2a0 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 65 6e 74 3b 0a 75 r\Plugin\PreFileDownloadEvent;.u
4a2c0 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
4a2e0 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 55 74 69 6c 5c 46 tDispatcher;.use.Composer\Util\F
4a300 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 52 65 6d ilesystem;.use.Composer\Util\Rem
4a320 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 oteFilesystem;..........class.Fi
4a340 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 leDownloader.implements.Download
4a360 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 69 6f 3b 0a 70 72 6f erInterface.{.protected.$io;.pro
4a380 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 20 24 72 66 73 3b 0a tected.$config;.protected.$rfs;.
4a3a0 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 6f 74 65 63 74 65 64 protected.$filesystem;.protected
4a3c0 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 50 72 6f 67 72 65 .$cache;.protected.$outputProgre
4a3e0 73 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ss.=.true;............public.fun
4a400 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
4a420 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 68 o,.Config.$config,.EventDispatch
4a440 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 er.$eventDispatcher.=.null,.Cach
4a460 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 e.$cache.=.null,.RemoteFilesyste
4a480 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 m.$rfs.=.null,.Filesystem.$files
4a4a0 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b ystem.=.null).{.$this->io.=.$io;
4a4c0 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d .$this->config.=.$config;.$this-
4a4e0 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
4a500 68 65 72 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 her;.$this->rfs.=.$rfs.?:.new.Re
4a520 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 74 moteFilesystem($io,.$config);.$t
4a540 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a his->filesystem.=.$filesystem.?:
4a560 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 .new.Filesystem();.$this->cache.
4a580 3d 20 24 63 61 63 68 65 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 20 26 26 20 24 =.$cache;..if.($this->cache.&&.$
4a5a0 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 63 49 73 4e 65 63 65 73 73 61 72 79 28 29 29 20 7b 0a this->cache->gcIsNecessary()).{.
4a5c0 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 63 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 $this->cache->gc($config->get('c
4a5e0 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 ache-files-ttl'),.$config->get('
4a600 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a cache-files-maxsize'));.}.}.....
4a620 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 53 public.function.getInstallationS
4a640 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 ource().{.return.'dist';.}.....p
4a660 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 ublic.function.download(PackageI
4a680 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 nterface.$package,.$path).{.if.(
4a6a0 21 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 29 20 7b 0a 74 68 72 6f 77 !$package->getDistUrl()).{.throw
4a6c0 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('
4a6e0 54 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 75 72 6c The.given.package.is.missing.url
4a700 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 .information');.}..$this->io->wr
4a720 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 iteError("..-.Installing.<info>"
4a740 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f ...$package->getName()..."</info
4a760 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 75 6c >.(<comment>"...$package->getFul
4a780 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 lPrettyVersion()..."</comment>)"
4a7a0 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 44 69 73 74 55 72 6c );..$urls.=.$package->getDistUrl
4a7c0 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 66 74 28 24 s();.while.($url.=.array_shift($
4a7e0 75 72 6c 73 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 64 6f 44 urls)).{.try.{.return.$this->doD
4a800 6f 77 6e 6c 6f 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 ownload($package,.$path,.$url);.
4a820 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 }.catch.(\Exception.$e).{.if.($t
4a840 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 6f 2d his->io->isDebug()).{.$this->io-
4a860 3e 77 72 69 74 65 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 >writeError('');.$this->io->writ
4a880 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 65 29 eError('Failed:.['.get_class($e)
4a8a0 2e 27 5d 20 27 2e 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 .'].'.$e->getCode().':.'.$e->get
4a8c0 4d 65 73 73 61 67 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 Message());.}.elseif.(count($url
4a8e0 73 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 27 29 3b s)).{.$this->io->writeError('');
4a900 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 46 61 69 6c .$this->io->writeError('....Fail
4a920 65 64 2c 20 74 72 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 ed,.trying.the.next.URL.('.$e->g
4a940 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 65 28 29 2e 27 etCode().':.'.$e->getMessage().'
4a960 29 27 29 3b 0a 7d 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 )');.}..if.(!count($urls)).{.thr
4a980 6f 77 20 24 65 3b 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 ow.$e;.}.}.}..$this->io->writeEr
4a9a0 72 6f 72 28 27 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 64 ror('');.}..protected.function.d
4a9c0 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b oDownload(PackageInterface.$pack
4a9e0 61 67 65 2c 20 24 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 age,.$path,.$url).{.$this->files
4aa00 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 74 68 29 3b 0a 0a 24 ystem->emptyDirectory($path);..$
4aa20 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 24 70 fileName.=.$this->getFileName($p
4aa40 61 63 6b 61 67 65 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 ackage,.$path);..$processedUrl.=
4aa60 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 .$this->processUrl($package,.$ur
4aa80 6c 29 3b 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 70 72 6f 63 65 l);.$hostname.=.parse_url($proce
4aaa0 73 73 65 64 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 0a 24 70 72 65 46 69 6c ssedUrl,.PHP_URL_HOST);..$preFil
4aac0 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 50 72 65 46 69 6c 65 44 6f 77 6e eDownloadEvent.=.new.PreFileDown
4aae0 6c 6f 61 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 50 52 45 5f 46 49 4c 45 loadEvent(PluginEvents::PRE_FILE
4ab00 5f 44 4f 57 4e 4c 4f 41 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 24 70 72 6f 63 65 73 73 65 _DOWNLOAD,.$this->rfs,.$processe
4ab20 64 55 72 6c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 dUrl);.if.($this->eventDispatche
4ab40 72 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 r).{.$this->eventDispatcher->dis
4ab60 70 61 74 63 68 28 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 74 patch($preFileDownloadEvent->get
4ab80 4e 61 6d 65 28 29 2c 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 29 3b 0a Name(),.$preFileDownloadEvent);.
4aba0 7d 0a 24 72 66 73 20 3d 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e }.$rfs.=.$preFileDownloadEvent->
4abc0 67 65 74 52 65 6d 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 getRemoteFilesystem();..try.{.$c
4abe0 68 65 63 6b 73 75 6d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 hecksum.=.$package->getDistSha1C
4ac00 68 65 63 6b 73 75 6d 28 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 hecksum();.$cacheKey.=.$this->ge
4ac20 74 43 61 63 68 65 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 tCacheKey($package);....if.(!$th
4ac40 69 73 2d 3e 63 61 63 68 65 20 7c 7c 20 28 24 63 68 65 63 6b 73 75 6d 20 26 26 20 24 63 68 65 63 is->cache.||.($checksum.&&.$chec
4ac60 6b 73 75 6d 20 21 3d 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 63 61 63 ksum.!==.$this->cache->sha1($cac
4ac80 68 65 4b 65 79 29 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f 70 79 54 6f heKey)).||.!$this->cache->copyTo
4aca0 28 24 63 61 63 68 65 4b 65 79 2c 20 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 69 66 20 28 21 24 ($cacheKey,.$fileName)).{.if.(!$
4acc0 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 this->outputProgress).{.$this->i
4ace0 6f 2d 3e 77 72 69 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 o->writeError('....Downloading')
4ad00 3b 0a 7d 0a 0a 0a 20 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 ;.}....$retries.=.3;.while.($ret
4ad20 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 72 66 73 2d 3e 63 6f 70 79 28 24 68 6f 73 74 ries--).{.try.{.$rfs->copy($host
4ad40 6e 61 6d 65 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 name,.$processedUrl,.$fileName,.
4ad60 24 74 68 69 73 2d 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 $this->outputProgress,.$package-
4ad80 3e 67 65 74 54 72 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 >getTransportOptions());.break;.
4ada0 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).
4adc0 7b 0a 0a 20 69 66 20 28 28 30 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 26 26 20 {...if.((0.!==.$e->getCode().&&.
4ade0 21 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 35 !in_array($e->getCode(),.array(5
4ae00 30 30 2c 20 35 30 32 2c 20 35 30 33 2c 20 35 30 34 29 29 29 20 7c 7c 20 21 24 72 65 74 72 69 65 00,.502,.503,.504))).||.!$retrie
4ae20 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e s).{.throw.$e;.}.if.($this->io->
4ae40 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 isVerbose()).{.$this->io->writeE
4ae60 72 72 6f 72 28 27 20 20 20 20 44 6f 77 6e 6c 6f 61 64 20 66 61 69 6c 65 64 2c 20 72 65 74 72 79 rror('....Download.failed,.retry
4ae80 69 6e 67 2e 2e 2e 27 29 3b 0a 7d 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 7d 0a 7d 0a ing...');.}.usleep(500000);.}.}.
4aea0 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 .if.($this->cache).{.$this->cach
4aec0 65 2d 3e 63 6f 70 79 46 72 6f 6d 28 24 63 61 63 68 65 4b 65 79 2c 20 24 66 69 6c 65 4e 61 6d 65 e->copyFrom($cacheKey,.$fileName
4aee0 29 3b 0a 7d 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 );.}.}.else.{.$this->io->writeEr
4af00 72 6f 72 28 27 20 20 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 ror('....Loading.from.cache');.}
4af20 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b ..if.(!file_exists($fileName)).{
4af40 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
4af60 74 69 6f 6e 28 24 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 61 76 65 64 20 74 tion($url.'.could.not.be.saved.t
4af80 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 27 0a o.'.$fileName.',.make.sure.the'.
4afa0 2e 27 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 77 72 69 74 61 62 6c 65 20 61 6e 64 20 79 6f 75 .'.directory.is.writable.and.you
4afc0 20 68 61 76 65 20 69 6e 74 65 72 6e 65 74 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 27 29 3b 0a 7d .have.internet.connectivity');.}
4afe0 0a 0a 69 66 20 28 24 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 ..if.($checksum.&&.hash_file('sh
4b000 61 31 27 2c 20 24 66 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 a1',.$fileName).!==.$checksum).{
4b020 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
4b040 74 69 6f 6e 28 27 54 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 tion('The.checksum.verification.
4b060 6f 66 20 74 68 65 20 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 of.the.file.failed.(downloaded.f
4b080 72 6f 6d 20 27 2e 24 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 rom.'.$url.')');.}.}.catch.(\Exc
4b0a0 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d eption.$e).{...$this->filesystem
4b0c0 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d ->removeDirectory($path);.$this-
4b0e0 3e 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 68 >clearCache($package,.$path);.th
4b100 72 6f 77 20 24 65 3b 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 row.$e;.}..return.$fileName;.}..
4b120 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 6f 67 ...public.function.setOutputProg
4b140 72 65 73 73 28 24 6f 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 ress($outputProgress).{.$this->o
4b160 75 74 70 75 74 50 72 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 utputProgress.=.$outputProgress;
4b180 0a 0a 72 65 74 75 72 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 ..return.$this;.}..protected.fun
4b1a0 63 74 69 6f 6e 20 63 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 ction.clearCache(PackageInterfac
4b1c0 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 24 74 68 69 73 2d 3e e.$package,.$path).{.if.($this->
4b1e0 63 61 63 68 65 29 20 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 cache).{.$fileName.=.$this->getF
4b200 69 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d ileName($package,.$path);.$this-
4b220 3e 63 61 63 68 65 2d 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 >cache->remove($this->getCacheKe
4b240 79 28 24 70 61 63 6b 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 y($package));.}.}.....public.fun
4b260 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 20 24 69 ction.update(PackageInterface.$i
4b280 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 nitial,.PackageInterface.$target
4b2a0 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 ,.$path).{.$this->remove($initia
4b2c0 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 l,.$path);.$this->download($targ
4b2e0 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f et,.$path);.}.....public.functio
4b300 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 n.remove(PackageInterface.$packa
4b320 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 65 45 72 72 ge,.$path).{.$this->io->writeErr
4b340 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 70 61 63 6b or("..-.Removing.<info>"...$pack
4b360 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d age->getName()..."</info>.(<comm
4b380 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 ent>"...$package->getFullPrettyV
4b3a0 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 69 66 20 28 21 ersion()..."</comment>)");.if.(!
4b3c0 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f $this->filesystem->removeDirecto
4b3e0 72 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 ry($path)).{.throw.new.\RuntimeE
4b400 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 xception('Could.not.completely.d
4b420 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a elete.'.$path.',.aborting.');.}.
4b440 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 65 74 }.........protected.function.get
4b460 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 63 6b 61 FileName(PackageInterface.$packa
4b480 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f 27 2e 70 61 ge,.$path).{.return.$path.'/'.pa
4b4a0 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 thinfo(parse_url($package->getDi
4b4c0 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e 46 4f stUrl(),.PHP_URL_PATH),.PATHINFO
4b4e0 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 _BASENAME);.}..........protected
4b500 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
4b520 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
4b540 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.==
4b560 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
4b580 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
4b5a0 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
4b5c0 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');.}.
4b5e0 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
4b600 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.$
4b620 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-
4b640 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
4b660 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->
4b680 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
4b6a0 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
4b6c0 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
4b6e0 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()
4b700 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(
4b720 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();.}
4b740 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
4b760 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 mposer\Downloader;.......class.F
4b780 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 5c 45 78 63 65 ilesystemException.extends.\Exce
4b7a0 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 6f 6e 73 74 72 ption.{.public.function.__constr
4b7c0 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 3d 20 6e 75 6c uct($message.=.null,.$code.=.nul
4b7e0 6c 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a l,.\Exception.$previous.=.null).
4b800 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 73 79 73 74 65 {.parent::__construct("Filesyste
4b820 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 24 63 6f 64 65 m.exception:.\n".$message,.$code
4b840 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 0a 0a 0a 0a 0a ,.$previous);.}.}.<?php.........
4b860 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
4b880 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
4b8a0 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 47 69 74 20 nterface;.use.Composer\Util\Git.
4b8c0 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 50 72 as.GitUtil;.use.Composer\Util\Pr
4b8e0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 ocessExecutor;.use.Composer\IO\I
4b900 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 OInterface;.use.Composer\Util\Fi
4b920 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 0a 0a lesystem;.use.Composer\Config;..
4b940 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 20 56 ...class.GitDownloader.extends.V
4b960 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 73 68 csDownloader.{.private.$hasStash
4b980 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 68 61 73 44 edChanges.=.false;.private.$hasD
4b9a0 69 73 63 61 72 64 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 iscardedChanges.=.false;.private
4b9c0 20 24 67 69 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 .$gitUtil;..public.function.__co
4b9e0 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 nstruct(IOInterface.$io,.Config.
4ba00 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 $config,.ProcessExecutor.$proces
4ba20 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 20 3d 20 6e 75 6c 6c 29 s.=.null,.Filesystem.$fs.=.null)
4ba40 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e .{.parent::__construct($io,.$con
4ba60 66 69 67 2c 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 fig,.$process,.$fs);.$this->gitU
4ba80 74 69 6c 20 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 til.=.new.GitUtil($this->io,.$th
4baa0 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 is->config,.$this->process,.$thi
4bac0 73 2d 3e 66 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 s->filesystem);.}.....public.fun
4bae0 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 ction.doDownload(PackageInterfac
4bb00 65 20 24 70 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 e.$package,.$path,.$url).{.GitUt
4bb20 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
4bb40 6f 72 6d 61 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 ormalizePath($path);..$ref.=.$pa
4bb60 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 66 6c ckage->getSourceReference();.$fl
4bb80 61 67 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 45 52 53 49 4f ag.=.defined('PHP_WINDOWS_VERSIO
4bba0 4e 5f 4d 41 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 N_MAJOR').?.'/D.'.:.'';.$command
4bbc0 20 3d 20 27 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 .=.'git.clone.--no-checkout.%s.%
4bbe0 73 20 26 26 20 63 64 20 27 2e 24 66 6c 61 67 2e 27 25 32 24 73 20 26 26 20 67 69 74 20 72 65 6d s.&&.cd.'.$flag.'%2$s.&&.git.rem
4bc00 6f 74 65 20 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 20 26 26 20 67 69 74 20 66 65 74 ote.add.composer.%1$s.&&.git.fet
4bc20 63 68 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 ch.composer';.$this->io->writeEr
4bc40 72 6f 72 28 22 20 20 20 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 72 65 66 29 3b 0a 0a 24 63 6f 6d 6d ror("....Cloning.".$ref);..$comm
4bc60 61 6e 64 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 andCallable.=.function.($url).us
4bc80 65 20 28 24 72 65 66 2c 20 24 70 61 74 68 2c 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 e.($ref,.$path,.$command).{.retu
4bca0 72 6e 20 73 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 rn.sprintf($command,.ProcessExec
4bcc0 75 74 6f 72 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 utor::escape($url),.ProcessExecu
4bce0 74 6f 72 3a 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 tor::escape($path),.ProcessExecu
4bd00 74 6f 72 3a 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 tor::escape($ref));.};..$this->g
4bd20 69 74 55 74 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 itUtil->runCommand($commandCalla
4bd40 62 6c 65 2c 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 ble,.$url,.$path,.true);.if.($ur
4bd60 6c 20 21 3d 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 l.!==.$package->getSourceUrl()).
4bd80 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 {.$url.=.$package->getSourceUrl(
4bda0 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e );.$this->process->execute(sprin
4bdc0 74 66 28 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 tf('git.remote.set-url.origin.%s
4bde0 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 29 ',.ProcessExecutor::escape($url)
4be00 29 2c 20 24 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 ),.$output,.$path);.}.$this->set
4be20 50 75 73 68 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 PushUrl($path,.$url);..if.($newR
4be40 65 66 20 3d 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 ef.=.$this->updateToCommit($path
4be60 2c 20 24 72 65 66 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 ,.$ref,.$package->getPrettyVersi
4be80 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 on(),.$package->getReleaseDate()
4bea0 29 29 20 7b 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 )).{.if.($package->getDistRefere
4bec0 6e 63 65 28 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 nce().===.$package->getSourceRef
4bee0 65 72 65 6e 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 erence()).{.$package->setDistRef
4bf00 65 72 65 6e 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 erence($newRef);.}.$package->set
4bf20 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 6e 65 77 52 65 66 29 3b 0a 7d 0a 7d 0a 0a 0a SourceReference($newRef);.}.}...
4bf40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 ..public.function.doUpdate(Packa
4bf60 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
4bf80 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 29 0a 7b 0a 47 erface.$target,.$path,.$url).{.G
4bfa0 69 74 55 74 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 itUtil::cleanEnv();.$path.=.$thi
4bfc0 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 21 69 73 s->normalizePath($path);.if.(!is
4bfe0 5f 64 69 72 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 _dir($path.'/.git')).{.throw.new
4c000 20 5c 52 75 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 .\RuntimeException('The..git.dir
4c020 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 24 70 61 74 68 2e 27 ectory.is.missing.from.'.$path.'
4c040 2c 20 73 65 65 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 63 6f ,.see.https://getcomposer.org/co
4c060 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 74 69 6f 6e 27 29 mmit-deps.for.more.information')
4c080 3b 0a 7d 0a 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 ;.}..$ref.=.$target->getSourceRe
4c0a0 66 65 72 65 6e 63 65 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 ference();.$this->io->writeError
4c0c0 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 72 65 66 29 3b 0a 24 63 6f 6d ("....Checking.out.".$ref);.$com
4c0e0 6d 61 6e 64 20 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 mand.=.'git.remote.set-url.compo
4c100 73 65 72 20 25 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 20 26 26 20 ser.%s.&&.git.fetch.composer.&&.
4c120 67 69 74 20 66 65 74 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 24 63 6f git.fetch.--tags.composer';..$co
4c140 6d 6d 61 6e 64 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 mmandCallable.=.function.($url).
4c160 75 73 65 20 28 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 use.($command).{.return.sprintf(
4c180 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 3a 3a 65 73 63 61 70 $command,.ProcessExecutor::escap
4c1a0 65 28 24 75 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 e($url));.};..$this->gitUtil->ru
4c1c0 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 75 72 6c 2c nCommand($commandCallable,.$url,
4c1e0 20 24 70 61 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 .$path);.if.($newRef.=.$this->up
4c200 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 74 61 72 67 65 dateToCommit($path,.$ref,.$targe
4c220 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 74 61 72 67 65 74 2d 3e t->getPrettyVersion(),.$target->
4c240 67 65 74 52 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 getReleaseDate())).{.if.($target
4c260 2d 3e 67 65 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 ->getDistReference().===.$target
4c280 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 74 61 72 67 65 ->getSourceReference()).{.$targe
4c2a0 74 2d 3e 73 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 t->setDistReference($newRef);.}.
4c2c0 24 74 61 72 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 $target->setSourceReference($new
4c2e0 52 65 66 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Ref);.}.}.....public.function.ge
4c300 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 66 61 63 65 20 24 tLocalChanges(PackageInterface.$
4c320 70 61 63 6b 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 package,.$path).{.GitUtil::clean
4c340 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 6c 69 7a 65 50 Env();.$path.=.$this->normalizeP
4c360 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f ath($path);.if.(!is_dir($path.'/
4c380 2e 67 69 74 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 .git')).{.return;.}..$command.=.
4c3a0 27 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 69 6e 20 2d 2d 75 6e 74 72 61 63 'git.status.--porcelain.--untrac
4c3c0 6b 65 64 2d 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 ked-files=no';.if.(0.!==.$this->
4c3e0 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 70 process->execute($command,.$outp
4c400 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 65 ut,.$path)).{.throw.new.\Runtime
4c420 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e Exception('Failed.to.execute.'..
4c440 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 .$command..."\n\n"...$this->proc
4c460 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 72 65 74 75 72 ess->getErrorOutput());.}..retur
4c480 6e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 n.trim($output).?:.null;.}.....p
4c4a0 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 65 73 28 50 rotected.function.cleanChanges(P
4c4c0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c ackageInterface.$package,.$path,
4c4e0 20 24 75 70 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 .$update).{.GitUtil::cleanEnv();
4c500 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 24 70 .$path.=.$this->normalizePath($p
4c520 61 74 68 29 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 ath);.if.(!$changes.=.$this->get
4c540 4c 6f 63 61 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 LocalChanges($package,.$path)).{
4c560 0a 72 65 74 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 .return;.}..if.(!$this->io->isIn
4c580 74 65 72 61 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 teractive()).{.$discardChanges.=
4c5a0 20 24 74 68 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 .$this->config->get('discard-cha
4c5c0 6e 67 65 73 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 nges');.if.(true.===.$discardCha
4c5e0 6e 67 65 73 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 nges).{.return.$this->discardCha
4c600 6e 67 65 73 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 nges($path);.}.if.('stash'.===.$
4c620 64 69 73 63 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 discardChanges).{.if.(!$update).
4c640 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 {.return.parent::cleanChanges($p
4c660 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 0a 0a 72 65 74 75 ackage,.$path,.$update);.}..retu
4c680 72 6e 20 24 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 rn.$this->stashChanges($path);.}
4c6a0 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 67 65 73 28 24 70 ..return.parent::cleanChanges($p
4c6c0 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 0a 0a 24 63 68 61 ackage,.$path,.$update);.}..$cha
4c6e0 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d nges.=.array_map(function.($elem
4c700 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 ).{.return.'....'.$elem;.},.preg
4c720 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 _split('{\s*\r?\n\s*}',.$changes
4c740 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 20 20 20 20 3c ));.$this->io->writeError('....<
4c760 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 66 69 65 64 20 66 error>The.package.has.modified.f
4c780 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 2d 3e 77 72 69 74 iles:</error>');.$this->io->writ
4c7a0 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 73 2c 20 30 2c 20 eError(array_slice($changes,.0,.
4c7c0 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 3e 20 31 30 29 20 10));.if.(count($changes).>.10).
4c7e0 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 69 6e {.$this->io->writeError('....<in
4c800 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 2e 20 27 20 6d 6f fo>'.count($changes).-.10...'.mo
4c820 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 22 76 22 20 74 6f re.files.modified,.choose."v".to
4c840 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 27 29 3b 0a 7d 0a .view.the.full.list</info>');.}.
4c860 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 68 69 73 2d 3e 69 .while.(true).{.switch.($this->i
4c880 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 63 68 61 6e 67 65 o->ask('....<info>Discard.change
4c8a0 73 20 5b 79 2c 6e 2c 76 2c 64 2c 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 73 2c 27 20 3a 20 27 s.[y,n,v,d,'.($update.?.'s,'.:.'
4c8c0 27 29 2e 27 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 ').'?]?</info>.',.'?')).{.case.'
4c8e0 79 27 3a 0a 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 y':.$this->discardChanges($path)
4c900 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 73 27 3a 0a 69 66 20 28 21 24 75 70 64 61 ;.break.2;..case.'s':.if.(!$upda
4c920 74 65 29 20 7b 0a 67 6f 74 6f 20 68 65 6c 70 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 73 68 te).{.goto.help;.}..$this->stash
4c940 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 Changes($path);.break.2;..case.'
4c960 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 n':.throw.new.\RuntimeException(
4c980 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 3a 0a 24 74 'Update.aborted');..case.'v':.$t
4c9a0 68 69 73 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 his->io->writeError($changes);.b
4c9c0 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 64 27 3a 0a 24 74 68 69 73 2d 3e 76 69 65 77 44 69 66 66 reak;..case.'d':.$this->viewDiff
4c9e0 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 ($path);.break;..case.'?':.defau
4ca00 6c 74 3a 0a 68 65 6c 70 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 lt:.help:.$this->io->writeError(
4ca20 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 array(.'....y.-.discard.changes.
4ca40 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 and.apply.the.'.($update.?.'upda
4ca60 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f te'.:.'uninstall'),.'....n.-.abo
4ca80 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 rt.the.'.($update.?.'update'.:.'
4caa0 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c uninstall').'.and.let.you.manual
4cac0 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 ly.clean.things.up',.'....v.-.vi
4cae0 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 27 20 20 20 20 64 20 2d 20 76 69 65 ew.modified.files',.'....d.-.vie
4cb00 77 20 6c 6f 63 61 6c 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 28 64 69 66 66 29 27 2c 0a 29 w.local.modifications.(diff)',.)
4cb20 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 2d 3e 77 72 69 );.if.($update).{.$this->io->wri
4cb40 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 67 65 73 20 61 teError('....s.-.stash.changes.a
4cb60 6e 64 20 74 72 79 20 74 6f 20 72 65 61 70 70 6c 79 20 74 68 65 6d 20 61 66 74 65 72 20 74 68 65 nd.try.to.reapply.them.after.the
4cb80 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 .update');.}.$this->io->writeErr
4cba0 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 72 65 61 6b 3b or('....?.-.print.help');.break;
4cbc0 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 72 65 .}.}.}.....protected.function.re
4cbe0 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 20 3d 20 24 74 applyChanges($path).{.$path.=.$t
4cc00 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 24 his->normalizePath($path);.if.($
4cc20 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 24 74 68 69 73 this->hasStashedChanges).{.$this
4cc40 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 3b 0a 24 74 68 ->hasStashedChanges.=.false;.$th
4cc60 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 52 65 is->io->writeError('....<info>Re
4cc80 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 69 6e 66 6f 3e -applying.stashed.changes</info>
4cca0 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 73 2d 3e 65 78 ');.if.(0.!==.$this->process->ex
4ccc0 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 70 75 74 2c 20 ecute('git.stash.pop',.$output,.
4cce0 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
4cd00 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 68 65 64 20 63 ption("Failed.to.apply.stashed.c
4cd20 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 2d 3e 67 65 74 hanges:\n\n".$this->process->get
4cd40 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 61 73 44 ErrorOutput());.}.}..$this->hasD
4cd60 69 73 63 61 72 64 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a iscardedChanges.=.false;.}......
4cd80 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 54 ......protected.function.updateT
4cda0 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 6e oCommit($path,.$reference,.$bran
4cdc0 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 66 6f 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 ch,.$date).{.$force.=.$this->has
4cde0 44 69 73 63 61 72 64 65 64 43 68 61 6e 67 65 73 20 7c 7c 20 24 74 68 69 73 2d 3e 68 61 73 53 74 DiscardedChanges.||.$this->hasSt
4ce00 61 73 68 65 64 43 68 61 6e 67 65 73 20 3f 20 27 2d 66 20 27 20 3a 20 27 27 3b 0a 0a 0a 20 0a 20 ashedChanges.?.'-f.'.:.'';......
4ce20 0a 20 0a 20 0a 20 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 ......$template.=.'git.checkout.
4ce40 27 2e 24 66 6f 72 63 65 2e 27 25 73 20 2d 2d 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 '.$force.'%s.--.&&.git.reset.--h
4ce60 61 72 64 20 25 31 24 73 20 2d 2d 27 3b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 ard.%1$s.--';.$branch.=.preg_rep
4ce80 6c 61 63 65 28 27 7b 28 3f 3a 5e 64 65 76 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 24 29 7d 69 lace('{(?:^dev-|(?:\.x)?-dev$)}i
4cea0 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 29 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 6e 75 ',.'',.$branch);..$branches.=.nu
4cec0 6c 6c 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 ll;.if.(0.===.$this->process->ex
4cee0 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 ecute('git.branch.-r',.$output,.
4cf00 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d $path)).{.$branches.=.$output;.}
4cf20 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 69 66 20 28 21 70 ....$gitRef.=.$reference;.if.(!p
4cf40 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 reg_match('{^[a-f0-9]{40}$}',.$r
4cf60 65 66 65 72 65 6e 63 65 29 0a 26 26 20 24 62 72 61 6e 63 68 65 73 0a 26 26 20 70 72 65 67 5f 6d eference).&&.$branches.&&.preg_m
4cf80 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 65 atch('{^\s+composer/'.preg_quote
4cfa0 28 24 72 65 66 65 72 65 6e 63 65 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 0a 29 ($reference).'$}m',.$branches).)
4cfc0 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b .{.$command.=.sprintf('git.check
4cfe0 6f 75 74 20 27 2e 24 66 6f 72 63 65 2e 27 2d 42 20 25 73 20 25 73 20 2d 2d 20 26 26 20 67 69 74 out.'.$force.'-B.%s.%s.--.&&.git
4d000 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 32 24 73 20 2d 2d 27 2c 20 50 72 6f 63 65 73 73 45 .reset.--hard.%2$s.--',.ProcessE
4d020 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 20 50 72 6f 63 65 73 xecutor::escape($branch),.Proces
4d040 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 65 72 2f 27 2e 24 72 sExecutor::escape('composer/'.$r
4d060 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f eference));.if.(0.===.$this->pro
4d080 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c cess->execute($command,.$output,
4d0a0 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 .$path)).{.return;.}.}....if.(pr
4d0c0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 65 eg_match('{^[a-f0-9]{40}$}',.$re
4d0e0 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ference)).{...if.(!preg_match('{
4d100 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 ^\s+composer/'.preg_quote($branc
4d120 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 20 26 26 20 70 72 65 67 5f 6d 61 74 h).'$}m',.$branches).&&.preg_mat
4d140 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 76 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 ch('{^\s+composer/v'.preg_quote(
4d160 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 29 20 7b 0a 24 62 $branch).'$}m',.$branches)).{.$b
4d180 72 61 6e 63 68 20 3d 20 27 76 27 20 2e 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 ranch.=.'v'...$branch;.}..$comma
4d1a0 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 25 73 20 2d 2d nd.=.sprintf('git.checkout.%s.--
4d1c0 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 62 72 61 6e ',.ProcessExecutor::escape($bran
4d1e0 63 68 29 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 ch));.$fallbackCommand.=.sprintf
4d200 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 27 2e 24 66 6f 72 63 65 2e 27 2d 42 20 25 73 20 25 ('git.checkout.'.$force.'-B.%s.%
4d220 73 20 2d 2d 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 s.--',.ProcessExecutor::escape($
4d240 62 72 61 6e 63 68 29 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 branch),.ProcessExecutor::escape
4d260 28 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 62 72 61 6e 63 68 29 29 3b 0a 69 66 20 28 30 20 3d 3d ('composer/'.$branch));.if.(0.==
4d280 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 =.$this->process->execute($comma
4d2a0 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 7c 7c 20 30 20 3d 3d 3d 20 24 74 68 nd,.$output,.$path).||.0.===.$th
4d2c0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 66 61 6c 6c 62 61 63 6b 43 6f is->process->execute($fallbackCo
4d2e0 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 29 20 7b 0a 24 63 6f 6d 6d mmand,.$output,.$path).).{.$comm
4d300 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 and.=.sprintf('git.reset.--hard.
4d320 25 73 20 2d 2d 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 %s.--',.ProcessExecutor::escape(
4d340 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 68 69 73 2d 3e 70 $reference));.if.(0.===.$this->p
4d360 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 70 75 rocess->execute($command,.$outpu
4d380 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 7d 0a 0a 24 63 6f 6d t,.$path)).{.return;.}.}.}..$com
4d3a0 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 50 72 6f 63 65 73 mand.=.sprintf($template,.Proces
4d3c0 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 67 69 74 52 65 66 29 29 3b 0a 69 66 20 sExecutor::escape($gitRef));.if.
4d3e0 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 24 (0.===.$this->process->execute($
4d400 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 command,.$output,.$path)).{.retu
4d420 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 rn;.}....if.(false.!==.strpos($t
4d440 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 his->process->getErrorOutput(),.
4d460 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 $reference)).{.$this->io->writeE
4d480 72 72 6f 72 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 72 65 66 65 72 65 6e 63 65 2e rror('....<warning>'.$reference.
4d4a0 27 20 69 73 20 67 6f 6e 65 20 28 68 69 73 74 6f 72 79 20 77 61 73 20 72 65 77 72 69 74 74 65 6e '.is.gone.(history.was.rewritten
4d4c0 3f 29 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ?)</warning>');.}..throw.new.\Ru
4d4e0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 ntimeException('Failed.to.execut
4d500 65 20 27 20 2e 20 47 69 74 55 74 69 6c 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d e.'...GitUtil::sanitizeUrl($comm
4d520 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e and)..."\n\n"...$this->process->
4d540 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 getErrorOutput());.}..protected.
4d560 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 75 73 68 55 72 6c 28 24 70 61 74 68 2c 20 24 75 72 6c 29 function.setPushUrl($path,.$url)
4d580 0a 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f .{...if.(preg_match('{^(?:https?
4d5a0 7c 67 69 74 29 3a 2f 2f 27 2e 47 69 74 55 74 69 6c 3a 3a 67 65 74 47 69 74 48 75 62 44 6f 6d 61 |git)://'.GitUtil::getGitHubDoma
4d5c0 69 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 2e 27 2f 28 5b 5e 2f 5d 2b insRegex($this->config).'/([^/]+
4d5e0 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 75 72 6c 2c 20 24 )/([^/]+?)(?:\.git)?$}',.$url,.$
4d600 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f match)).{.$protocols.=.$this->co
4d620 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 29 3b 0a 24 nfig->get('github-protocols');.$
4d640 70 75 73 68 55 72 6c 20 3d 20 27 67 69 74 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 3a 27 2e 24 pushUrl.=.'git@'.$match[1].':'.$
4d660 6d 61 74 63 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 69 match[2].'/'.$match[3].'.git';.i
4d680 66 20 28 24 70 72 6f 74 6f 63 6f 6c 73 5b 30 5d 20 21 3d 3d 20 27 67 69 74 27 29 20 7b 0a 24 70 f.($protocols[0].!==.'git').{.$p
4d6a0 75 73 68 55 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 ushUrl.=.'https://'...$match[1].
4d6c0 2e 20 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d 2e 27 2e ..'/'.$match[2].'/'.$match[3].'.
4d6e0 67 69 74 27 3b 0a 7d 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 6d 6f git';.}.$cmd.=.sprintf('git.remo
4d700 74 65 20 73 65 74 2d 75 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 50 72 te.set-url.--push.origin.%s',.Pr
4d720 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 75 73 68 55 72 6c 29 29 ocessExecutor::escape($pushUrl))
4d740 3b 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 24 63 6d 64 2c 20 ;.$this->process->execute($cmd,.
4d760 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a $ignoredOutput,.$path);.}.}.....
4d780 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 protected.function.getCommitLogs
4d7a0 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 ($fromReference,.$toReference,.$
4d7c0 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 path).{.$path.=.$this->normalize
4d7e0 50 61 74 68 28 24 70 61 74 68 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 Path($path);.$command.=.sprintf(
4d800 27 67 69 74 20 6c 6f 67 20 25 73 2e 2e 25 73 20 2d 2d 70 72 65 74 74 79 3d 66 6f 72 6d 61 74 3a 'git.log.%s..%s.--pretty=format:
4d820 22 25 25 68 20 2d 20 25 25 61 6e 3a 20 25 25 73 22 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e "%%h.-.%%an:.%%s"',.$fromReferen
4d840 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 ce,.$toReference);..if.(0.!==.$t
4d860 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,.
4d880 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 $output,.$path)).{.throw.new.\Ru
4d8a0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 ntimeException('Failed.to.execut
4d8c0 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d e.'...$command..."\n\n"...$this-
4d8e0 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a >process->getErrorOutput());.}..
4d900 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 return.$output;.}......protected
4d920 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a .function.discardChanges($path).
4d940 7b 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 24 {.$path.=.$this->normalizePath($
4d960 70 61 74 68 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 path);.if.(0.!==.$this->process-
4d980 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 27 2c 20 24 6f 75 >execute('git.reset.--hard',.$ou
4d9a0 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 tput,.$path)).{.throw.new.\Runti
4d9c0 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 meException("Could.not.reset.cha
4d9e0 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 nges\n\n:".$this->process->getEr
4da00 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 61 73 44 69 73 63 61 rorOutput());.}..$this->hasDisca
4da20 72 64 65 64 43 68 61 6e 67 65 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 rdedChanges.=.true;.}......prote
4da40 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 cted.function.stashChanges($path
4da60 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 ).{.$path.=.$this->normalizePath
4da80 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ($path);.if.(0.!==.$this->proces
4daa0 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 20 2d 2d 69 6e 63 6c 75 64 65 2d s->execute('git.stash.--include-
4dac0 75 6e 74 72 61 63 6b 65 64 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 untracked',.$output,.$path)).{.t
4dae0 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
4db00 64 20 6e 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 d.not.stash.changes\n\n:".$this-
4db20 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a >process->getErrorOutput());.}..
4db40 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 74 72 75 65 3b $this->hasStashedChanges.=.true;
4db60 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 76 69 65 77 44 .}......protected.function.viewD
4db80 69 66 66 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d iff($path).{.$path.=.$this->norm
4dba0 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 alizePath($path);.if.(0.!==.$thi
4dbc0 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 69 66 66 20 48 45 s->process->execute('git.diff.HE
4dbe0 41 44 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 AD',.$output,.$path)).{.throw.ne
4dc00 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 76 w.\RuntimeException("Could.not.v
4dc20 69 65 77 20 64 69 66 66 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 iew.diff\n\n:".$this->process->g
4dc40 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e etErrorOutput());.}..$this->io->
4dc60 77 72 69 74 65 45 72 72 6f 72 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 writeError($output);.}..protecte
4dc80 64 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 d.function.normalizePath($path).
4dca0 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 {.if.(defined('PHP_WINDOWS_VERSI
4dcc0 4f 4e 5f 4d 41 4a 4f 52 27 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 74 68 29 20 3e 20 30 29 ON_MAJOR').&&.strlen($path).>.0)
4dce0 20 7b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 24 72 65 6d 6f 76 65 64 20 3d .{.$basePath.=.$path;.$removed.=
4dd00 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 69 73 5f 64 69 72 28 24 62 61 73 65 50 .array();..while.(!is_dir($baseP
4dd20 61 74 68 29 20 26 26 20 24 62 61 73 65 50 61 74 68 20 21 3d 3d 20 27 5c 5c 27 29 20 7b 0a 61 72 ath).&&.$basePath.!==.'\\').{.ar
4dd40 72 61 79 5f 75 6e 73 68 69 66 74 28 24 72 65 6d 6f 76 65 64 2c 20 62 61 73 65 6e 61 6d 65 28 24 ray_unshift($removed,.basename($
4dd60 62 61 73 65 50 61 74 68 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 64 69 72 6e 61 6d 65 28 basePath));.$basePath.=.dirname(
4dd80 24 62 61 73 65 50 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 62 61 73 65 50 61 74 68 20 3d 3d 3d $basePath);.}..if.($basePath.===
4dda0 20 27 5c 5c 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 24 70 61 74 68 20 .'\\').{.return.$path;.}..$path.
4ddc0 3d 20 72 74 72 69 6d 28 72 65 61 6c 70 61 74 68 28 24 62 61 73 65 50 61 74 68 29 20 2e 20 27 2f =.rtrim(realpath($basePath)...'/
4dde0 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 72 65 6d 6f 76 65 64 29 2c 20 27 2f 27 29 '...implode('/',.$removed),.'/')
4de00 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ;.}..return.$path;.}.}.<?php....
4de20 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
4de40 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 oader;..use.Composer\Config;.use
4de60 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 .Composer\Cache;.use.Composer\Ev
4de80 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 0a 75 entDispatcher\EventDispatcher;.u
4dea0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 se.Composer\Package\PackageInter
4dec0 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 face;.use.Composer\Util\ProcessE
4dee0 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
4df00 66 61 63 65 3b 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 face;.......class.GzipDownloader
4df20 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f .extends.ArchiveDownloader.{.pro
4df40 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tected.$process;..public.functio
4df60 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
4df80 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 68 65 72 20 24 onfig.$config,.EventDispatcher.$
4dfa0 65 76 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 eventDispatcher.=.null,.Cache.$c
4dfc0 61 63 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 ache.=.null,.ProcessExecutor.$pr
4dfe0 6f 63 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 ocess.=.null).{.$this->process.=
4e000 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 6f 72 .$process.?:.new.ProcessExecutor
4e020 28 24 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 ($io);.parent::__construct($io,.
4e040 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 $config,.$eventDispatcher,.$cach
4e060 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 e);.}..protected.function.extrac
4e080 74 28 24 66 69 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 t($file,.$path).{.$targetFilepat
4e0a0 68 20 3d 20 24 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 h.=.$path...DIRECTORY_SEPARATOR.
4e0c0 2e 20 62 61 73 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 ..basename(substr($file,.0,.-3))
4e0e0 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 ;....if.(!defined('PHP_WINDOWS_V
4e100 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 7a ERSION_BUILD')).{.$command.=.'gz
4e120 69 70 20 2d 63 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 ip.-cd.'...ProcessExecutor::esca
4e140 70 65 28 24 66 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 pe($file)...'.>.'...ProcessExecu
4e160 74 6f 72 3a 3a 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 tor::escape($targetFilepath);..i
4e180 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 f.(0.===.$this->process->execute
4e1a0 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 65 ($command,.$ignoredOutput)).{.re
4e1c0 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 64 turn;.}..$processError.=.'Failed
4e1e0 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e .to.execute.'...$command..."\n\n
4e200 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 "...$this->process->getErrorOutp
4e220 75 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 65 70 74 69 6f ut();.throw.new.\RuntimeExceptio
4e240 6e 28 24 70 72 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 n($processError);.}....$archiveF
4e260 69 6c 65 20 3d 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 ile.=.gzopen($file,.'rb');.$targ
4e280 65 74 46 69 6c 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 etFile.=.fopen($targetFilepath,.
4e2a0 27 77 62 27 29 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 'wb');.while.($string.=.gzread($
4e2c0 61 72 63 68 69 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 archiveFile,.4096)).{.fwrite($ta
4e2e0 72 67 65 74 46 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 rgetFile,.$string,.strlen($strin
4e300 67 29 29 3b 0a 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 g));.}.gzclose($archiveFile);.fc
4e320 6c 6f 73 65 28 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 lose($targetFile);.}.....protect
4e340 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 ed.function.getFileName(PackageI
4e360 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 nterface.$package,.$path).{.retu
4e380 72 6e 20 24 70 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 rn.$path.'/'.pathinfo(parse_url(
4e3a0 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 52 4c 5f $package->getDistUrl(),.PHP_URL_
4e3c0 50 41 54 48 29 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 PATH),.PATHINFO_BASENAME);.}.}.<
4e3e0 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
4e400 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 63 er\Downloader;..use.Composer\Pac
4e420 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 6f kage\PackageInterface;.use.Compo
4e440 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 63 6c ser\Util\ProcessExecutor;.....cl
4e460 61 73 73 20 48 67 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e ass.HgDownloader.extends.VcsDown
4e480 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f loader.{....public.function.doDo
4e4a0 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 wnload(PackageInterface.$package
4e4c0 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 73 45 ,.$path,.$url).{.$url.=.ProcessE
4e4e0 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 50 72 xecutor::escape($url);.$ref.=.Pr
4e500 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 63 6b 61 67 65 2d 3e ocessExecutor::escape($package->
4e520 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 6f getSourceReference());.$this->io
4e540 2d 3e 77 72 69 74 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 ->writeError("....Cloning.".$pac
4e560 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 63 6f kage->getSourceReference());.$co
4e580 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 mmand.=.sprintf('hg.clone.%s.%s'
4e5a0 2c 20 24 75 72 6c 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 ,.$url,.ProcessExecutor::escape(
4e5c0 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 $path));.if.(0.!==.$this->proces
4e5e0 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 s->execute($command,.$ignoredOut
4e600 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
4e620 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
4e640 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
4e660 65 74 45 72 72 6f 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 etErrorOutput());.}.$command.=.s
4e680 70 72 69 6e 74 66 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 printf('hg.up.%s',.$ref);.if.(0.
4e6a0 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d !==.$this->process->execute($com
4e6c0 6d 61 6e 64 2c 20 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 mand,.$ignoredOutput,.realpath($
4e6e0 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 path))).{.throw.new.\RuntimeExce
4e700 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
4e720 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-
4e740 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c >getErrorOutput());.}.}.....publ
4e760 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 74 65 ic.function.doUpdate(PackageInte
4e780 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
4e7a0 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 24 75 72 6c 20 3d 20 .$target,.$path,.$url).{.$url.=.
4e7c0 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 29 3b 0a 24 ProcessExecutor::escape($url);.$
4e7e0 72 65 66 20 3d 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 ref.=.ProcessExecutor::escape($t
4e800 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 arget->getSourceReference());.$t
4e820 68 69 73 2d 3e 69 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 his->io->writeError("....Updatin
4e840 67 20 74 6f 20 22 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e g.to.".$target->getSourceReferen
4e860 63 65 28 29 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 68 67 27 ce());..if.(!is_dir($path.'/.hg'
4e880 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
4e8a0 28 27 54 68 65 20 2e 68 67 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 20 66 ('The..hg.directory.is.missing.f
4e8c0 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f rom.'.$path.',.see.https://getco
4e8e0 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 20 mposer.org/commit-deps.for.more.
4e900 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 information');.}..$command.=.spr
4e920 69 6e 74 66 28 27 68 67 20 70 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 intf('hg.pull.%s.&&.hg.up.%s',.$
4e940 75 72 6c 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f url,.$ref);.if.(0.!==.$this->pro
4e960 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
4e980 4f 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 Output,.realpath($path))).{.thro
4e9a0 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.
4e9c0 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 to.execute.'...$command..."\n\n"
4e9e0 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 ...$this->process->getErrorOutpu
4ea00 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 t());.}.}.....public.function.ge
4ea20 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 66 61 63 65 20 24 tLocalChanges(PackageInterface.$
4ea40 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 64 69 72 28 24 70 package,.$path).{.if.(!is_dir($p
4ea60 61 74 68 2e 27 2f 2e 68 67 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d ath.'/.hg')).{.return;.}..$this-
4ea80 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 74 27 2c 20 24 6f 75 74 70 >process->execute('hg.st',.$outp
4eaa0 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 ut,.realpath($path));..return.tr
4eac0 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
4eae0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f cted.function.getCommitLogs($fro
4eb00 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 mReference,.$toReference,.$path)
4eb20 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 72 .{.$command.=.sprintf('hg.log.-r
4eb40 20 25 73 3a 25 73 20 2d 2d 73 74 79 6c 65 20 63 6f 6d 70 61 63 74 27 2c 20 24 66 72 6f 6d 52 65 .%s:%s.--style.compact',.$fromRe
4eb60 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 ference,.$toReference);..if.(0.!
4eb80 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d ==.$this->process->execute($comm
4eba0 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 and,.$output,.realpath($path))).
4ebc0 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
4ebe0 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...
4ec00 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
4ec20 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d rOutput());.}..return.$output;.}
4ec40 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
4ec60 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
4ec80 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 53 \Package\PackageInterface;.use.S
4eca0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 45 78 63 65 ymfony\Component\Filesystem\Exce
4ecc0 70 74 69 6f 6e 5c 49 4f 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ption\IOException;.use.Symfony\C
4ece0 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a omponent\Filesystem\Filesystem;.
4ed00 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 74 68 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 .......class.PathDownloader.exte
4ed20 6e 64 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 nds.FileDownloader.{....public.f
4ed40 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 72 66 61 63 unction.download(PackageInterfac
4ed60 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 66 69 6c 65 53 79 73 74 65 6d e.$package,.$path).{.$fileSystem
4ed80 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 .=.new.Filesystem();.$this->file
4eda0 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a system->removeDirectory($path);.
4edc0 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 6e 74 66 28 0a .$this->io->writeError(sprintf(.
4ede0 27 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 '..-.Installing.<info>%s</info>.
4ee00 28 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 27 2c 0a 24 70 61 63 6b 61 (<comment>%s</comment>)',.$packa
4ee20 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 46 75 6c 6c ge->getName(),.$package->getFull
4ee40 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 29 29 3b 0a 0a 24 75 72 6c 20 3d 20 24 70 61 63 PrettyVersion().));..$url.=.$pac
4ee60 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 24 72 65 61 6c 55 72 6c 20 3d 20 72 kage->getDistUrl();.$realUrl.=.r
4ee80 65 61 6c 70 61 74 68 28 24 75 72 6c 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 ealpath($url);.if.(false.===.$re
4eea0 61 6c 55 72 6c 20 7c 7c 20 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 72 65 61 6c 55 72 6c 29 20 alUrl.||.!file_exists($realUrl).
4eec0 7c 7c 20 21 69 73 5f 64 69 72 28 24 72 65 61 6c 55 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ||.!is_dir($realUrl)).{.throw.ne
4eee0 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 50 61 w.\RuntimeException(sprintf(.'Pa
4ef00 74 68 20 22 25 73 22 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 24 75 72 6c 0a 29 29 3b 0a th."%s".is.not.found',.$url.));.
4ef20 7d 0a 0a 74 72 79 20 7b 0a 24 73 68 6f 72 74 65 73 74 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e }..try.{.$shortestPath.=.$this->
4ef40 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 70 61 filesystem->findShortestPath($pa
4ef60 74 68 2c 20 24 72 65 61 6c 55 72 6c 29 3b 0a 24 66 69 6c 65 53 79 73 74 65 6d 2d 3e 73 79 6d 6c th,.$realUrl);.$fileSystem->syml
4ef80 69 6e 6b 28 24 73 68 6f 72 74 65 73 74 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 ink($shortestPath,.$path);.$this
4efa0 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 27 20 20 20 20 53 79 ->io->writeError(sprintf('....Sy
4efc0 6d 6c 69 6e 6b 65 64 20 66 72 6f 6d 20 25 73 27 2c 20 24 75 72 6c 29 29 3b 0a 7d 20 63 61 74 63 mlinked.from.%s',.$url));.}.catc
4efe0 68 20 28 49 4f 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 66 69 6c 65 53 79 73 74 65 6d h.(IOException.$e).{.$fileSystem
4f000 2d 3e 6d 69 72 72 6f 72 28 24 72 65 61 6c 55 72 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 ->mirror($realUrl,.$path);.$this
4f020 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 27 20 20 20 20 4d 69 ->io->writeError(sprintf('....Mi
4f040 72 72 6f 72 65 64 20 66 72 6f 6d 20 25 73 27 2c 20 24 75 72 6c 29 29 3b 0a 7d 0a 0a 24 74 68 69 rrored.from.%s',.$url));.}..$thi
4f060 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 7d 0a 3c 3f 70 68 70 s->io->writeError('');.}.}.<?php
4f080 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
4f0a0 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 6c 5c 46 69 ownloader;..use.Composer\Util\Fi
4f0c0 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 61 72 50 61 lesystem;...........class.PearPa
4f0e0 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 74 69 63 20 ckageExtractor.{.private.static.
4f100 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 69 78 20 3d $rolesWithoutPackageNamePrefix.=
4f120 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 27 29 3b 0a .array('php',.'script',.'www');.
4f140 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 24 66 .private.$filesystem;.private.$f
4f160 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 74 72 75 63 ile;..public.function.__construc
4f180 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 65 29 29 20 t($file).{.if.(!is_file($file)).
4f1a0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
4f1c0 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 6e 6f 74 20 ption('PEAR.package.file.is.not.
4f1e0 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 3e 66 69 6c found.at.'.$file);.}..$this->fil
4f200 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 esystem.=.new.Filesystem();.$thi
4f220 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 0a 70 75 62 s->file.=.$file;.}...........pub
4f240 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 67 65 74 2c 20 lic.function.extractTo($target,.
4f260 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 3d 3e 20 27 2f array.$roles.=.array('php'.=>.'/
4f280 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 72 73 20 3d 20 ',.'script'.=>.'/bin'),.$vars.=.
4f2a0 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 3d 20 24 74 61 array()).{.$extractionPath.=.$ta
4f2c0 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 63 68 69 76 65 rget.'/tarball';..try.{.$archive
4f2e0 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 65 29 3b 0a 24 .=.new.\PharData($this->file);.$
4f300 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 69 6f 6e 50 61 archive->extractTo($extractionPa
4f320 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 69 6c 65 28 24 th,.null,.true);..if.(!is_file($
4f340 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 74 68 2c 20 27 this->combine($extractionPath,.'
4f360 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 77 20 5c 52 75 /package.xml'))).{.throw.new.\Ru
4f380 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 52 20 70 61 63 ntimeException('Invalid.PEAR.pac
4f3a0 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 67 65 2e 78 6d kage..It.must.contain.package.xm
4f3c0 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 6f 6e 73 20 3d l.file.');.}..$fileCopyActions.=
4f3e0 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 78 74 72 61 63 .$this->buildCopyActions($extrac
4f400 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 74 68 69 73 2d tionPath,.$roles,.$vars);.$this-
4f420 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 2c 20 24 65 78 >copyFiles($fileCopyActions,.$ex
4f440 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 65 73 2c 20 24 tractionPath,.$target,.$roles,.$
4f460 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 65 6d 6f 76 65 vars);.$this->filesystem->remove
4f480 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 0a 7d 20 63 61 Directory($extractionPath);.}.ca
4f4a0 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 20 7b 0a 74 68 tch.(\Exception.$exception).{.th
4f4c0 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
4f4e0 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 74 20 50 45 41 n(sprintf('Failed.to.extract.PEA
4f500 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 20 25 73 27 2c R.package.%s.to.%s..Reason:.%s',
4f520 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 65 70 74 69 6f .$this->file,.$target,.$exceptio
4f540 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 74 69 6f 6e 29 n->getMessage()),.0,.$exception)
4f560 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ;.}.}...........private.function
4f580 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 20 24 74 61 72 .copyFiles($files,.$source,.$tar
4f5a0 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 63 68 20 28 24 get,.$roles,.$vars).{.foreach.($
4f5c0 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 74 68 69 73 2d files.as.$file).{.$from.=.$this-
4f5e0 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 6f 6d 27 5d 29 >combine($source,.$file['from'])
4f600 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 67 65 74 2c 20 ;.$to.=.$this->combine($target,.
4f620 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 20 3d 20 24 74 $roles[$file['role']]);.$to.=.$t
4f640 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 27 5d 29 3b 0a his->combine($to,.$file['to']);.
4f660 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 68 69 73 2d 3e $tasks.=.$file['tasks'];.$this->
4f680 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
4f6a0 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 63 6f 70 79 46 rs);.}.}..private.function.copyF
4f6c0 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 72 73 29 0a 7b ile($from,.$to,.$tasks,.$vars).{
4f6e0 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 6f 77 20 6e 65 .if.(!is_file($from)).{.throw.ne
4f700 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
4f720 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 6e 65 73 20 66 R.package..package.xml.defines.f
4f740 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 69 64 65 20 74 ile.that.is.not.located.inside.t
4f760 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 73 74 65 6d 2d arball.');.}..$this->filesystem-
4f780 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($
4f7a0 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 73 29 29 20 7b to));..if.(0.==.count($tasks)).{
4f7c0 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 3b 0a 7d 20 65 .$copied.=.copy($from,.$to);.}.e
4f7e0 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 6f 6e 74 65 6e lse.{.$content.=.file_get_conten
4f800 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 61 72 72 61 79 ts($from);.$replacements.=.array
4f820 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 6b 29 20 7b 0a ();.foreach.($tasks.as.$task).{.
4f840 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 76 61 72 4e 61 $pattern.=.$task['from'];.$varNa
4f860 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 28 24 76 61 72 me.=.$task['to'];.if.(isset($var
4f880 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 65 20 3d 3d 3d s[$varName])).{.if.($varName.===
4f8a0 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 70 6f 73 28 24 .'php_bin'.&&.false.===.strpos($
4f8c0 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 73 5b 24 70 61 to,.'.bat')).{.$replacements[$pa
4f8e0 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 61 74 24 7d 27 ttern].=.preg_replace('{\.bat$}'
4f900 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 6c 73 65 20 7b ,.'',.$vars[$varName]);.}.else.{
4f920 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 24 76 61 72 73 .$replacements[$pattern].=.$vars
4f940 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 3d 20 73 74 72 [$varName];.}.}.}.$content.=.str
4f960 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 3b 0a 0a 24 63 tr($content,.$replacements);..$c
4f980 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 74 6f 2c 20 24 opied.=.file_put_contents($to,.$
4f9a0 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 24 63 6f 70 69 content);.}..if.(false.===.$copi
4f9c0 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 65 70 74 69 6f ed).{.throw.new.\RuntimeExceptio
4f9e0 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 73 20 74 6f 20 n(sprintf('Failed.to.copy.%s.to.
4fa00 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 0a 0a 0a 0a 0a %s',.$from,.$to));.}.}..........
4fa20 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 70 79 41 63 74 69 ..private.function.buildCopyActi
4fa40 6f 6e 73 28 24 73 6f 75 72 63 65 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 ons($source,.array.$roles,.$vars
4fa60 29 0a 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 73 ).{..$package.=.simplexml_load_s
4fa80 74 72 69 6e 67 28 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 63 tring(file_get_contents($this->c
4faa0 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 29 ombine($source,.'package.xml')))
4fac0 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f ;.if.(false.===.$package).{.thro
4fae0 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 50 61 63 6b 61 67 65 w.new.\RuntimeException('Package
4fb00 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 29 .definition.file.is.not.valid.')
4fb20 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 ;.}..$packageSchemaVersion.=.$pa
4fb40 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 69 66 20 28 27 31 2e 30 27 20 3d 3d 20 24 ckage['version'];.if.('1.0'.==.$
4fb60 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
4fb80 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 66 69 6c 65 6c 69 73 74 2d n.=.$package->release->filelist-
4fba0 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 >children();.$packageName.=.(str
4fbc0 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 ing).$package->name;.$packageVer
4fbe0 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 sion.=.(string).$package->releas
4fc00 65 2d 3e 76 65 72 73 69 6f 6e 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 e->version;.$sourceDir.=.$packag
4fc20 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 eName...'-'...$packageVersion;.$
4fc40 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 result.=.$this->buildSourceList1
4fc60 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 0($children,.$roles,.$sourceDir,
4fc80 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 .'',.null,.$packageName);.}.else
4fca0 69 66 20 28 27 32 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 if.('2.0'.==.$packageSchemaVersi
4fcc0 6f 6e 20 7c 7c 20 27 32 2e 31 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 on.||.'2.1'.==.$packageSchemaVer
4fce0 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 63 6f sion).{.$children.=.$package->co
4fd00 6e 74 65 6e 74 73 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 ntents->children();.$packageName
4fd20 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 .=.(string).$package->name;.$pac
4fd40 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d kageVersion.=.(string).$package-
4fd60 3e 76 65 72 73 69 6f 6e 2d 3e 72 65 6c 65 61 73 65 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 >version->release;.$sourceDir.=.
4fd80 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 $packageName...'-'...$packageVer
4fda0 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 sion;.$result.=.$this->buildSour
4fdc0 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 ceList20($children,.$roles,.$sou
4fde0 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b rceDir,.'',.null,.$packageName);
4fe00 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d ..$namespaces.=.$package->getNam
4fe20 65 73 70 61 63 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 72 65 67 69 73 74 65 72 58 50 61 espaces();.$package->registerXPa
4fe40 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 5b 27 27 thNamespace('ns',.$namespaces[''
4fe60 5d 29 3b 0a 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 78 70 ]);.$releaseNodes.=.$package->xp
4fe80 61 74 68 28 27 6e 73 3a 70 68 70 72 65 6c 65 61 73 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 ath('ns:phprelease');.$this->app
4fea0 6c 79 52 65 6c 65 61 73 65 28 24 72 65 73 75 6c 74 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 lyRelease($result,.$releaseNodes
4fec0 2c 20 24 76 61 72 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ,.$vars);.}.else.{.throw.new.\Ru
4fee0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 73 75 70 70 6f 72 74 65 64 20 73 63 68 65 ntimeException('Unsupported.sche
4ff00 6d 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e ma.version.of.package.definition
4ff20 20 66 69 6c 65 2e 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 0a .file.');.}..return.$result;.}..
4ff40 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 52 65 6c 65 61 73 65 28 26 24 private.function.applyRelease(&$
4ff60 61 63 74 69 6f 6e 73 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 0a 7b actions,.$releaseNodes,.$vars).{
4ff80 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 61 73 20 24 72 65 6c 65 .foreach.($releaseNodes.as.$rele
4ffa0 61 73 65 4e 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 4f 73 20 3d 20 24 72 65 6c 65 61 73 aseNode).{.$requiredOs.=.$releas
4ffc0 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 20 26 26 20 24 72 65 6c eNode->installconditions.&&.$rel
4ffe0 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 20 easeNode->installconditions->os.
50000 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f &&.$releaseNode->installconditio
50020 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3f 20 28 73 74 72 69 6e 67 29 20 24 72 65 6c 65 61 73 65 ns->os->name.?.(string).$release
50040 4e 6f 64 65 2d 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 Node->installconditions->os->nam
50060 65 20 3a 20 27 27 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 4f 73 20 26 26 20 24 76 61 72 73 e.:.'';.if.($requiredOs.&&.$vars
50080 5b 27 6f 73 27 5d 20 21 3d 20 24 72 65 71 75 69 72 65 64 4f 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 ['os'].!=.$requiredOs).{.continu
500a0 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 e;.}..if.($releaseNode->filelist
500c0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c ).{.foreach.($releaseNode->filel
500e0 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 20 61 73 20 24 61 63 74 69 6f 6e 29 20 7b 0a 69 66 ist->children().as.$action).{.if
50100 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 .('install'.==.$action->getName(
50120 29 29 20 7b 0a 24 6e 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 )).{.$name.=.(string).$action['n
50140 61 6d 65 27 5d 3b 0a 24 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 61 ame'];.$as.=.(string).$action['a
50160 73 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 29 s'];.if.(isset($actions[$name]))
50180 20 7b 0a 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 27 74 6f 27 5d 20 3d 20 24 61 73 3b 0a .{.$actions[$name]['to'].=.$as;.
501a0 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 67 6e 6f 72 65 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d }.}.elseif.('ignore'.==.$action-
501c0 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 >getName()).{.$name.=.(string).$
501e0 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 75 6e 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 action['name'];.unset($actions[$
50200 6e 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 7d 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a name]);.}.else.{...}.}.}.break;.
50220 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 }.}..private.function.buildSourc
50240 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c eList10($children,.$targetRoles,
50260 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 2c 20 24 70 61 63 6b 61 .$source,.$target,.$role,.$packa
50280 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 geName).{.$result.=.array();....
502a0 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a foreach.($children.as.$child).{.
502c0 0a 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 27 64 69 72 27 29 .if.($child->getName().==.'dir')
502e0 20 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 .{.$dirSource.=.$this->combine($
50300 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 source,.(string).$child['name'])
50320 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 ;.$dirTarget.=.$child['baseinsta
50340 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 6c 65 20 3d 20 24 lldir'].?:.$target;.$dirRole.=.$
50360 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 69 72 46 69 6c 65 child['role'].?:.$role;.$dirFile
50380 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 s.=.$this->buildSourceList10($ch
503a0 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 ild->children(),.$targetRoles,.$
503c0 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c dirSource,.$dirTarget,.$dirRole,
503e0 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f .$packageName);.$result.=.array_
50400 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 merge($result,.$dirFiles);.}.els
50420 65 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 27 66 69 6c 65 27 eif.($child->getName().==.'file'
50440 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b ).{.$fileRole.=.(string).$child[
50460 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 74 28 24 74 61 72 'role'].?:.$role;.if.(isset($tar
50480 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a 24 66 69 6c 65 4e 61 6d getRoles[$fileRole])).{.$fileNam
504a0 65 20 3d 20 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 20 3f 3a 20 e.=.(string).($child['name'].?:.
504c0 24 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 $child[0]);...$fileSource.=.$thi
504e0 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a s->combine($source,.$fileName);.
50500 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 $fileTarget.=.$this->combine((st
50520 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f ring).$child['baseinstalldir'].?
50540 3a 20 24 74 61 72 67 65 74 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 69 66 20 28 21 69 6e 5f 61 :.$target,.$fileName);.if.(!in_a
50560 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 73 57 69 74 68 rray($fileRole,.self::$rolesWith
50580 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 66 69 6c 65 54 61 outPackageNamePrefix)).{.$fileTa
505a0 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 66 69 6c rget.=.$packageName...'/'...$fil
505c0 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 29 20 24 63 68 69 eTarget;.}.$result[(string).$chi
505e0 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 24 66 ld['name']].=.array('from'.=>.$f
50600 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 72 67 65 74 2c 20 ileSource,.'to'.=>.$fileTarget,.
50620 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b 73 27 20 3d 3e 20 'role'.=>.$fileRole,.'tasks'.=>.
50640 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b array());.}.}.}..return.$result;
50660 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 .}..private.function.buildSource
50680 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 List20($children,.$targetRoles,.
506a0 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 2c 20 24 70 61 63 6b 61 67 $source,.$target,.$role,.$packag
506c0 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 eName).{.$result.=.array();....f
506e0 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a oreach.($children.as.$child).{..
50700 69 66 20 28 27 64 69 72 27 20 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 if.('dir'.==.$child->getName()).
50720 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 {.$dirSource.=.$this->combine($s
50740 6f 75 72 63 65 2c 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 ource,.$child['name']);.$dirTarg
50760 65 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a et.=.$child['baseinstalldir'].?:
50780 20 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c .$target;.$dirRole.=.$child['rol
507a0 65 27 5d 20 3f 3a 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 e'].?:.$role;.$dirFiles.=.$this-
507c0 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 2d 3e 63 68 69 6c 64 >buildSourceList20($child->child
507e0 72 65 6e 28 29 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c ren(),.$targetRoles,.$dirSource,
50800 20 24 64 69 72 54 61 72 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e .$dirTarget,.$dirRole,.$packageN
50820 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
50840 75 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 66 69 6c 65 ult,.$dirFiles);.}.elseif.('file
50860 27 20 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 6c 65 52 '.==.$child->getName()).{.$fileR
50880 6f 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 3a ole.=.(string).$child['role'].?:
508a0 20 24 72 6f 6c 65 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 .$role;.if.(isset($targetRoles[$
508c0 66 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 fileRole])).{.$fileSource.=.$thi
508e0 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 s->combine($source,.(string).$ch
50900 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 ild['name']);.$fileTarget.=.$thi
50920 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 62 61 73 s->combine((string).($child['bas
50940 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a 20 24 74 61 72 67 65 74 29 2c 20 28 73 74 72 69 einstalldir'].?:.$target),.(stri
50960 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 73 6b 73 20 ng).$child['name']);.$fileTasks.
50980 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c =.array();.foreach.($child->chil
509a0 64 72 65 6e 28 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 74 61 dren('http://pear.php.net/dtd/ta
509c0 73 6b 73 2d 31 2e 30 27 29 20 61 73 20 24 74 61 73 6b 4e 6f 64 65 29 20 7b 0a 69 66 20 28 27 72 sks-1.0').as.$taskNode).{.if.('r
509e0 65 70 6c 61 63 65 27 20 3d 3d 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 eplace'.==.$taskNode->getName())
50a00 20 7b 0a 24 66 69 6c 65 54 61 73 6b 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d .{.$fileTasks[].=.array('from'.=
50a20 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
50a40 28 29 2d 3e 66 72 6f 6d 2c 20 27 74 6f 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b ()->from,.'to'.=>.(string).$task
50a60 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 28 29 2d 3e 74 6f 29 3b 0a 7d 0a 7d 0a 69 66 20 Node->attributes()->to);.}.}.if.
50a80 28 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c (!in_array($fileRole,.self::$rol
50aa0 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 esWithoutPackageNamePrefix)).{.$
50ac0 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 fileTarget.=.$packageName...'/'.
50ae0 2e 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 ..$fileTarget;.}.$result[(string
50b00 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 ).$child['name']].=.array('from'
50b20 20 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 .=>.$fileSource,.'to'.=>.$fileTa
50b40 72 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b rget,.'role'.=>.$fileRole,.'task
50b60 73 27 20 3d 3e 20 24 66 69 6c 65 54 61 73 6b 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e s'.=>.$fileTasks);.}.}.}..return
50b80 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f .$result;.}..private.function.co
50ba0 6d 62 69 6e 65 28 24 6c 65 66 74 2c 20 24 72 69 67 68 74 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 mbine($left,.$right).{.return.rt
50bc0 72 69 6d 28 24 6c 65 66 74 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 72 rim($left,.'/')...'/'...ltrim($r
50be0 69 67 68 74 2c 20 27 2f 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ight,.'/');.}.}.<?php...........
50c00 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a .namespace.Composer\Downloader;.
50c20 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
50c40 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\
50c60 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 65 72 5c 55 74 69 6c VcsRepository;.use.Composer\Util
50c80 5c 50 65 72 66 6f 72 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 44 6f 77 \Perforce;.....class.PerforceDow
50ca0 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 0a 7b 0a nloader.extends.VcsDownloader.{.
50cc0 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 70 75 62 6c 69 63 20 protected.$perforce;.....public.
50ce0 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 function.doDownload(PackageInter
50d00 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 6c 29 0a 7b 0a 24 72 face.$package,.$path,.$url).{.$r
50d20 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 ef.=.$package->getSourceReferenc
50d40 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 61 62 65 6c 46 72 6f e();.$label.=.$this->getLabelFro
50d60 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 24 74 68 69 73 2d 3e mSourceReference($ref);..$this->
50d80 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 6e 67 20 27 20 2e 20 io->writeError('....Cloning.'...
50da0 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 65 28 24 70 61 63 6b $ref);.$this->initPerforce($pack
50dc0 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 3e 70 65 72 66 6f 72 age,.$path,.$url);.$this->perfor
50de0 63 65 2d 3e 73 65 74 53 74 72 65 61 6d 28 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 ce->setStream($ref);.$this->perf
50e00 6f 72 63 65 2d 3e 70 34 4c 6f 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d orce->p4Login($this->io);.$this-
50e20 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 29 3b 0a >perforce->writeP4ClientSpec();.
50e40 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 74 28 29 $this->perforce->connectClient()
50e60 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 73 79 6e 63 43 6f 64 65 42 61 73 65 28 ;.$this->perforce->syncCodeBase(
50e80 24 6c 61 62 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6c 65 61 6e 75 $label);.$this->perforce->cleanu
50ea0 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 20 66 75 6e 63 74 69 pClientSpec();.}..private.functi
50ec0 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 72 65 6e 63 65 28 24 on.getLabelFromSourceReference($
50ee0 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 2c 20 27 40 27 29 3b ref).{.$pos.=.strpos($ref,.'@');
50f00 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 75 72 6e 20 73 75 .if.(false.!==.$pos).{.return.su
50f20 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 65 74 75 72 6e 20 bstr($ref,.$pos.+.1);.}..return.
50f40 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 6e 69 74 50 65 72 null;.}..public.function.initPer
50f60 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 6c 29 0a 7b 0a 69 force($package,.$path,.$url).{.i
50f80 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 7b 0a 24 74 f.(!empty($this->perforce)).{.$t
50fa0 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 61 74 68 28 24 70 his->perforce->initializePath($p
50fc0 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 6f 72 79 20 3d 20 ath);..return;.}..$repository.=.
50fe0 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 0a 24 72 65 70 6f $package->getRepository();.$repo
51000 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 74 6f 72 79 20 69 Config.=.null;.if.($repository.i
51020 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 0a 24 72 65 70 6f nstanceof.VcsRepository).{.$repo
51040 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 66 69 67 28 24 72 Config.=.$this->getRepoConfig($r
51060 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 72 63 65 20 3d 20 epository);.}.$this->perforce.=.
51080 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 2c 20 24 75 Perforce::create($repoConfig,.$u
510a0 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 20 24 74 68 69 73 rl,.$path,.$this->process,.$this
510c0 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 20 67 65 74 52 65 ->io);.}..private.function.getRe
510e0 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 70 6f 73 69 74 6f poConfig(VcsRepository.$reposito
51100 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 67 65 74 52 65 70 ry).{.return.$repository->getRep
51120 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 6e 63 74 69 6f 6e oConfig();.}.....public.function
51140 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 .doUpdate(PackageInterface.$init
51160 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 ial,.PackageInterface.$target,.$
51180 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 6e 6c 6f 61 64 28 path,.$url).{.$this->doDownload(
511a0 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 0a 0a 0a 70 75 62 $target,.$path,.$url);.}.....pub
511c0 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 65 73 28 50 61 63 lic.function.getLocalChanges(Pac
511e0 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 0a 7b kageInterface.$package,.$path).{
51200 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 72 66 6f 72 63 65 .$this->io->writeError('Perforce
51220 20 64 72 69 76 65 72 20 64 6f 65 73 20 6e 6f 74 20 63 68 65 63 6b 20 66 6f 72 20 6c 6f 63 61 6c .driver.does.not.check.for.local
51240 20 63 68 61 6e 67 65 73 20 62 65 66 6f 72 65 20 6f 76 65 72 72 69 64 69 6e 67 27 2c 20 74 72 75 .changes.before.overriding',.tru
51260 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e e);..return;.}.....protected.fun
51280 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e ction.getCommitLogs($fromReferen
512a0 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 6d ce,.$toReference,.$path).{.$comm
512c0 69 74 4c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 43 6f 6d itLogs.=.$this->perforce->getCom
512e0 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 mitLogs($fromReference,.$toRefer
51300 65 6e 63 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 69 74 4c 6f 67 73 3b 0a 7d 0a 0a 70 ence);..return.$commitLogs;.}..p
51320 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 65 72 66 6f 72 63 65 28 24 70 65 72 66 ublic.function.setPerforce($perf
51340 6f 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 24 70 65 72 66 6f orce).{.$this->perforce.=.$perfo
51360 72 63 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 rce;.}.}.<?php............namesp
51380 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 ace.Composer\Downloader;.......c
513a0 6c 61 73 73 20 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 lass.PharDownloader.extends.Arch
513c0 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e iveDownloader.{....protected.fun
513e0 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 ction.extract($file,.$path).{...
51400 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 66 69 6c 65 29 3b 0a 24 61 72 $archive.=.new.\Phar($file);.$ar
51420 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 chive->extractTo($path,.null,.tr
51440 75 65 29 3b 0a 0a 0a 0a 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ue);......}.}.<?php............n
51460 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 amespace.Composer\Downloader;..u
51480 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
514a0 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 \Cache;.use.Composer\EventDispat
514c0 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 cher\EventDispatcher;.use.Compos
514e0 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d er\Util\ProcessExecutor;.use.Com
51500 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 52 61 72 41 72 63 poser\IO\IOInterface;.use.RarArc
51520 68 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 61 72 44 6f 77 6e 6c 6f 61 64 65 hive;.........class.RarDownloade
51540 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 r.extends.ArchiveDownloader.{.pr
51560 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 otected.$process;..public.functi
51580 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
515a0 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 68 65 72 20 Config.$config,.EventDispatcher.
515c0 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 $eventDispatcher.=.null,.Cache.$
515e0 63 61 63 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 cache.=.null,.ProcessExecutor.$p
51600 72 6f 63 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 rocess.=.null).{.$this->process.
51620 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 6f =.$process.?:.new.ProcessExecuto
51640 72 28 24 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 r($io);.parent::__construct($io,
51660 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 .$config,.$eventDispatcher,.$cac
51680 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 he);.}..protected.function.extra
516a0 63 74 28 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 ct($file,.$path).{.$processError
516c0 20 3d 20 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 .=.null;....if.(!defined('PHP_WI
516e0 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e NDOWS_VERSION_BUILD')).{.$comman
51700 64 20 3d 20 27 75 6e 72 61 72 20 78 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 d.=.'unrar.x.'...ProcessExecutor
51720 3a 3a 65 73 63 61 70 65 28 24 66 69 6c 65 29 20 2e 20 27 20 27 20 2e 20 50 72 6f 63 65 73 73 45 ::escape($file)...'.'...ProcessE
51740 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 68 xecutor::escape($path)...'.&&.ch
51760 6d 6f 64 20 2d 52 20 75 2b 77 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a mod.-R.u+w.'...ProcessExecutor::
51780 65 73 63 61 70 65 28 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d escape($path);..if.(0.===.$this-
517a0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e >process->execute($command,.$ign
517c0 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 oredOutput)).{.return;.}..$proce
517e0 73 73 45 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 ssError.=.'Failed.to.execute.'..
51800 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 .$command..."\n\n"...$this->proc
51820 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 ess->getErrorOutput();.}..if.(!c
51840 6c 61 73 73 5f 65 78 69 73 74 73 28 27 52 61 72 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 lass_exists('RarArchive')).{...$
51860 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 69 6c 65 28 29 3b iniPath.=.php_ini_loaded_file();
51880 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 61 67 65 20 3d 20 ..if.($iniPath).{.$iniMessage.=.
518a0 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 63 6f 6d 6d 61 6e 'The.php.ini.used.by.your.comman
518c0 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 68 3b 0a 7d 20 65 d-line.PHP.is:.'...$iniPath;.}.e
518e0 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 2e 69 6e 69 20 66 lse.{.$iniMessage.=.'A.php.ini.f
51900 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 6c 6c 20 68 61 76 ile.does.not.exist..You.will.hav
51920 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 6f 72 20 3d 20 22 e.to.create.one.';.}..$error.=."
51940 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 76 65 Could.not.decompress.the.archive
51960 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 20 6f ,.enable.the.PHP.rar.extension.o
51980 72 20 69 6e 73 74 61 6c 6c 20 75 6e 72 61 72 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 r.install.unrar.\n"...$iniMessag
519a0 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 0a 69 66 20 28 21 e..."\n"...$processError;..if.(!
519c0 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
519e0 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 74 20 64 65 63 6f LD')).{.$error.=."Could.not.deco
51a00 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 mpress.the.archive,.enable.the.P
51a20 48 50 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 HP.rar.extension.\n"...$iniMessa
51a40 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 78 63 65 70 74 69 ge;.}..throw.new.\RuntimeExcepti
51a60 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 20 3d 20 52 61 72 on($error);.}..$rarArchive.=.Rar
51a80 41 72 63 68 69 76 65 3a 3a 6f 70 65 6e 28 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 Archive::open($file);..if.(false
51aa0 20 3d 3d 3d 20 24 72 61 72 41 72 63 68 69 76 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 .===.$rarArchive).{.throw.new.\U
51ac0 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e nexpectedValueException('Could.n
51ae0 6f 74 20 6f 70 65 6e 20 52 41 52 20 61 72 63 68 69 76 65 3a 20 27 20 2e 20 24 66 69 6c 65 29 3b ot.open.RAR.archive:.'...$file);
51b00 0a 7d 0a 0a 24 65 6e 74 72 69 65 73 20 3d 20 24 72 61 72 41 72 63 68 69 76 65 2d 3e 67 65 74 45 .}..$entries.=.$rarArchive->getE
51b20 6e 74 72 69 65 73 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 69 65 ntries();..if.(false.===.$entrie
51b40 73 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 s).{.throw.new.\RuntimeException
51b60 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 52 41 52 20 61 72 63 68 69 76 65 ('Could.not.retrieve.RAR.archive
51b80 20 65 6e 74 72 69 65 73 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 6e 74 72 69 65 73 .entries');.}..foreach.($entries
51ba0 20 61 73 20 24 65 6e 74 72 79 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 .as.$entry).{.if.(false.===.$ent
51bc0 72 79 2d 3e 65 78 74 72 61 63 74 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ry->extract($path)).{.throw.new.
51be0 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 65 78 74 \RuntimeException('Could.not.ext
51c00 72 61 63 74 20 65 6e 74 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 2d 3e ract.entry');.}.}..$rarArchive->
51c20 63 6c 6f 73 65 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 close();.}.}.<?php............na
51c40 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 mespace.Composer\Downloader;..us
51c60 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.Composer\Package\PackageInterf
51c80 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 ace;.use.Composer\Util\Svn.as.Sv
51ca0 6e 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 20 nUtil;......class.SvnDownloader.
51cc0 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 extends.VcsDownloader.{....publi
51ce0 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 67 65 49 6e 74 c.function.doDownload(PackageInt
51d00 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 6c 29 0a 7b 0a erface.$package,.$path,.$url).{.
51d20 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 72 65 66 20 3d 20 24 70 61 63 SvnUtil::cleanEnv();.$ref.=.$pac
51d40 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 kage->getSourceReference();..$th
51d60 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 is->io->writeError("....Checking
51d80 20 6f 75 74 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .out.".$package->getSourceRefere
51da0 6e 63 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 nce());.$this->execute($url,."sv
51dc0 6e 20 63 6f 22 2c 20 73 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 n.co",.sprintf("%s/%s",.$url,.$r
51de0 65 66 29 2c 20 6e 75 6c 6c 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ef),.null,.$path);.}.....public.
51e00 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 function.doUpdate(PackageInterfa
51e20 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
51e40 61 72 67 65 74 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 arget,.$path,.$url).{.SvnUtil::c
51e60 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f leanEnv();.$ref.=.$target->getSo
51e80 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 urceReference();..if.(!is_dir($p
51ea0 61 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ath.'/.svn')).{.throw.new.\Runti
51ec0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 73 76 6e 20 64 69 72 65 63 74 6f 72 79 20 meException('The..svn.directory.
51ee0 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 is.missing.from.'.$path.',.see.h
51f00 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d 64 65 ttps://getcomposer.org/commit-de
51f20 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 66 ps.for.more.information');.}..$f
51f40 6c 61 67 73 20 3d 20 22 22 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 lags.=."";.if.(0.===.$this->proc
51f60 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 6f ess->execute('svn.--version',.$o
51f80 75 74 70 75 74 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 5c 64 2b 28 utput)).{.if.(preg_match('{(\d+(
51fa0 3f 3a 5c 2e 5c 64 2b 29 2b 29 7d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 20 26 ?:\.\d+)+)}',.$output,.$match).&
51fc0 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 27 31 2e &.version_compare($match[1],.'1.
51fe0 37 2e 30 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 66 6c 61 67 73 20 2e 3d 20 27 20 2d 2d 69 67 6e 7.0',.'>=')).{.$flags..=.'.--ign
52000 6f 72 65 2d 61 6e 63 65 73 74 72 79 27 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 ore-ancestry';.}.}..$this->io->w
52020 72 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 20 2e 20 riteError("....Checking.out."...
52040 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e $ref);.$this->execute($url,."svn
52060 20 73 77 69 74 63 68 22 20 2e 20 24 66 6c 61 67 73 2c 20 73 70 72 69 6e 74 66 28 22 25 73 2f 25 .switch"...$flags,.sprintf("%s/%
52080 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 s",.$url,.$ref),.$path);.}.....p
520a0 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 65 73 28 50 ublic.function.getLocalChanges(P
520c0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 ackageInterface.$package,.$path)
520e0 0a 7b 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 27 29 29 20 7b .{.if.(!is_dir($path.'/.svn')).{
52100 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 73 2d 3e 65 78 65 63 .return;.}..$this->process->exec
52120 75 74 65 28 27 73 76 6e 20 73 74 61 74 75 73 20 2d 2d 69 67 6e 6f 72 65 2d 65 78 74 65 72 6e 61 ute('svn.status.--ignore-externa
52140 6c 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 ls',.$output,.$path);..return.pr
52160 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f 75 74 70 75 eg_match('{^.*[^X.].+}m',.$outpu
52180 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t).?.$output.:.null;.}..........
521a0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 ....protected.function.execute($
521c0 62 61 73 65 55 72 6c 2c 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 baseUrl,.$command,.$url,.$cwd.=.
521e0 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 null,.$path.=.null).{.$util.=.ne
52200 77 20 53 76 6e 55 74 69 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 w.SvnUtil($baseUrl,.$this->io,.$
52220 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 75 74 69 this->config);.try.{.return.$uti
52240 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 2c 20 24 63 77 64 2c l->execute($command,.$url,.$cwd,
52260 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 3b .$path,.$this->io->isVerbose());
52280 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).
522a0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 {.throw.new.\RuntimeException(.'
522c0 50 61 63 6b 61 67 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 2c Package.could.not.be.downloaded,
522e0 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 .'.$e->getMessage().);.}.}.....p
52300 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 65 73 28 50 rotected.function.cleanChanges(P
52320 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c ackageInterface.$package,.$path,
52340 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 .$update).{.if.(!$changes.=.$thi
52360 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 24 70 61 s->getLocalChanges($package,.$pa
52380 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f th)).{.return;.}..if.(!$this->io
523a0 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 74 72 75 65 20 3d 3d ->isInteractive()).{.if.(true.==
523c0 3d 20 24 74 68 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 =.$this->config->get('discard-ch
523e0 61 6e 67 65 73 27 29 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 anges')).{.return.$this->discard
52400 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 Changes($path);.}..return.parent
52420 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 ::cleanChanges($package,.$path,.
52440 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 $update);.}..$changes.=.array_ma
52460 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 p(function.($elem).{.return.'...
52480 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f .'.$elem;.},.preg_split('{\s*\r?
524a0 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e \n\s*}',.$changes));.$this->io->
524c0 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b 61 writeError('....<error>The.packa
524e0 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 ge.has.modified.files:</error>')
52500 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 5f 73 6c ;.$this->io->writeError(array_sl
52520 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e 74 ice($changes,.0,.10));.if.(count
52540 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 ($changes).>.10).{.$this->io->wr
52560 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 68 61 iteError('....<info>'.count($cha
52580 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 66 69 nges).-.10...'.more.files.modifi
525a0 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c 6c 20 ed,.choose."v".to.view.the.full.
525c0 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b list</info>');.}..while.(true).{
525e0 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c 69 6e .switch.($this->io->ask('....<in
52600 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 3f 5d 3f 3c 2f 69 fo>Discard.changes.[y,n,v,?]?</i
52620 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 68 69 73 2d nfo>.',.'?')).{.case.'y':.$this-
52640 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 6b 20 32 3b >discardChanges($path);.break.2;
52660 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ..case.'n':.throw.new.\RuntimeEx
52680 63 65 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 ception('Update.aborted');..case
526a0 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 68 61 .'v':.$this->io->writeError($cha
526c0 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 nges);.break;..case.'?':.default
526e0 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 :.$this->io->writeError(array(.'
52700 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c ....y.-.discard.changes.and.appl
52720 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 y.the.'.($update.?.'update'.:.'u
52740 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 ninstall'),.'....n.-.abort.the.'
52760 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c .($update.?.'update'.:.'uninstal
52780 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e l').'.and.let.you.manually.clean
527a0 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 .things.up',.'....v.-.view.modif
527c0 69 65 64 20 66 69 6c 65 73 27 2c 0a 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 ied.files',.'....?.-.print.help'
527e0 2c 0a 29 29 3b 0a 62 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 ,.));.break;.}.}.}.....protected
52800 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 .function.getCommitLogs($fromRef
52820 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 erence,.$toReference,.$path).{.i
52840 66 20 28 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 66 72 f.(preg_match('{.*@(\d+)$}',.$fr
52860 6f 6d 52 65 66 65 72 65 6e 63 65 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 2e 2a 40 omReference).&&.preg_match('{.*@
52880 28 5c 64 2b 29 24 7d 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 24 66 72 (\d+)$}',.$toReference)).{...$fr
528a0 6f 6d 52 65 76 69 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2e 2a 40 28 omRevision.=.preg_replace('{.*@(
528c0 5c 64 2b 29 24 7d 27 2c 20 27 24 31 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 29 3b 0a \d+)$}',.'$1',.$fromReference);.
528e0 24 74 6f 52 65 76 69 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2e 2a 40 $toRevision.=.preg_replace('{.*@
52900 28 5c 64 2b 29 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a (\d+)$}',.'$1',.$toReference);..
52920 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 73 76 6e 20 6c 6f 67 20 2d 72 25 73 $command.=.sprintf('svn.log.-r%s
52940 3a 25 73 20 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 27 2c 20 24 66 72 6f 6d 52 65 76 69 73 69 6f :%s.--incremental',.$fromRevisio
52960 6e 2c 20 24 74 6f 52 65 76 69 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 n,.$toRevision);..if.(0.!==.$thi
52980 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
529a0 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 utput,.$path)).{.throw.new.\Runt
529c0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 imeException(.'Failed.to.execute
529e0 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e .'...$command..."\n\n"...$this->
52a00 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 3b 0a 7d 0a 7d process->getErrorOutput().);.}.}
52a20 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 .else.{.$output.=."Could.not.ret
52a40 72 69 65 76 65 20 63 68 61 6e 67 65 73 20 62 65 74 77 65 65 6e 20 24 66 72 6f 6d 52 65 66 65 72 rieve.changes.between.$fromRefer
52a60 65 6e 63 65 20 61 6e 64 20 24 74 6f 52 65 66 65 72 65 6e 63 65 20 64 75 65 20 74 6f 20 6d 69 73 ence.and.$toReference.due.to.mis
52a80 73 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 22 3b 0a 7d 0a 0a 72 sing.revision.information";.}..r
52aa0 65 74 75 72 6e 20 24 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 eturn.$output;.}..protected.func
52ac0 74 69 6f 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 tion.discardChanges($path).{.if.
52ae0 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 (0.!==.$this->process->execute('
52b00 73 76 6e 20 72 65 76 65 72 74 20 2d 52 20 2e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 svn.revert.-R..',.$output,.$path
52b20 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
52b40 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:".
52b60 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()
52b80 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 70 );.}.}.}.<?php............namesp
52ba0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 ace.Composer\Downloader;.......c
52bc0 6c 61 73 73 20 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 lass.TarDownloader.extends.Archi
52be0 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 veDownloader.{....protected.func
52c00 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 tion.extract($file,.$path).{...$
52c20 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 66 69 6c 65 29 3b 0a archive.=.new.\PharData($file);.
52c40 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 6c 6c 2c $archive->extractTo($path,.null,
52c60 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .true);.}.}.<?php............nam
52c80 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a espace.Composer\Downloader;.....
52ca0 63 6c 61 73 73 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 class.TransportException.extends
52cc0 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 .\RuntimeException.{.protected.$
52ce0 68 65 61 64 65 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 73 70 6f 6e 73 65 3b 0a 0a 70 headers;.protected.$response;..p
52d00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 ublic.function.setHeaders($heade
52d20 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 24 68 65 61 64 65 72 73 3b rs).{.$this->headers.=.$headers;
52d40 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 73 28 29 .}..public.function.getHeaders()
52d60 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 .{.return.$this->headers;.}..pub
52d80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 73 70 6f 6e 73 65 28 24 72 65 73 70 6f 6e lic.function.setResponse($respon
52da0 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 70 6f 6e 73 65 20 3d 20 24 72 65 73 70 6f 6e 73 se).{.$this->response.=.$respons
52dc0 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 52 65 73 70 6f 6e 73 e;.}..public.function.getRespons
52de0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 70 6f 6e 73 65 3b 0a 7d 0a e().{.return.$this->response;.}.
52e00 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
52e20 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c poser\Downloader;..use.Composer\
52e40 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 65 5c 50 61 63 Config;.use.Composer\Package\Pac
52e60 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 69 6c kageInterface;.use.Composer\Util
52e80 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 \ProcessExecutor;.use.Composer\I
52ea0 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c O\IOInterface;.use.Composer\Util
52ec0 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 \Filesystem;.....abstract.class.
52ee0 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 VcsDownloader.implements.Downloa
52f00 64 65 72 49 6e 74 65 72 66 61 63 65 2c 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 derInterface,.ChangeReportInterf
52f20 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ace.{.protected.$io;.protected.$
52f40 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 config;.protected.$process;.prot
52f60 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ected.$filesystem;..public.funct
52f80 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,
52fa0 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 .Config.$config,.ProcessExecutor
52fc0 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 .$process.=.null,.Filesystem.$fs
52fe0 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 3b 0a 24 74 68 69 .=.null).{.$this->io.=.$io;.$thi
53000 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 72 6f 63 s->config.=.$config;.$this->proc
53020 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 ess.=.$process.?:.new.ProcessExe
53040 63 75 74 6f 72 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 cutor($io);.$this->filesystem.=.
53060 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 $fs.?:.new.Filesystem;.}.....pub
53080 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 lic.function.getInstallationSour
530a0 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ce().{.return.'source';.}.....pu
530c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e blic.function.download(PackageIn
530e0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 terface.$package,.$path).{.if.(!
53100 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 $package->getSourceReference()).
53120 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
53140 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 ption('Package.'.$package->getPr
53160 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 ettyName().'.is.missing.referenc
53180 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 e.information');.}..$this->io->w
531a0 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e riteError("..-.Installing.<info>
531c0 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 "...$package->getName()..."</inf
531e0 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 46 75 o>.(<comment>"...$package->getFu
53200 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 llPrettyVersion()..."</comment>)
53220 22 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6d 70 74 79 44 69 72 65 ");.$this->filesystem->emptyDire
53240 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 0a 24 75 72 6c 73 20 3d 20 24 70 61 63 6b 61 67 65 2d ctory($path);..$urls.=.$package-
53260 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 3b 0a 77 68 69 6c 65 20 28 24 75 72 6c 20 3d 20 >getSourceUrls();.while.($url.=.
53280 61 72 72 61 79 5f 73 68 69 66 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 72 79 20 7b 0a 69 66 20 28 array_shift($urls)).{.try.{.if.(
532a0 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 29 29 20 7b Filesystem::isLocalPath($url)).{
532c0 0a 24 75 72 6c 20 3d 20 72 65 61 6c 70 61 74 68 28 24 75 72 6c 29 3b 0a 7d 0a 24 74 68 69 73 2d .$url.=.realpath($url);.}.$this-
532e0 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 >doDownload($package,.$path,.$ur
53300 6c 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 l);.break;.}.catch.(\Exception.$
53320 65 29 20 7b 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 e).{.if.($this->io->isDebug()).{
53340 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 3a 20 .$this->io->writeError('Failed:.
53360 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 ['.get_class($e).'].'.$e->getMes
53380 73 61 67 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 sage());.}.elseif.(count($urls))
533a0 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 46 61 .{.$this->io->writeError('....Fa
533c0 69 6c 65 64 2c 20 74 72 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 55 52 4c 27 29 3b 0a 7d 0a 69 iled,.trying.the.next.URL');.}.i
533e0 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 0a 7d 0a f.(!count($urls)).{.throw.$e;.}.
53400 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 29 3b 0a }.}..$this->io->writeError('');.
53420 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 }.....public.function.update(Pac
53440 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 kageInterface.$initial,.PackageI
53460 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 nterface.$target,.$path).{.if.(!
53480 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b $target->getSourceReference()).{
534a0 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
534c0 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 tion('Package.'.$target->getPret
534e0 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 tyName().'.is.missing.reference.
53500 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 61 72 67 65 information');.}..$name.=.$targe
53520 74 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 t->getName();.if.($initial->getP
53540 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 rettyVersion().==.$target->getPr
53560 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 ettyVersion()).{.if.($target->ge
53580 74 53 6f 75 72 63 65 54 79 70 65 28 29 20 3d 3d 3d 20 27 73 76 6e 27 29 20 7b 0a 24 66 72 6f 6d tSourceType().===.'svn').{.$from
535a0 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 .=.$initial->getSourceReference(
535c0 29 3b 0a 24 74 6f 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 );.$to.=.$target->getSourceRefer
535e0 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 73 75 62 73 74 72 28 ence();.}.else.{.$from.=.substr(
53600 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 $initial->getSourceReference(),.
53620 30 2c 20 37 29 3b 0a 24 74 6f 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 2d 3e 67 65 74 0,.7);.$to.=.substr($target->get
53640 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 7d 0a 24 6e 61 6d SourceReference(),.0,.7);.}.$nam
53660 65 20 2e 3d 20 27 20 27 2e 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 e..=.'.'.$initial->getPrettyVers
53680 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 69 6e 69 74 69 61 6c ion();.}.else.{.$from.=.$initial
536a0 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 74 6f 20 3d 20 ->getFullPrettyVersion();.$to.=.
536c0 24 74 61 72 67 65 74 2d 3e 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b $target->getFullPrettyVersion();
536e0 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 55 .}..$this->io->writeError("..-.U
53700 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 69 6e 66 pdating.<info>"...$name..."</inf
53720 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 6f 6d 6d o>.(<comment>"...$from..."</comm
53740 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 2f 63 6f ent>.=>.<comment>"...$to..."</co
53760 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 65 73 28 mment>)");..$this->cleanChanges(
53780 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 20 3d 20 $initial,.$path,.true);.$urls.=.
537a0 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 6c 65 20 $target->getSourceUrls();.while.
537c0 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 0a 74 72 ($url.=.array_shift($urls)).{.tr
537e0 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 74 68 28 y.{.if.(Filesystem::isLocalPath(
53800 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 29 3b 0a $url)).{.$url.=.realpath($url);.
53820 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 74 61 72 }.$this->doUpdate($initial,.$tar
53840 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 61 74 63 get,.$path,.$url);.break;.}.catc
53860 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
53880 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
538a0 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 65 29 2e Error('Failed:.['.get_class($e).
538c0 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 65 69 66 '].'.$e->getMessage());.}.elseif
538e0 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 77 72 69 .(count($urls)).{.$this->io->wri
53900 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 68 65 20 teError('....Failed,.trying.the.
53920 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 3e 72 65 next.URL');.}.else.{...$this->re
53940 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 65 3b 0a applyChanges($path);..throw.$e;.
53960 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 24 70 61 }.}.}..$this->reapplyChanges($pa
53980 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 6f 73 65 th);....if.($this->io->isVerbose
539a0 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 63 68 61 ()).{.$message.=.'Pulling.in.cha
539c0 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
539e0 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 65 6e 63 Logs($initial->getSourceReferenc
53a00 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 6e 63 65 e(),.$target->getSourceReference
53a20 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 29 20 7b (),.$path);..if.(!trim($logs)).{
53a40 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 6e 67 65 .$message.=.'Rolling.back.change
53a60 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 4c 6f 67 s:';.$logs.=.$this->getCommitLog
53a80 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 28 29 2c s($target->getSourceReference(),
53aa0 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c .$initial->getSourceReference(),
53ac0 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 7b 0a 24 .$path);.}..if.(trim($logs)).{.$
53ae0 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 70 28 66 logs.=.implode("\n",.array_map(f
53b00 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 20 20 unction.($line).{.return.'......
53b20 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 6c 6f 67 '...$line;.},.explode("\n",.$log
53b40 73 29 29 29 3b 0a 0a 0a 20 24 6c 6f 67 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3c 27 s)));....$logs.=.str_replace('<'
53b60 2c 20 27 5c 3c 27 2c 20 24 6c 6f 67 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 ,.'\<',.$logs);..$this->io->writ
53b80 65 45 72 72 6f 72 28 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 eError('....'.$message);.$this->
53ba0 69 6f 2d 3e 77 72 69 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 io->writeError($logs);.}.}..$thi
53bc0 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
53be0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 lic.function.remove(PackageInter
53c00 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 face.$package,.$path).{.$this->i
53c20 6f 2d 3e 77 72 69 74 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 o->writeError("..-.Removing.<inf
53c40 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 o>"...$package->getName()..."</i
53c60 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 nfo>.(<comment>"...$package->get
53c80 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 PrettyVersion()..."</comment>)")
53ca0 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 ;.$this->cleanChanges($package,.
53cc0 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 $path,.false);.if.(!$this->files
53ce0 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 29 20 7b ystem->removeDirectory($path)).{
53d00 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
53d20 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 uld.not.completely.delete.'.$pat
53d40 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 h.',.aborting.');.}.}......publi
53d60 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 75 c.function.setOutputProgress($ou
53d80 74 70 75 74 50 72 6f 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 tputProgress).{.return.$this;.}.
53da0 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 6c 65 ..........protected.function.cle
53dc0 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b anChanges(PackageInterface.$pack
53de0 61 67 65 2c 20 24 70 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 age,.$path,.$update).{...if.(nul
53e00 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 l.!==.$this->getLocalChanges($pa
53e20 63 6b 61 67 65 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 ckage,.$path)).{.throw.new.\Runt
53e40 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 27 imeException('Source.directory.'
53e60 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 ...$path...'.has.uncommitted.cha
53e80 6e 67 65 73 2e 27 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 75 nges.');.}.}........protected.fu
53ea0 6e 63 74 69 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 7d nction.reapplyChanges($path).{.}
53ec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 .........abstract.protected.func
53ee0 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 tion.doDownload(PackageInterface
53f00 20 24 70 61 63 6b 61 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 .$package,.$path,.$url);........
53f20 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
53f40 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 6c Update(PackageInterface.$initial
53f60 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 74 ,.PackageInterface.$target,.$pat
53f80 68 2c 20 24 75 72 6c 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 h,.$url);..........abstract.prot
53fa0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 ected.function.getCommitLogs($fr
53fc0 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 omReference,.$toReference,.$path
53fe0 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.
54000 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 Composer\Downloader;..use.Compos
54020 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 er\Config;.use.Composer\Cache;.u
54040 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
54060 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 6b 61 67 tDispatcher;.use.Composer\Packag
54080 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
540a0 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f \Util\ProcessExecutor;.use.Compo
540c0 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 0a 63 6c 61 73 73 ser\IO\IOInterface;........class
540e0 20 58 7a 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 .XzDownloader.extends.ArchiveDow
54100 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 3b 0a 0a 70 nloader.{.protected.$process;..p
54120 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
54140 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 45 76 65 6e erface.$io,.Config.$config,.Even
54160 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 20 3d 20 6e tDispatcher.$eventDispatcher.=.n
54180 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 6f 63 65 73 ull,.Cache.$cache.=.null,.Proces
541a0 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 sExecutor.$process.=.null).{.$th
541c0 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
541e0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 ocessExecutor($io);..parent::__c
54200 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 44 69 73 onstruct($io,.$config,.$eventDis
54220 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 64 20 66 patcher,.$cache);.}..protected.f
54240 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a unction.extract($file,.$path).{.
54260 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 74 61 72 20 2d 78 4a 66 20 27 20 2e 20 50 72 6f 63 65 73 73 $command.=.'tar.-xJf.'...Process
54280 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 66 69 6c 65 29 20 2e 20 27 20 2d 43 20 27 Executor::escape($file)...'.-C.'
542a0 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 70 61 74 68 ...ProcessExecutor::escape($path
542c0 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 );..if.(0.===.$this->process->ex
542e0 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 29 29 ecute($command,.$ignoredOutput))
54300 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 .{.return;.}..$processError.=.'F
54320 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...
54340 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
54360 72 4f 75 74 70 75 74 28 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 rOutput();..throw.new.\RuntimeEx
54380 63 65 70 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 45 72 72 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 ception($processError);.}.....pr
543a0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 otected.function.getFileName(Pac
543c0 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 0a 7b kageInterface.$package,.$path).{
543e0 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 .return.$path.'/'.pathinfo(parse
54400 5f 75 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 _url($package->getDistUrl(),.PHP
54420 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a _URL_PATH),.PATHINFO_BASENAME);.
54440 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
54460 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 omposer\Downloader;..use.Compose
54480 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 r\Config;.use.Composer\Cache;.us
544a0 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 74 e.Composer\EventDispatcher\Event
544c0 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 55 74 69 6c 5c 50 72 Dispatcher;.use.Composer\Util\Pr
544e0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 ocessExecutor;.use.Composer\IO\I
54500 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 5a 69 70 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a OInterface;.use.ZipArchive;.....
54520 63 6c 61 73 73 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 class.ZipDownloader.extends.Arch
54540 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 iveDownloader.{.protected.$proce
54560 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 ss;..public.function.__construct
54580 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
545a0 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 68 ,.EventDispatcher.$eventDispatch
545c0 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 er.=.null,.Cache.$cache.=.null,.
545e0 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 29 ProcessExecutor.$process.=.null)
54600 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 .{.$this->process.=.$process.?:.
54620 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 70 61 72 65 6e 74 new.ProcessExecutor($io);.parent
54640 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 ::__construct($io,.$config,.$eve
54660 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ntDispatcher,.$cache);.}..protec
54680 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 74 ted.function.extract($file,.$pat
546a0 68 29 0a 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 h).{.$processError.=.null;....if
546c0 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f .(!defined('PHP_WINDOWS_VERSION_
546e0 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 7a 69 70 20 27 2e 50 BUILD')).{.$command.=.'unzip.'.P
54700 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 2e 27 20 rocessExecutor::escape($file).'.
54720 2d 64 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 65 28 24 70 61 -d.'.ProcessExecutor::escape($pa
54740 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 72 6f 63 th)...'.&&.chmod.-R.u+w.'...Proc
54760 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 74 72 79 20 essExecutor::escape($path);.try.
54780 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 {.if.(0.===.$this->process->exec
547a0 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b ute($command,.$ignoredOutput)).{
547c0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 .return;.}..$processError.=.'Fai
547e0 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c led.to.execute.'...$command..."\
54800 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f n\n"...$this->process->getErrorO
54820 75 74 70 75 74 28 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 utput();.}.catch.(\Exception.$e)
54840 20 7b 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 78 .{.$processError.=.'Failed.to.ex
54860 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 65 ecute.'...$command..."\n\n"...$e
54880 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f ->getMessage();.}.}..if.(!class_
548a0 65 78 69 73 74 73 28 27 5a 69 70 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 exists('ZipArchive')).{...$iniPa
548c0 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 th.=.php_ini_loaded_file();..if.
548e0 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 ($iniPath).{.$iniMessage.=.'The.
54900 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e php.ini.used.by.your.command-lin
54920 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b e.PHP.is:.'...$iniPath;.}.else.{
54940 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 .$iniMessage.=.'A.php.ini.file.d
54960 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 oes.not.exist..You.will.have.to.
54980 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 create.one.';.}..$error.=."Could
549a0 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 .not.decompress.the.archive,.ena
549c0 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 ble.the.PHP.zip.extension.or.ins
549e0 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 tall.unzip.\n"...$iniMessage..."
54a00 5c 6e 22 20 2e 20 24 70 72 6f 63 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e \n"...$processError;..if.(!defin
54a20 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 ed('PHP_WINDOWS_VERSION_BUILD'))
54a40 20 7b 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 .{.$error.=."Could.not.decompres
54a60 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 s.the.archive,.enable.the.PHP.zi
54a80 70 20 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d p.extension.\n"...$iniMessage;.}
54aa0 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 ..throw.new.\RuntimeException($e
54ac0 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5a 69 70 41 rror);.}..$zipArchive.=.new.ZipA
54ae0 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 74 76 61 6c rchive();..if.(true.!==.($retval
54b00 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 29 20 7b 0a .=.$zipArchive->open($file))).{.
54b20 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 throw.new.\UnexpectedValueExcept
54b40 69 6f 6e 28 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 ion(rtrim($this->getErrorMessage
54b60 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 2e 22 5c 6e 22 2e 24 70 72 6f 63 65 73 73 45 72 ($retval,.$file)."\n".$processEr
54b80 72 6f 72 29 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 ror),.$retval);.}..if.(true.!==.
54ba0 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 29 29 20 7b $zipArchive->extractTo($path)).{
54bc0 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 22 54 68 .throw.new.\RuntimeException("Th
54be0 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 ere.was.an.error.extracting.the.
54c00 5a 49 50 20 66 69 6c 65 2e 20 43 6f 72 72 75 70 74 20 66 69 6c 65 3f 22 29 3b 0a 7d 0a 0a 24 7a ZIP.file..Corrupt.file?");.}..$z
54c20 69 70 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ipArchive->close();.}.........pr
54c40 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 otected.function.getErrorMessage
54c60 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 72 65 74 76 ($retval,.$file).{.switch.($retv
54c80 61 6c 29 20 7b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 45 58 49 53 54 53 al).{.case.ZipArchive::ER_EXISTS
54ca0 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 46 69 6c 65 20 27 25 73 27 20 61 6c 72 65 :.return.sprintf("File.'%s'.alre
54cc0 61 64 79 20 65 78 69 73 74 73 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 ady.exists.",.$file);.case.ZipAr
54ce0 63 68 69 76 65 3a 3a 45 52 5f 49 4e 43 4f 4e 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 chive::ER_INCONS:.return.sprintf
54d00 28 22 5a 69 70 20 61 72 63 68 69 76 65 20 27 25 73 27 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65 ("Zip.archive.'%s'.is.inconsiste
54d20 6e 74 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 nt.",.$file);.case.ZipArchive::E
54d40 52 5f 49 4e 56 41 4c 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 49 6e 76 61 6c 69 64 R_INVAL:.return.sprintf("Invalid
54d60 20 61 72 67 75 6d 65 6e 74 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 .argument.(%s)",.$file);.case.Zi
54d80 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4d 45 4d 4f 52 59 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 pArchive::ER_MEMORY:.return.spri
54da0 6e 74 66 28 22 4d 61 6c 6c 6f 63 20 66 61 69 6c 75 72 65 20 28 25 73 29 22 2c 20 24 66 69 6c 65 ntf("Malloc.failure.(%s)",.$file
54dc0 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 45 4e 54 3a 0a 72 65 );.case.ZipArchive::ER_NOENT:.re
54de0 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 4e 6f 20 73 75 63 68 20 7a 69 70 20 66 69 6c 65 3a 20 turn.sprintf("No.such.zip.file:.
54e00 27 25 73 27 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a '%s'",.$file);.case.ZipArchive::
54e20 45 52 5f 4e 4f 5a 49 50 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 ER_NOZIP:.return.sprintf("'%s'.i
54e40 73 20 6e 6f 74 20 61 20 7a 69 70 20 61 72 63 68 69 76 65 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 s.not.a.zip.archive.",.$file);.c
54e60 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4f 50 45 4e 3a 0a 72 65 74 75 72 6e 20 ase.ZipArchive::ER_OPEN:.return.
54e80 73 70 72 69 6e 74 66 28 22 43 61 6e 27 74 20 6f 70 65 6e 20 7a 69 70 20 66 69 6c 65 3a 20 25 73 sprintf("Can't.open.zip.file:.%s
54ea0 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 52 ",.$file);.case.ZipArchive::ER_R
54ec0 45 41 44 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 72 65 61 64 20 65 72 EAD:.return.sprintf("Zip.read.er
54ee0 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 ror.(%s)",.$file);.case.ZipArchi
54f00 76 65 3a 3a 45 52 5f 53 45 45 4b 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 ve::ER_SEEK:.return.sprintf("Zip
54f20 20 73 65 65 6b 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 64 65 66 61 75 .seek.error.(%s)",.$file);.defau
54f40 6c 74 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 lt:.return.sprintf("'%s'.is.not.
54f60 61 20 76 61 6c 69 64 20 7a 69 70 20 61 72 63 68 69 76 65 2c 20 67 6f 74 20 65 72 72 6f 72 20 63 a.valid.zip.archive,.got.error.c
54f80 6f 64 65 3a 20 25 73 22 2c 20 24 66 69 6c 65 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 7d 0a 7d ode:.%s",.$file,.$retval);.}.}.}
54fa0 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
54fc0 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 0a 0a 0a 63 6c 61 73 oser\EventDispatcher;.......clas
54fe0 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 61 6d 65 3b 0a 0a 0a s.Event.{....protected.$name;...
55000 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 6f 74 65 63 74 65 64 ..protected.$args;.....protected
55020 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 70 61 67 61 74 69 6f .$flags;.....private.$propagatio
55040 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 0a 70 75 62 6c 69 63 nStopped.=.false;.........public
55060 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 61 72 72 .function.__construct($name,.arr
55080 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
550a0 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 20 3d 20 24 6e 61 6d .=.array()).{.$this->name.=.$nam
550c0 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 74 68 69 73 2d 3e 66 e;.$this->args.=.$args;.$this->f
550e0 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 62 6c 69 63 20 66 75 lags.=.$flags;.}.......public.fu
55100 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getName().{.return.$this-
55120 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 69 6f 6e 20 67 >name;.}.......public.function.g
55140 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 68 69 73 2d 3e 61 72 etArguments().{.return.$this->ar
55160 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 67 65 74 46 gs;.}.......public.function.getF
55180 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 61 67 73 3b 0a 7d 0a lags().{.return.$this->flags;.}.
551a0 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 72 6f 70 61 67 61 74 ......public.function.isPropagat
551c0 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 69 73 2d 3e 70 72 6f ionStopped().{.return.$this->pro
551e0 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 62 6c 69 63 20 66 75 pagationStopped;.}.....public.fu
55200 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 7b 0a 24 74 68 69 73 nction.stopPropagation().{.$this
55220 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 75 65 3b 0a 7d 0a 7d ->propagationStopped.=.true;.}.}
55240 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
55260 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 65 20 43 6f 6d 70 6f oser\EventDispatcher;..use.Compo
55280 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 6e 74 ser\DependencyResolver\PolicyInt
552a0 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
552c0 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
552e0 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
55300 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 65 6e 74 3b 0a 75 73 ser\Installer\InstallerEvent;.us
55320 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
55340 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 44 omposer\Composer;.use.Composer\D
55360 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 72 ependencyResolver\Operation\Oper
55380 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 52 65 70 ationInterface;.use.Composer\Rep
553a0 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 ository\CompositeRepository;.use
553c0 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 .Composer\Script;.use.Composer\S
553e0 63 72 69 70 74 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 cript\CommandEvent;.use.Composer
55400 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 6f 6d 70 6f 73 \Script\PackageEvent;.use.Compos
55420 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;........
55440 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 0a 7b 0a 70 .......class.EventDispatcher.{.p
55460 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 rotected.$composer;.protected.$i
55480 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 o;.protected.$loader;.protected.
554a0 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 65 72 73 3b 0a $process;.protected.$listeners;.
554c0 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 private.$eventStack;.........pub
554e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 lic.function.__construct(Compose
55500 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 r.$composer,.IOInterface.$io,.Pr
55520 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).{
55540 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
55560 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 his->io.=.$io;.$this->process.=.
55580 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 $process.?:.new.ProcessExecutor(
555a0 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 53 74 61 63 6b 20 3d 20 61 72 72 61 79 28 $io);.$this->eventStack.=.array(
555c0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 );.}..........public.function.di
555e0 73 70 61 74 63 68 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 20 spatch($eventName,.Event.$event.
55600 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a =.null).{.if.(null.==.$event).{.
55620 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a $event.=.new.Event($eventName);.
55640 7d 0a 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 24 65 76 65 }..return.$this->doDispatch($eve
55660 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f nt);.}............public.functio
55680 6e 20 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 n.dispatchScript($eventName,.$de
556a0 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 41 72 67 73 20 3d vMode.=.false,.$additionalArgs.=
556c0 20 61 72 72 61 79 28 29 2c 20 24 66 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 .array(),.$flags.=.array()).{.re
556e0 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 20 53 63 72 69 70 turn.$this->doDispatch(new.Scrip
55700 74 5c 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f t\Event($eventName,.$this->compo
55720 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 61 64 64 69 74 ser,.$this->io,.$devMode,.$addit
55740 69 6f 6e 61 6c 41 72 67 73 2c 20 24 66 6c 61 67 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ionalArgs,.$flags));.}..........
55760 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 50 .......public.function.dispatchP
55780 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 ackageEvent($eventName,.$devMode
557a0 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 6f 6c 20 ,.PolicyInterface.$policy,.Pool.
557c0 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 6e 73 74 $pool,.CompositeRepository.$inst
557e0 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 61 72 72 alledRepo,.Request.$request,.arr
55800 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 ay.$operations,.OperationInterfa
55820 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 ce.$operation).{.return.$this->d
55840 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e oDispatch(new.PackageEvent($even
55860 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
55880 6f 2c 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 o,.$devMode,.$policy,.$pool,.$in
558a0 73 74 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 stalledRepo,.$request,.$operatio
558c0 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ns,.$operation));.}.............
558e0 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 49 6e 73 74 61 ...public.function.dispatchInsta
55900 6c 6c 65 72 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 llerEvent($eventName,.$devMode,.
55920 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 6f 6c 20 24 70 PolicyInterface.$policy,.Pool.$p
55940 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 6e 73 74 61 6c ool,.CompositeRepository.$instal
55960 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 61 72 72 61 79 ledRepo,.Request.$request,.array
55980 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 72 65 74 75 72 6e .$operations.=.array()).{.return
559a0 20 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 .$this->doDispatch(new.Installer
559c0 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 Event($eventName,.$this->compose
559e0 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 2c r,.$this->io,.$devMode,.$policy,
55a00 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 74 .$pool,.$installedRepo,.$request
55a20 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ,.$operations));.}............pr
55a40 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 69 73 70 61 74 63 68 28 45 76 65 6e otected.function.doDispatch(Even
55a60 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e t.$event).{.$listeners.=.$this->
55a80 67 65 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 75 getListeners($event);..$this->pu
55aa0 73 68 45 76 65 6e 74 28 24 65 76 65 6e 74 29 3b 0a 0a 24 72 65 74 75 72 6e 20 3d 20 30 3b 0a 66 shEvent($event);..$return.=.0;.f
55ac0 6f 72 65 61 63 68 20 28 24 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c 65 29 oreach.($listeners.as.$callable)
55ae0 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 63 61 6c 6c 61 62 6c 65 29 20 26 26 20 .{.if.(!is_string($callable).&&.
55b00 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 65 76 65 6e 74 is_callable($callable)).{.$event
55b20 20 3d 20 24 74 68 69 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 .=.$this->checkListenerExpectedE
55b40 76 65 6e 74 28 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 29 3b 0a 24 72 65 74 75 72 6e vent($callable,.$event);.$return
55b60 20 3d 20 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c .=.false.===.call_user_func($cal
55b80 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 29 20 3f 20 31 20 3a 20 30 3b 0a 7d 20 65 6c 73 65 69 66 lable,.$event).?.1.:.0;.}.elseif
55ba0 20 28 24 74 68 69 73 2d 3e 69 73 43 6f 6d 70 6f 73 65 72 53 63 72 69 70 74 28 24 63 61 6c 6c 61 .($this->isComposerScript($calla
55bc0 62 6c 65 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 ble)).{.if.($this->io->isVerbose
55be0 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 73 70 72 69 ()).{.$this->io->writeError(spri
55c00 6e 74 66 28 27 3e 20 25 73 3a 20 25 73 27 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 ntf('>.%s:.%s',.$event->getName(
55c20 29 2c 20 24 63 61 6c 6c 61 62 6c 65 29 29 3b 0a 7d 0a 24 73 63 72 69 70 74 4e 61 6d 65 20 3d 20 ),.$callable));.}.$scriptName.=.
55c40 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 31 29 3b 0a 24 61 72 67 73 20 3d 20 24 65 substr($callable,.1);.$args.=.$e
55c60 76 65 6e 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 24 66 6c 61 67 73 20 3d 20 24 vent->getArguments();.$flags.=.$
55c80 65 76 65 6e 74 2d 3e 67 65 74 46 6c 61 67 73 28 29 3b 0a 24 72 65 74 75 72 6e 20 3d 20 24 74 68 event->getFlags();.$return.=.$th
55ca0 69 73 2d 3e 64 69 73 70 61 74 63 68 28 24 73 63 72 69 70 74 4e 61 6d 65 2c 20 6e 65 77 20 53 63 is->dispatch($scriptName,.new.Sc
55cc0 72 69 70 74 5c 45 76 65 6e 74 28 24 73 63 72 69 70 74 4e 61 6d 65 2c 20 24 65 76 65 6e 74 2d 3e ript\Event($scriptName,.$event->
55ce0 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 49 4f 28 29 2c 20 getComposer(),.$event->getIO(),.
55d00 24 65 76 65 6e 74 2d 3e 69 73 44 65 76 4d 6f 64 65 28 29 2c 20 24 61 72 67 73 2c 20 24 66 6c 61 $event->isDevMode(),.$args,.$fla
55d20 67 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 68 70 53 63 72 69 gs));.}.elseif.($this->isPhpScri
55d40 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 pt($callable)).{.$className.=.su
55d60 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 bstr($callable,.0,.strpos($calla
55d80 62 6c 65 2c 20 27 3a 3a 27 29 29 3b 0a 24 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 73 75 62 73 74 ble,.'::'));.$methodName.=.subst
55da0 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 r($callable,.strpos($callable,.'
55dc0 3a 3a 27 29 20 2b 20 32 29 3b 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 ::').+.2);..if.(!class_exists($c
55de0 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 lassName)).{.$this->io->writeErr
55e00 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6c 61 73 73 20 27 2e 24 63 6c 61 73 73 4e 61 6d 65 2e or('<warning>Class.'.$className.
55e20 27 20 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 '.is.not.autoloadable,.can.not.c
55e40 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 all.'.$event->getName().'.script
55e60 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 21 69 </warning>');.continue;.}.if.(!i
55e80 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e s_callable($callable)).{.$this->
55ea0 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 4d 65 74 68 6f 64 20 io->writeError('<warning>Method.
55ec0 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2c 20 63 '.$callable.'.is.not.callable,.c
55ee0 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e an.not.call.'.$event->getName().
55f00 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a '.script</warning>');.continue;.
55f20 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 74 75 72 6e 20 3d 20 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 }..try.{.$return.=.false.===.$th
55f40 69 73 2d 3e 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 is->executeEventPhpScript($class
55f60 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 24 65 76 65 6e 74 29 20 3f 20 31 20 3a Name,.$methodName,.$event).?.1.:
55f80 20 30 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d .0;.}.catch.(\Exception.$e).{.$m
55fa0 65 73 73 61 67 65 20 3d 20 22 53 63 72 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 essage.=."Script.%s.handling.the
55fc0 20 25 73 20 65 76 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 .%s.event.terminated.with.an.exc
55fe0 65 70 74 69 6f 6e 22 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 eption";.$this->io->writeError('
56000 3c 65 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 73 61 67 65 2c 20 24 63 61 6c 6c <error>'.sprintf($message,.$call
56020 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 2e 27 3c 2f 65 72 72 6f able,.$event->getName()).'</erro
56040 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 73 r>');.throw.$e;.}.}.else.{.$args
56060 20 3d 20 69 6d 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 .=.implode('.',.array_map(array(
56080 27 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 27 2c 'Composer\Util\ProcessExecutor',
560a0 20 27 65 73 63 61 70 65 27 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 .'escape'),.$event->getArguments
560c0 28 29 29 29 3b 0a 24 65 78 65 63 20 3d 20 24 63 61 6c 6c 61 62 6c 65 20 2e 20 28 24 61 72 67 73 ()));.$exec.=.$callable...($args
560e0 20 3d 3d 3d 20 27 27 20 3f 20 27 27 20 3a 20 27 20 27 2e 24 61 72 67 73 29 3b 0a 69 66 20 28 24 .===.''.?.''.:.'.'.$args);.if.($
56100 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->
56120 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 27 3e 20 25 73 3a 20 25 73 io->writeError(sprintf('>.%s:.%s
56140 27 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 65 78 65 63 29 29 3b 0a 7d ',.$event->getName(),.$exec));.}
56160 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 6f 72 28 73 70 .else.{.$this->io->writeError(sp
56180 72 69 6e 74 66 28 27 3e 20 25 73 27 2c 20 24 65 78 65 63 29 29 3b 0a 7d 0a 69 66 20 28 30 20 21 rintf('>.%s',.$exec));.}.if.(0.!
561a0 3d 3d 20 28 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e ==.($exitCode.=.$this->process->
561c0 65 78 65 63 75 74 65 28 24 65 78 65 63 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 execute($exec))).{.$this->io->wr
561e0 69 74 65 45 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 iteError(sprintf('<error>Script.
56200 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 72 65 74 75 72 6e 65 %s.handling.the.%s.event.returne
56220 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 63 61 6c 6c 61 d.with.an.error</error>',.$calla
56240 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 74 68 72 6f 77 ble,.$event->getName()));..throw
56260 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 4f 75 .new.\RuntimeException('Error.Ou
56280 74 70 75 74 3a 20 27 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 tput:.'.$this->process->getError
562a0 4f 75 74 70 75 74 28 29 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 Output(),.$exitCode);.}.}..if.($
562c0 65 76 65 6e 74 2d 3e 69 73 50 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 29 20 7b event->isPropagationStopped()).{
562e0 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 6f 70 45 76 65 6e 74 28 29 3b 0a .break;.}.}..$this->popEvent();.
56300 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .return.$return;.}.......protect
56320 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 ed.function.executeEventPhpScrip
56340 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 45 76 65 6e 74 t($className,.$methodName,.Event
56360 20 24 65 76 65 6e 74 29 0a 7b 0a 24 65 76 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 63 68 65 63 6b .$event).{.$event.=.$this->check
56380 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 45 76 65 6e 74 28 61 72 72 61 79 28 24 63 6c 61 ListenerExpectedEvent(array($cla
563a0 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 29 2c 20 24 65 76 65 6e 74 29 3b 0a 0a ssName,.$methodName),.$event);..
563c0 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 if.($this->io->isVerbose()).{.$t
563e0 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 27 3e 20 25 his->io->writeError(sprintf('>.%
56400 73 3a 20 25 73 3a 3a 25 73 27 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 s:.%s::%s',.$event->getName(),.$
56420 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 29 29 3b 0a 7d 20 65 6c 73 65 className,.$methodName));.}.else
56440 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 73 70 72 69 6e 74 66 .{.$this->io->writeError(sprintf
56460 28 27 3e 20 25 73 3a 3a 25 73 27 2c 20 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 ('>.%s::%s',.$className,.$method
56480 4e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d Name));.}..return.$className::$m
564a0 65 74 68 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 ethodName($event);.}.......prote
564c0 63 74 65 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 cted.function.checkListenerExpec
564e0 74 65 64 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 tedEvent($target,.Event.$event).
56500 7b 0a 74 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 {.try.{.$reflected.=.new.\Reflec
56520 74 69 6f 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 tionParameter($target,.0);.}.cat
56540 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 20 24 65 76 65 ch.(\Exception.$e).{.return.$eve
56560 6e 74 3b 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 nt;.}..$typehint.=.$reflected->g
56580 65 74 43 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 etClass();..if.(!$typehint.insta
565a0 6e 63 65 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 nceof.\ReflectionClass).{.return
565c0 20 24 65 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 .$event;.}..$expected.=.$typehin
565e0 74 2d 3e 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 t->getName();....if.(!$event.ins
56600 74 61 6e 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 tanceof.$expected.&&.$expected.=
56620 3d 3d 20 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 ==.'Composer\Script\CommandEvent
56640 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 69 ').{.$event.=.new.\Composer\Scri
56660 70 74 5c 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 pt\CommandEvent(.$event->getName
56680 28 29 2c 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 (),.$event->getComposer(),.$even
566a0 74 2d 3e 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 t->getIO(),.$event->isDevMode(),
566c0 20 24 65 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 .$event->getArguments().);.}.if.
566e0 28 21 24 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 (!$event.instanceof.$expected.&&
56700 20 24 65 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 .$expected.===.'Composer\Script\
56720 50 61 63 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 PackageEvent').{.$event.=.new.\C
56740 6f 6d 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 28 0a 24 65 76 omposer\Script\PackageEvent(.$ev
56760 65 6e 74 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 ent->getName(),.$event->getCompo
56780 73 65 72 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 ser(),.$event->getIO(),.$event->
567a0 69 73 44 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 isDevMode(),.$event->getPolicy()
567c0 2c 20 24 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 ,.$event->getPool(),.$event->get
567e0 49 6e 73 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 InstalledRepo(),.$event->getRequ
56800 65 73 74 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 est(),.$event->getOperations(),.
56820 24 65 76 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 $event->getOperation().);.}.if.(
56840 21 24 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 !$event.instanceof.$expected.&&.
56860 24 65 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 45 $expected.===.'Composer\Script\E
56880 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 6f 73 65 72 5c vent').{.$event.=.new.\Composer\
568a0 53 63 72 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 Script\Event(.$event->getName(),
568c0 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->
568e0 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 0a 24 65 getIO(),.$event->isDevMode(),.$e
56900 76 65 6e 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 vent->getArguments(),.$event->ge
56920 74 46 6c 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 tFlags().);.}..return.$event;.}.
56940 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 61 64 64 4c 69 ........protected.function.addLi
56960 73 74 65 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 stener($eventName,.$listener,.$p
56980 72 69 6f 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 riority.=.0).{.$this->listeners[
569a0 24 65 76 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 $eventName][$priority][].=.$list
569c0 65 6e 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 ener;.}.........public.function.
569e0 61 64 64 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 addSubscriber(EventSubscriberInt
56a00 65 72 66 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 erface.$subscriber).{.foreach.($
56a20 73 75 62 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 subscriber->getSubscribedEvents(
56a40 29 20 61 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 ).as.$eventName.=>.$params).{.if
56a60 20 28 69 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 .(is_string($params)).{.$this->a
56a80 64 64 4c 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 ddListener($eventName,.array($su
56aa0 62 73 63 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 bscriber,.$params));.}.elseif.(i
56ac0 73 5f 73 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 s_string($params[0])).{.$this->a
56ae0 64 64 4c 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 ddListener($eventName,.array($su
56b00 62 73 63 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 bscriber,.$params[0]),.isset($pa
56b20 72 61 6d 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 rams[1]).?.$params[1].:.0);.}.el
56b40 73 65 20 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 se.{.foreach.($params.as.$listen
56b60 65 72 29 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 er).{.$this->addListener($eventN
56b80 61 6d 65 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 ame,.array($subscriber,.$listene
56ba0 72 5b 30 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 r[0]),.isset($listener[1]).?.$li
56bc0 73 74 65 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 stener[1].:.0);.}.}.}.}........p
56be0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 rotected.function.getListeners(E
56c00 76 65 6e 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 vent.$event).{.$scriptListeners.
56c20 3d 20 24 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 =.$this->getScriptListeners($eve
56c40 6e 74 29 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 nt);..if.(!isset($this->listener
56c60 73 5b 24 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 s[$event->getName()][0])).{.$thi
56c80 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b s->listeners[$event->getName()][
56ca0 30 5d 20 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 0].=.array();.}.krsort($this->li
56cc0 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 29 3b 0a 0a 24 6c steners[$event->getName()]);..$l
56ce0 69 73 74 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 isteners.=.$this->listeners;.$li
56d00 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 3d 20 steners[$event->getName()][0].=.
56d20 61 72 72 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 array_merge($listeners[$event->g
56d40 65 74 4e 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 etName()][0],.$scriptListeners);
56d60 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 ..return.call_user_func_array('a
56d80 72 72 61 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 rray_merge',.$listeners[$event->
56da0 67 65 74 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 getName()]);.}........public.fun
56dc0 63 74 69 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 ction.hasEventListeners(Event.$e
56de0 76 65 6e 74 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c vent).{.$listeners.=.$this->getL
56e00 69 73 74 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 isteners($event);..return.count(
56e20 24 6c 69 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 $listeners).>.0;.}........protec
56e40 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 28 ted.function.getScriptListeners(
56e60 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 Event.$event).{.$package.=.$this
56e80 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 ->composer->getPackage();.$scrip
56ea0 74 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 ts.=.$package->getScripts();..if
56ec0 20 28 65 6d 70 74 79 28 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 .(empty($scripts[$event->getName
56ee0 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 ()])).{.return.array();.}..if.($
56f00 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 this->loader).{.$this->loader->u
56f20 6e 72 65 67 69 73 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 nregister();.}..$generator.=.$th
56f40 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 is->composer->getAutoloadGenerat
56f60 6f 72 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 or();.$packages.=.$this->compose
56f80 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f r->getRepositoryManager()->getLo
56fa0 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 calRepository()->getCanonicalPac
56fc0 6b 61 67 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f kages();.$packageMap.=.$generato
56fe0 72 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 r->buildPackageMap($this->compos
57000 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 20 24 70 er->getInstallationManager(),.$p
57020 61 63 6b 61 67 65 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 ackage,.$packages);.$map.=.$gene
57040 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 rator->parseAutoloads($packageMa
57060 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 67 p,.$package);.$this->loader.=.$g
57080 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 74 enerator->createLoader($map);.$t
570a0 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e his->loader->register();..return
570c0 20 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a .$scripts[$event->getName()];.}.
570e0 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 50 68 70 53 .......protected.function.isPhpS
57100 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 cript($callable).{.return.false.
57120 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 20 27 29 20 26 26 20 66 61 ===.strpos($callable,.'.').&&.fa
57140 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 3b lse.!==.strpos($callable,.'::');
57160 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 .}........protected.function.isC
57180 6f 6d 70 6f 73 65 72 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 65 74 75 72 omposerScript($callable).{.retur
571a0 6e 20 27 40 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 31 n.'@'.===.substr($callable,.0,.1
571c0 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 6e 20 );.}.........protected.function.
571e0 70 75 73 68 45 76 65 6e 74 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 65 76 65 6e 74 pushEvent(Event.$event).{.$event
57200 4e 61 6d 65 20 3d 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 6e Name.=.$event->getName();.if.(in
57220 5f 61 72 72 61 79 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 53 _array($eventName,.$this->eventS
57240 74 61 63 6b 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 tack)).{.throw.new.\RuntimeExcep
57260 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 22 43 69 72 63 75 6c 61 72 20 63 61 6c 6c 20 74 6f 20 73 tion(sprintf("Circular.call.to.s
57280 63 72 69 70 74 20 68 61 6e 64 6c 65 72 20 27 25 73 27 20 64 65 74 65 63 74 65 64 22 2c 20 24 65 cript.handler.'%s'.detected",.$e
572a0 76 65 6e 74 4e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 75 73 68 ventName));.}..return.array_push
572c0 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 53 74 61 63 6b 2c 20 24 65 76 65 6e 74 4e 61 6d 65 29 3b ($this->eventStack,.$eventName);
572e0 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 70 6f 70 45 .}.......protected.function.popE
57300 76 65 6e 74 28 29 0a 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 vent().{.return.array_pop($this-
57320 3e 65 76 65 6e 74 53 74 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a >eventStack);.}.}.<?php.........
57340 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 ...namespace.Composer\EventDispa
57360 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 76 tcher;..............interface.Ev
57380 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a entSubscriberInterface.{........
573a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f ...........public.static.functio
573c0 6e 20 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e 74 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 n.getSubscribedEvents();.}.<?php
573e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a ............namespace.Composer;.
57400 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 .use.Composer\Config\JsonConfigS
57420 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c ource;.use.Composer\Json\JsonFil
57440 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;.
57460 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 3b 0a 75 use.Composer\Package\Archiver;.u
57480 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
574a0 69 6f 6e 47 75 65 73 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 ionGuesser;.use.Composer\Reposit
574c0 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f ory\RepositoryManager;.use.Compo
574e0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 ser\Repository\WritableRepositor
57500 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 55 74 69 6c 5c 50 72 yInterface;.use.Composer\Util\Pr
57520 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
57540 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \RemoteFilesystem;.use.Symfony\C
57560 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 omponent\Console\Formatter\Outpu
57580 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 tFormatterStyle;.use.Composer\Ev
575a0 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 0a 75 entDispatcher\EventDispatcher;.u
575c0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e se.Composer\Autoload\AutoloadGen
575e0 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 erator;.use.Composer\Semver\Vers
57600 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f ionParser;.use.Seld\JsonLint\Jso
57620 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 0a nParser;..........class.Factory.
57640 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 20 {.....protected.static.function.
57660 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 43 getHomeDir().{.$home.=.getenv('C
57680 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 66 OMPOSER_HOME');.if.(!$home).{.if
576a0 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 4d .(defined('PHP_WINDOWS_VERSION_M
576c0 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 29 AJOR')).{.if.(!getenv('APPDATA')
576e0 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(
57700 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 6e 'The.APPDATA.or.COMPOSER_HOME.en
57720 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 66 vironment.variable.must.be.set.f
57740 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 0a or.composer.to.run.correctly');.
57760 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 27 }.$home.=.strtr(getenv('APPDATA'
57780 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 65 ),.'\\',.'/')...'/Composer';.}.e
577a0 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 72 lse.{.if.(!getenv('HOME')).{.thr
577c0 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 4f ow.new.\RuntimeException('The.HO
577e0 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 20 ME.or.COMPOSER_HOME.environment.
57800 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 65 variable.must.be.set.for.compose
57820 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 20 r.to.run.correctly');.}.$home.=.
57840 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 2e rtrim(getenv('HOME'),.'/')...'/.
57860 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 0a composer';.}.}..return.$home;.}.
57880 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 20 67 .....protected.static.function.g
578a0 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 3d 20 etCacheDir($home).{.$cacheDir.=.
578c0 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 43 41 43 48 45 5f 44 49 52 27 29 3b 0a 69 66 getenv('COMPOSER_CACHE_DIR');.if
578e0 20 28 21 24 63 61 63 68 65 44 69 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 .(!$cacheDir).{.if.(defined('PHP
57900 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 20 28 _WINDOWS_VERSION_MAJOR')).{.if.(
57920 24 63 61 63 68 65 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 4c 4f 43 41 4c 41 50 50 44 41 54 41 $cacheDir.=.getenv('LOCALAPPDATA
57940 27 29 29 20 7b 0a 24 63 61 63 68 65 44 69 72 20 2e 3d 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a ')).{.$cacheDir..=.'/Composer';.
57960 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 68 6f 6d 65 20 2e 20 27 2f 63 }.else.{.$cacheDir.=.$home...'/c
57980 61 63 68 65 27 3b 0a 7d 0a 24 63 61 63 68 65 44 69 72 20 3d 20 73 74 72 74 72 28 24 63 61 63 68 ache';.}.$cacheDir.=.strtr($cach
579a0 65 44 69 72 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 eDir,.'\\',.'/');.}.else.{.$cach
579c0 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 74 75 eDir.=.$home.'/cache';.}.}..retu
579e0 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 61 74 rn.$cacheDir;.}......public.stat
57a00 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 65 72 ic.function.createConfig(IOInter
57a20 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 7b 0a face.$io.=.null,.$cwd.=.null).{.
57a40 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 6f 6d $cwd.=.$cwd.?:.getcwd();....$hom
57a60 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 44 69 e.=.self::getHomeDir();.$cacheDi
57a80 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 0a 0a r.=.self::getCacheDir($home);...
57aa0 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 63 68 .....foreach.(array($home,.$cach
57ac0 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 73 74 eDir).as.$dir).{.if.(!file_exist
57ae0 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 21 69 s($dir...'/.htaccess')).{.if.(!i
57b00 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 37 37 s_dir($dir)).{.@mkdir($dir,.0777
57b20 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 24 64 ,.true);.}.@file_put_contents($d
57b40 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 61 6c ir...'/.htaccess',.'Deny.from.al
57b60 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 28 74 l');.}.}..$config.=.new.Config(t
57b80 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 61 72 rue,.$cwd);....$config->merge(ar
57ba0 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 3e 20 ray('config'.=>.array('home'.=>.
57bc0 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 72 29 $home,.'cache-dir'.=>.$cacheDir)
57be0 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 6f 6e ));....$file.=.new.JsonFile($con
57c00 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 27 29 fig->get('home').'/config.json')
57c20 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 69 6f ;.if.($file->exists()).{.if.($io
57c40 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 74 65 .&&.$io->isDebug()).{.$io->write
57c60 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 20 24 Error('Loading.config.file.'...$
57c80 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 65 72 file->getPath());.}.$config->mer
57ca0 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 73 65 ge($file->read());.}.$config->se
57cc0 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 75 72 tConfigSource(new.JsonConfigSour
57ce0 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 6e 46 ce($file));....$file.=.new.JsonF
57d00 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 68 2e ile($config->get('home').'/auth.
57d20 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 0a 69 json');.if.($file->exists()).{.i
57d40 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 6f 2d f.($io.&&.$io->isDebug()).{.$io-
57d60 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 6c 65 >writeError('Loading.config.file
57d80 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 66 69 .'...$file->getPath());.}.$confi
57da0 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 6c 65 g->merge(array('config'.=>.$file
57dc0 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 43 6f ->read()));.}.$config->setAuthCo
57de0 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 65 28 nfigSource(new.JsonConfigSource(
57e00 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 3b 0a $file,.true));..return.$config;.
57e20 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 6f 6d }..public.static.function.getCom
57e40 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 6e 76 poserFile().{.return.trim(getenv
57e60 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 73 6f ('COMPOSER')).?:.'./composer.jso
57e80 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 63 72 n';.}..public.static.function.cr
57ea0 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 6e 20 eateAdditionalStyles().{.return.
57ec0 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 75 74 array(.'highlight'.=>.new.Output
57ee0 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 67 27 FormatterStyle('red'),.'warning'
57f00 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 62 6c .=>.new.OutputFormatterStyle('bl
57f20 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 73 74 ack',.'yellow'),.);.}..public.st
57f40 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 6f 73 atic.function.createDefaultRepos
57f60 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 2c 20 itories(IOInterface.$io.=.null,.
57f80 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 6f 72 Config.$config.=.null,.Repositor
57fa0 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 3d 20 yManager.$rm.=.null).{.$repos.=.
57fc0 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 66 69 array();..if.(!$config).{.$confi
57fe0 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 0a 7d g.=.static::createConfig($io);.}
58000 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 20 6e .if.(!$rm).{.if.(!$io).{.throw.n
58020 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 54 68 ew.\InvalidArgumentException('Th
58040 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 20 49 is.function.requires.either.an.I
58060 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 67 65 OInterface.or.a.RepositoryManage
58080 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 24 72 r');.}.$factory.=.new.static;.$r
580a0 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 4d 61 m.=.$factory->createRepositoryMa
580c0 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 68 20 nager($io,.$config);.}..foreach.
580e0 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 20 24 ($config->getRepositories().as.$
58100 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 67 28 index.=>.$repo).{.if.(is_string(
58120 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 64 56 $repo)).{.throw.new.\UnexpectedV
58140 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 73 68 alueException('"repositories".sh
58160 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 20 64 ould.be.an.array.of.repository.d
58180 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 73 69 efinitions,.only.a.single.reposi
581a0 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 72 61 tory.was.given');.}.if.(!is_arra
581c0 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 74 65 y($repo)).{.throw.new.\Unexpecte
581e0 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 2e 24 dValueException('Repository."'.$
58200 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 2e 27 index.'".('.json_encode($repo).'
58220 29 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 ).should.be.an.array,.'.gettype(
58240 24 72 65 70 6f 29 2e 27 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 $repo).'.given');.}.if.(!isset($
58260 72 65 70 6f 5b 27 74 79 70 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 repo['type'])).{.throw.new.\Unex
58280 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 pectedValueException('Repository
582a0 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 72 65 ."'.$index.'".('.json_encode($re
582c0 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 64 27 po).').must.have.a.type.defined'
582e0 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 20 69 );.}.$name.=.is_int($index).&&.i
58300 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 61 63 sset($repo['url']).?.preg_replac
58320 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 75 72 e('{^https?://}i',.'',.$repo['ur
58340 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 65 70 l']).:.$index;.while.(isset($rep
58360 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 24 72 os[$name])).{.$name..=.'2';.}.$r
58380 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 69 74 epos[$name].=.$rm->createReposit
583a0 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 72 65 ory($repo['type'],.$repo);.}..re
583c0 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 62 6c turn.$repos;.}..............publ
583e0 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 6e 74 ic.function.createComposer(IOInt
58400 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 6c 2c erface.$io,.$localConfig.=.null,
58420 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 20 3d .$disablePlugins.=.false,.$cwd.=
58440 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 64 20 .null,.$fullLoad.=.true).{.$cwd.
58460 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 6c 20 =.$cwd.?:.getcwd();....if.(null.
58480 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 69 67 ===.$localConfig).{.$localConfig
584a0 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 7d 0a .=.static::getComposerFile();.}.
584c0 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 7b 0a .if.(is_string($localConfig)).{.
584e0 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 24 66 $composerFile.=.$localConfig;.$f
58500 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 67 2c ile.=.new.JsonFile($localConfig,
58520 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 69 66 .new.RemoteFilesystem($io));..if
58540 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 61 6c .(!$file->exists()).{.if.($local
58560 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 7c 20 Config.===.'./composer.json'.||.
58580 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 6e 27 $localConfig.===.'composer.json'
585a0 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 20 6e ).{.$message.=.'Composer.could.n
585c0 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 6e 20 ot.find.a.composer.json.file.in.
585e0 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 6f 6d '.$cwd;.}.else.{.$message.=.'Com
58600 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 63 6f 6e 66 69 67 20 poser.could.not.find.the.config.
58620 66 69 6c 65 3a 20 27 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a 24 69 6e 73 74 72 75 63 file:.'.$localConfig;.}.$instruc
58640 74 69 6f 6e 73 20 3d 20 27 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 70 72 6f 6a 65 63 74 tions.=.'To.initialize.a.project
58660 2c 20 70 6c 65 61 73 65 20 63 72 65 61 74 65 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 ,.please.create.a.composer.json.
58680 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 73 3a 2f file.as.described.in.the.https:/
586a0 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 22 47 65 74 74 69 6e 67 20 53 74 61 72 74 /getcomposer.org/."Getting.Start
586c0 65 64 22 20 73 65 63 74 69 6f 6e 27 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ed".section';.throw.new.\Invalid
586e0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2e 50 48 50 5f 45 ArgumentException($message.PHP_E
58700 4f 4c 2e 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 76 61 6c OL.$instructions);.}..$file->val
58720 69 64 61 74 65 53 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 idateSchema(JsonFile::LAX_SCHEMA
58740 29 3b 0a 24 6a 73 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 50 61 72 73 65 72 3b );.$jsonParser.=.new.JsonParser;
58760 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 28 66 69 6c 65 5f 67 .try.{.$jsonParser->parse(file_g
58780 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 2c 20 4a 73 6f 6e 50 et_contents($localConfig),.JsonP
587a0 61 72 73 65 72 3a 3a 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 54 53 29 3b 0a 7d 20 arser::DETECT_KEY_CONFLICTS);.}.
587c0 63 61 74 63 68 20 28 5c 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 44 75 70 6c 69 63 61 74 65 4b catch.(\Seld\JsonLint\DuplicateK
587e0 65 79 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 64 65 74 61 69 6c 73 20 3d 20 24 65 2d eyException.$e).{.$details.=.$e-
58800 3e 67 65 74 44 65 74 61 69 6c 73 28 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 >getDetails();.$io->writeError('
58820 3c 77 61 72 6e 69 6e 67 3e 4b 65 79 20 27 2e 24 64 65 74 61 69 6c 73 5b 27 6b 65 79 27 5d 2e 27 <warning>Key.'.$details['key'].'
58840 20 69 73 20 61 20 64 75 70 6c 69 63 61 74 65 20 69 6e 20 27 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 .is.a.duplicate.in.'.$localConfi
58860 67 2e 27 20 61 74 20 6c 69 6e 65 20 27 2e 24 64 65 74 61 69 6c 73 5b 27 6c 69 6e 65 27 5d 2e 27 g.'.at.line.'.$details['line'].'
58880 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 </warning>');.}..$localConfig.=.
588a0 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 73 74 $file->read();.}....$config.=.st
588c0 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 24 69 6f 2c 20 24 63 77 64 29 3b 0a 24 atic::createConfig($io,.$cwd);.$
588e0 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 69 66 20 config->merge($localConfig);.if.
58900 28 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 7b 0a 69 66 20 28 24 69 6f (isset($composerFile)).{.if.($io
58920 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 74 65 .&&.$io->isDebug()).{.$io->write
58940 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 20 24 Error('Loading.config.file.'...$
58960 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 7d 0a 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 20 composerFile);.}.$localAuthFile.
58980 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 64 69 72 6e 61 6d 65 28 72 65 61 6c 70 61 74 68 28 =.new.JsonFile(dirname(realpath(
589a0 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 2e 20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 29 3b $composerFile))...'/auth.json');
589c0 0a 69 66 20 28 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b .if.($localAuthFile->exists()).{
589e0 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
58a00 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
58a20 6c 65 20 27 20 2e 20 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 le.'...$localAuthFile->getPath()
58a40 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 );.}.$config->merge(array('confi
58a60 67 27 20 3d 3e 20 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 2d 3e 72 65 61 64 28 29 29 29 3b 0a g'.=>.$localAuthFile->read()));.
58a80 24 63 6f 6e 66 69 67 2d 3e 73 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 $config->setAuthConfigSource(new
58aa0 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 .JsonConfigSource($localAuthFile
58ac0 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e ,.true));.}.}..$vendorDir.=.$con
58ae0 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 fig->get('vendor-dir');.$binDir.
58b00 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 24 63 =.$config->get('bin-dir');....$c
58b20 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f omposer.=.new.Composer();.$compo
58b40 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 67 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 69 66 20 28 24 66 ser->setConfig($config);..if.($f
58b60 75 6c 6c 4c 6f 61 64 29 20 7b 0a 0a 20 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 ullLoad).{...$io->loadConfigurat
58b80 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 20 24 64 69 73 70 61 74 63 68 65 72 20 3d ion($config);.}....$dispatcher.=
58ba0 20 6e 65 77 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 .new.EventDispatcher($composer,.
58bc0 24 69 6f 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 $io);.$composer->setEventDispatc
58be0 68 65 72 28 24 64 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 her($dispatcher);....$rm.=.$this
58c00 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 ->createRepositoryManager($io,.$
58c20 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 2d config,.$dispatcher);.$composer-
58c40 3e 73 65 74 52 65 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 >setRepositoryManager($rm);....$
58c60 74 68 69 73 2d 3e 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 this->addLocalRepository($rm,.$v
58c80 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 0a 20 0a 20 69 66 20 28 21 24 66 75 6c 6c 4c 6f 61 64 20 26 endorDir);......if.(!$fullLoad.&
58ca0 26 20 21 69 73 73 65 74 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d &.!isset($localConfig['version']
58cc0 29 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 )).{.$localConfig['version'].=.'
58ce0 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 0a 20 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 1.0.0';.}....$parser.=.new.Versi
58d00 6f 6e 50 61 72 73 65 72 3b 0a 24 67 75 65 73 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e onParser;.$guesser.=.new.Version
58d20 47 75 65 73 73 65 72 28 24 63 6f 6e 66 69 67 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 Guesser($config,.new.ProcessExec
58d40 75 74 6f 72 28 24 69 6f 29 2c 20 24 70 61 72 73 65 72 29 3b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e utor($io),.$parser);.$loader.=.n
58d60 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 ew.Package\Loader\RootPackageLoa
58d80 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 72 73 65 72 2c 20 24 67 75 65 73 der($rm,.$config,.$parser,.$gues
58da0 73 65 72 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 ser);.$package.=.$loader->load($
58dc0 6c 6f 63 61 6c 43 6f 6e 66 69 67 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 localConfig,.'Composer\Package\R
58de0 6f 6f 74 50 61 63 6b 61 67 65 27 2c 20 24 63 77 64 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 ootPackage',.$cwd);.$composer->s
58e00 65 74 50 61 63 6b 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 etPackage($package);....$im.=.$t
58e20 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()
58e40 3b 0a 24 63 6f 6d 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 ;.$composer->setInstallationMana
58e60 67 65 72 28 24 69 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 ger($im);..if.($fullLoad).{...$d
58e80 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 m.=.$this->createDownloadManager
58ea0 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 24 63 6f ($io,.$config,.$dispatcher);.$co
58ec0 6d 70 6f 73 65 72 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b mposer->setDownloadManager($dm);
58ee0 0a 0a 0a 20 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e ....$generator.=.new.AutoloadGen
58f00 65 72 61 74 6f 72 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 erator($dispatcher,.$io);.$compo
58f20 73 65 72 2d 3e 73 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 ser->setAutoloadGenerator($gener
58f40 61 74 6f 72 29 3b 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 ator);.}....$this->createDefault
58f60 49 6e 73 74 61 6c 6c 65 72 73 28 24 69 6d 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b Installers($im,.$composer,.$io);
58f80 0a 0a 69 66 20 28 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 ..if.($fullLoad).{.$globalCompos
58fa0 65 72 20 3d 20 24 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 er.=.$this->createGlobalComposer
58fc0 28 24 69 6f 2c 20 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 ($io,.$config,.$disablePlugins);
58fe0 0a 24 70 6d 20 3d 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 .$pm.=.$this->createPluginManage
59000 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 6f 6d 70 6f 73 65 r($io,.$composer,.$globalCompose
59020 72 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e r,.$disablePlugins);.$composer->
59040 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 70 6d 29 3b 0a 0a 24 70 6d 2d 3e 6c 6f 61 setPluginManager($pm);..$pm->loa
59060 64 49 6e 73 74 61 6c 6c 65 64 50 6c 75 67 69 6e 73 28 29 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 72 dInstalledPlugins();......if.($r
59080 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 68 69 73 m->getLocalRepository()).{.$this
590a0 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 52 65 70 ->purgePackages($rm->getLocalRep
590c0 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 66 75 6c ository(),.$im);.}.}....if.($ful
590e0 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 29 20 7b lLoad.&&.isset($composerFile)).{
59100 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 6e 66 6f .$lockFile.=."json".===.pathinfo
59120 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 4e 53 49 ($composerFile,.PATHINFO_EXTENSI
59140 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 2c 20 2d ON).?.substr($composerFile,.0,.-
59160 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 2e 6c 6f 4).'lock'.:.$composerFile...'.lo
59180 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 63 6b 65 ck';.$locker.=.new.Package\Locke
591a0 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 2c 20 6e r($io,.new.JsonFile($lockFile,.n
591c0 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 66 69 67 ew.RemoteFilesystem($io,.$config
591e0 29 29 2c 20 24 72 6d 2c 20 24 69 6d 2c 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 )),.$rm,.$im,.file_get_contents(
59200 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 4c $composerFile));.$composer->setL
59220 6f 63 6b 65 72 28 24 6c 6f 63 6b 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f ocker($locker);.}..return.$compo
59240 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ser;.}........protected.function
59260 20 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 .createRepositoryManager(IOInter
59280 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 45 76 65 6e 74 44 face.$io,.Config.$config,.EventD
592a0 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 20 3d 20 6e 75 6c ispatcher.$eventDispatcher.=.nul
592c0 6c 29 0a 7b 0a 24 72 6d 20 3d 20 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 l).{.$rm.=.new.RepositoryManager
592e0 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 ($io,.$config,.$eventDispatcher)
59300 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 63 6f 6d 70 6f ;.$rm->setRepositoryClass('compo
59320 73 65 72 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f ser',.'Composer\Repository\Compo
59340 73 65 72 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 serRepository');.$rm->setReposit
59360 6f 72 79 43 6c 61 73 73 28 27 76 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 oryClass('vcs',.'Composer\Reposi
59380 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 tory\VcsRepository');.$rm->setRe
593a0 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 61 63 6b 61 67 65 27 2c 20 27 43 6f 6d 70 6f 73 positoryClass('package',.'Compos
593c0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 27 er\Repository\PackageRepository'
593e0 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 65 61 72 );.$rm->setRepositoryClass('pear
59400 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 52 65 70 6f ',.'Composer\Repository\PearRepo
59420 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 sitory');.$rm->setRepositoryClas
59440 73 28 27 67 69 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 s('git',.'Composer\Repository\Vc
59460 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 sRepository');.$rm->setRepositor
59480 79 43 6c 61 73 73 28 27 67 69 74 6c 61 62 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 yClass('gitlab',.'Composer\Repos
594a0 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 52 itory\VcsRepository');.$rm->setR
594c0 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 73 76 6e 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c epositoryClass('svn',.'Composer\
594e0 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-
59500 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 65 72 66 6f 72 63 65 27 2c 20 >setRepositoryClass('perforce',.
59520 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 69 74 6f 'Composer\Repository\VcsReposito
59540 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 68 ry');.$rm->setRepositoryClass('h
59560 67 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 g',.'Composer\Repository\VcsRepo
59580 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 sitory');.$rm->setRepositoryClas
595a0 73 28 27 61 72 74 69 66 61 63 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f s('artifact',.'Composer\Reposito
595c0 72 79 5c 41 72 74 69 66 61 63 74 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 ry\ArtifactRepository');.$rm->se
595e0 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 61 74 68 27 2c 20 27 43 6f 6d 70 6f 73 tRepositoryClass('path',.'Compos
59600 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 61 74 68 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a er\Repository\PathRepository');.
59620 0a 72 65 74 75 72 6e 20 24 72 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .return.$rm;.}......protected.fu
59640 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 nction.addLocalRepository(Reposi
59660 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 24 toryManager.$rm,.$vendorDir).{.$
59680 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 rm->setLocalRepository(new.Repos
596a0 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 itory\InstalledFilesystemReposit
596c0 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f ory(new.JsonFile($vendorDir.'/co
596e0 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 29 29 3b 0a 7d 0a 0a 0a 0a mposer/installed.json')));.}....
59700 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 47 6c 6f 62 61 ..protected.function.createGloba
59720 6c 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 lComposer(IOInterface.$io,.Confi
59740 67 20 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 0a 7b 0a 69 66 g.$config,.$disablePlugins).{.if
59760 20 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 .(realpath($config->get('home'))
59780 20 3d 3d 3d 20 67 65 74 63 77 64 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d .===.getcwd()).{.return;.}..$com
597a0 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 74 72 79 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 poser.=.null;.try.{.$composer.=.
597c0 73 65 6c 66 3a 3a 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 self::createComposer($io,.$confi
597e0 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e g->get('home')...'/composer.json
59800 27 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 ',.$disablePlugins,.$config->get
59820 28 27 68 6f 6d 65 27 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 ('home'),.false);.}.catch.(\Exce
59840 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 ption.$e).{.if.($io->isDebug()).
59860 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 20 74 6f 20 69 6e 69 {.$io->writeError('Failed.to.ini
59880 74 69 61 6c 69 7a 65 20 67 6c 6f 62 61 6c 20 63 6f 6d 70 6f 73 65 72 3a 20 27 2e 24 65 2d 3e 67 tialize.global.composer:.'.$e->g
598a0 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f etMessage());.}.}..return.$compo
598c0 73 65 72 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 72 ser;.}........public.function.cr
598e0 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 eateDownloadManager(IOInterface.
59900 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 $io,.Config.$config,.EventDispat
59920 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a cher.$eventDispatcher.=.null).{.
59940 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 $cache.=.null;.if.($config->get(
59960 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 20 3e 20 30 29 20 7b 0a 24 63 61 63 68 65 'cache-files-ttl').>.0).{.$cache
59980 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 .=.new.Cache($io,.$config->get('
599a0 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 20 27 61 2d 7a 30 2d 39 5f 2e 2f 27 29 3b cache-files-dir'),.'a-z0-9_./');
599c0 0a 7d 0a 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 .}..$dm.=.new.Downloader\Downloa
599e0 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e dManager($io);.switch.($config->
59a00 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 get('preferred-install')).{.case
59a20 20 27 64 69 73 74 27 3a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 74 72 75 65 .'dist':.$dm->setPreferDist(true
59a40 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 64 6d 2d 3e 73 65 );.break;.case.'source':.$dm->se
59a60 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 tPreferSource(true);.break;.case
59a80 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 .'auto':.default:...break;.}..$d
59aa0 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 69 74 27 2c 20 6e 65 77 20 44 6f 77 6e m->setDownloader('git',.new.Down
59ac0 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 loader\GitDownloader($io,.$confi
59ae0 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e g));.$dm->setDownloader('svn',.n
59b00 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c ew.Downloader\SvnDownloader($io,
59b20 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 .$config));.$dm->setDownloader('
59b40 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e 6c 6f 61 64 65 72 hg',.new.Downloader\HgDownloader
59b60 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 ($io,.$config));.$dm->setDownloa
59b80 64 65 72 28 27 70 65 72 66 6f 72 63 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 der('perforce',.new.Downloader\P
59ba0 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 erforceDownloader($io,.$config))
59bc0 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 7a 69 70 27 2c 20 6e 65 77 20 ;.$dm->setDownloader('zip',.new.
59be0 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 Downloader\ZipDownloader($io,.$c
59c00 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)
59c20 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 72 61 72 27 2c 20 6e 65 77 );.$dm->setDownloader('rar',.new
59c40 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 52 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 .Downloader\RarDownloader($io,.$
59c60 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 config,.$eventDispatcher,.$cache
59c80 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 72 27 2c 20 6e 65 ));.$dm->setDownloader('tar',.ne
59ca0 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 w.Downloader\TarDownloader($io,.
59cc0 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 $config,.$eventDispatcher,.$cach
59ce0 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 7a 69 70 27 2c 20 e));.$dm->setDownloader('gzip',.
59d00 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 7a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 new.Downloader\GzipDownloader($i
59d20 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 o,.$config,.$eventDispatcher,.$c
59d40 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 78 7a 27 2c ache));.$dm->setDownloader('xz',
59d60 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 58 7a 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f .new.Downloader\XzDownloader($io
59d80 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 ,.$config,.$eventDispatcher,.$ca
59da0 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 70 68 61 72 27 che));.$dm->setDownloader('phar'
59dc0 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 ,.new.Downloader\PharDownloader(
59de0 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 $io,.$config,.$eventDispatcher,.
59e00 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 28 27 66 69 $cache));.$dm->setDownloader('fi
59e20 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 le',.new.Downloader\FileDownload
59e40 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 65 er($io,.$config,.$eventDispatche
59e60 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 28 r,.$cache));.$dm->setDownloader(
59e80 27 70 61 74 68 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 61 74 68 44 6f 77 6e 6c 'path',.new.Downloader\PathDownl
59ea0 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
59ec0 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b 0a 7d 0a 0a cher,.$cache));..return.$dm;.}..
59ee0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 72 63 68 69 .....public.function.createArchi
59f00 76 65 4d 61 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 44 6f 77 6e 6c 6f veManager(Config.$config,.Downlo
59f20 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 20 3d 20 6e 75 6c 6c 29 ader\DownloadManager.$dm.=.null)
59f40 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 6d 29 20 7b 0a 24 69 6f 20 3d 20 6e 65 77 .{.if.(null.===.$dm).{.$io.=.new
59f60 20 49 4f 5c 4e 75 6c 6c 49 4f 28 29 3b 0a 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 .IO\NullIO();.$io->loadConfigura
59f80 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 tion($config);.$dm.=.$this->crea
59fa0 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b teDownloadManager($io,.$config);
59fc0 0a 7d 0a 0a 24 61 6d 20 3d 20 6e 65 77 20 41 72 63 68 69 76 65 72 5c 41 72 63 68 69 76 65 4d 61 .}..$am.=.new.Archiver\ArchiveMa
59fe0 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 61 6d 2d 3e 61 64 64 41 72 63 68 69 76 65 72 28 6e 65 77 nager($dm);.$am->addArchiver(new
5a000 20 41 72 63 68 69 76 65 72 5c 50 68 61 72 41 72 63 68 69 76 65 72 29 3b 0a 0a 72 65 74 75 72 6e .Archiver\PharArchiver);..return
5a020 20 24 61 6d 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 .$am;.}.........protected.functi
5a040 6f 6e 20 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 on.createPluginManager(IOInterfa
5a060 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 43 6f 6d 70 ce.$io,.Composer.$composer,.Comp
5a080 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 6c 2c 20 24 64 69 oser.$globalComposer.=.null,.$di
5a0a0 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 74 75 72 6e 20 6e sablePlugins.=.false).{.return.n
5a0c0 65 77 20 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f ew.Plugin\PluginManager($io,.$co
5a0e0 6d 70 6f 73 65 72 2c 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 2c 20 24 64 69 73 61 62 6c mposer,.$globalComposer,.$disabl
5a100 65 50 6c 75 67 69 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 ePlugins);.}.....protected.funct
5a120 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 29 0a ion.createInstallationManager().
5a140 7b 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 {.return.new.Installer\Installat
5a160 69 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 ionManager();.}.......protected.
5a180 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 function.createDefaultInstallers
5a1a0 28 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 (Installer\InstallationManager.$
5a1c0 69 6d 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 im,.Composer.$composer,.IOInterf
5a1e0 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 ace.$io).{.$im->addInstaller(new
5a200 20 49 6e 73 74 61 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c .Installer\LibraryInstaller($io,
5a220 20 24 63 6f 6d 70 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 .$composer,.null));.$im->addInst
5a240 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 50 65 61 72 49 6e 73 74 61 6c 6c 65 aller(new.Installer\PearInstalle
5a260 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 r($io,.$composer,.'pear-library'
5a280 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 6c ));.$im->addInstaller(new.Instal
5a2a0 6c 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 ler\PluginInstaller($io,.$compos
5a2c0 65 72 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 er));.$im->addInstaller(new.Inst
5a2e0 61 6c 6c 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 29 29 aller\MetapackageInstaller($io))
5a300 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 70 75 72 67 ;.}......protected.function.purg
5a320 65 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 ePackages(WritableRepositoryInte
5a340 72 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 rface.$repo,.Installer\Installat
5a360 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f ionManager.$im).{.foreach.($repo
5a380 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 69 ->getPackages().as.$package).{.i
5a3a0 66 20 28 21 24 69 6d 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 f.(!$im->isPackageInstalled($rep
5a3c0 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 o,.$package)).{.$repo->removePac
5a3e0 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 0a 70 75 kage($package);.}.}.}.........pu
5a400 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e blic.static.function.create(IOIn
5a420 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 terface.$io,.$config.=.null,.$di
5a440 73 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 sablePlugins.=.false).{.$factory
5a460 20 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 .=.new.static();..return.$factor
5a480 79 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 y->createComposer($io,.$config,.
5a4a0 24 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 $disablePlugins);.}.}.<?php.....
5a4c0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 .......namespace.Composer\IO;..u
5a4e0 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
5a500 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 61 62 73 74 72 61 63 74 \Util\ProcessExecutor;..abstract
5a520 20 63 6c 61 73 73 20 42 61 73 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 .class.BaseIO.implements.IOInter
5a540 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e face.{.protected.$authentication
5a560 73 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 s.=.array();.....public.function
5a580 20 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 .getAuthentications().{.return.$
5a5a0 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 this->authentications;.}.....pub
5a5c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 lic.function.hasAuthentication($
5a5e0 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 repositoryName).{.return.isset($
5a600 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 this->authentications[$repositor
5a620 79 4e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 yName]);.}.....public.function.g
5a640 65 74 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 etAuthentication($repositoryName
5a660 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 ).{.if.(isset($this->authenticat
5a680 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e ions[$repositoryName])).{.return
5a6a0 20 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 .$this->authentications[$reposit
5a6c0 6f 72 79 4e 61 6d 65 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 75 73 65 72 6e oryName];.}..return.array('usern
5a6e0 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e 75 6c 6c ame'.=>.null,.'password'.=>.null
5a700 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 );.}.....public.function.setAuth
5a720 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 2c 20 24 75 73 65 entication($repositoryName,.$use
5a740 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 rname,.$password.=.null).{.$this
5a760 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 4e 61 6d ->authentications[$repositoryNam
5a780 65 5d 20 3d 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e 61 e].=.array('username'.=>.$userna
5a7a0 6d 65 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a me,.'password'.=>.$password);.}.
5a7c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 ....public.function.loadConfigur
5a7e0 61 74 69 6f 6e 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 24 74 ation(Config.$config).{...if.($t
5a800 6f 6b 65 6e 73 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 okens.=.$config->get('github-oau
5a820 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f 6d th')).{.foreach.($tokens.as.$dom
5a840 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 ain.=>.$token).{.if.(!preg_match
5a860 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 74 68 72 ('{^[a-z0-9]+$}',.$token)).{.thr
5a880 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e ow.new.\UnexpectedValueException
5a8a0 28 27 59 6f 75 72 20 67 69 74 68 75 62 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e ('Your.github.oauth.token.for.'.
5a8c0 24 64 6f 6d 61 69 6e 2e 27 20 63 6f 6e 74 61 69 6e 73 20 69 6e 76 61 6c 69 64 20 63 68 61 72 61 $domain.'.contains.invalid.chara
5a8e0 63 74 65 72 73 3a 20 22 27 2e 24 74 6f 6b 65 6e 2e 27 22 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e cters:."'.$token.'"');.}.$this->
5a900 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 24 74 6f 6b 65 setAuthentication($domain,.$toke
5a920 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 n,.'x-oauth-basic');.}.}..if.($t
5a940 6f 6b 65 6e 73 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 6c 61 62 2d 6f 61 75 okens.=.$config->get('gitlab-oau
5a960 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f 6d th')).{.foreach.($tokens.as.$dom
5a980 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 41 75 74 68 65 ain.=>.$token).{.$this->setAuthe
5a9a0 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 6f 61 75 74 ntication($domain,.$token,.'oaut
5a9c0 68 32 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 h2');.}.}....if.($creds.=.$confi
5a9e0 67 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 g->get('http-basic')).{.foreach.
5aa00 28 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 ($creds.as.$domain.=>.$cred).{.$
5aa20 74 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 this->setAuthentication($domain,
5aa40 20 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 .$cred['username'],.$cred['passw
5aa60 6f 72 64 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a ord']);.}.}....ProcessExecutor::
5aa80 73 65 74 54 69 6d 65 6f 75 74 28 28 69 6e 74 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 setTimeout((int).$config->get('p
5aaa0 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a rocess-timeout'));.}.}.<?php....
5aac0 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 3b 0a 0a ........namespace.Composer\IO;..
5aae0 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
5ab00 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 5c 43 tput\StreamOutput;.use.Symfony\C
5ab20 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 omponent\Console\Formatter\Outpu
5ab40 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 tFormatterInterface;.use.Symfony
5ab60 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 53 74 72 69 6e 67 49 \Component\Console\Input\StringI
5ab80 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 nput;.use.Symfony\Component\Cons
5aba0 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ole\Helper\HelperSet;.....class.
5abc0 42 75 66 66 65 72 49 4f 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 49 4f 0a 7b 0a 0a 0a 0a BufferIO.extends.ConsoleIO.{....
5abe0 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 0a 24 ..public.function.__construct(.$
5ac00 69 6e 70 75 74 20 3d 20 27 27 2c 0a 24 76 65 72 62 6f 73 69 74 79 20 3d 20 53 74 72 65 61 6d 4f input.=.'',.$verbosity.=.StreamO
5ac20 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4f 75 74 70 75 74 46 utput::VERBOSITY_NORMAL,.OutputF
5ac40 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e ormatterInterface.$formatter.=.n
5ac60 75 6c 6c 0a 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 ull.).{.$input.=.new.StringInput
5ac80 28 24 69 6e 70 75 74 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 ($input);.$input->setInteractive
5aca0 28 66 61 6c 73 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 (false);..$output.=.new.StreamOu
5acc0 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 72 77 27 29 tput(fopen('php://memory',.'rw')
5ace0 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 21 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 74 65 72 29 ,.$verbosity,.!empty($formatter)
5ad00 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ,.$formatter);..parent::__constr
5ad20 75 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 6e 65 77 20 48 65 6c 70 65 72 53 uct($input,.$output,.new.HelperS
5ad40 65 74 28 61 72 72 61 79 28 29 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e et(array()));.}..public.function
5ad60 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 .getOutput().{.fseek($this->outp
5ad80 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 2c 20 30 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 ut->getStream(),.0);..$output.=.
5ada0 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 stream_get_contents($this->outpu
5adc0 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 t->getStream());..$output.=.preg
5ade0 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 28 3f 3c 3d 5e 7c 5c 6e 7c 5c 78 30 _replace_callback("{(?<=^|\n|\x0
5ae00 38 29 28 2e 2b 3f 29 28 5c 78 30 38 2b 29 7d 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 8)(.+?)(\x08+)}",.function.($mat
5ae20 63 68 65 73 29 20 7b 0a 24 70 72 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 6d 61 74 63 68 ches).{.$pre.=.strip_tags($match
5ae40 65 73 5b 31 5d 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 70 72 65 29 20 3d 3d 3d 20 73 74 es[1]);..if.(strlen($pre).===.st
5ae60 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a rlen($matches[2])).{.return.'';.
5ae80 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 22 }....return.rtrim($matches[1])."
5aea0 5c 6e 22 3b 0a 7d 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 \n";.},.$output);..return.$outpu
5aec0 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 t;.}.}.<?php............namespac
5aee0 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 e.Composer\IO;..use.Symfony\Comp
5af00 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
5af20 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
5af40 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b e\Output\ConsoleOutputInterface;
5af60 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
5af80 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f utput\OutputInterface;.use.Symfo
5afa0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 ny\Component\Console\Helper\Help
5afc0 65 72 53 65 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e erSet;.use.Symfony\Component\Con
5afe0 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 51 75 65 73 74 69 sole\Question\ConfirmationQuesti
5b000 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
5b020 65 5c 51 75 65 73 74 69 6f 6e 5c 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 e\Question\Question;........clas
5b040 73 20 43 6f 6e 73 6f 6c 65 49 4f 20 65 78 74 65 6e 64 73 20 42 61 73 65 49 4f 0a 7b 0a 70 72 6f s.ConsoleIO.extends.BaseIO.{.pro
5b060 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 tected.$input;.protected.$output
5b080 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$helperSet;.protecte
5b0a0 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 73 74 4d d.$lastMessage;.protected.$lastM
5b0c0 65 73 73 61 67 65 45 72 72 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 0a essageErr;.private.$startTime;..
5b0e0 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
5b100 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 ct(InputInterface.$input,.Output
5b120 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 20 24 68 65 Interface.$output,.HelperSet.$he
5b140 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 lperSet).{.$this->input.=.$input
5b160 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 ;.$this->output.=.$output;.$this
5b180 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 70 75 62 ->helperSet.=.$helperSet;.}..pub
5b1a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 lic.function.enableDebugging($st
5b1c0 61 72 74 54 69 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 24 73 artTime).{.$this->startTime.=.$s
5b1e0 74 61 72 74 54 69 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 tartTime;.}.....public.function.
5b200 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e isInteractive().{.return.$this->
5b220 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 input->isInteractive();.}.....pu
5b240 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 blic.function.isDecorated().{.re
5b260 74 75 72 6e 20 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 turn.$this->output->isDecorated(
5b280 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 56 65 72 62 6f );.}.....public.function.isVerbo
5b2a0 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 se().{.return.$this->output->get
5b2c0 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a Verbosity().>=.OutputInterface::
5b2e0 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 VERBOSITY_VERBOSE;.}.....public.
5b300 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 72 function.isVeryVerbose().{.retur
5b320 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 n.$this->output->getVerbosity().
5b340 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 >=.OutputInterface::VERBOSITY_VE
5b360 52 59 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f RY_VERBOSE;.}.....public.functio
5b380 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 n.isDebug().{.return.$this->outp
5b3a0 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 ut->getVerbosity().>=.OutputInte
5b3c0 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 3b 0a 7d 0a 0a 0a 0a 0a 70 75 rface::VERBOSITY_DEBUG;.}.....pu
5b3e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 blic.function.write($messages,.$
5b400 6e 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 newline.=.true).{.$this->doWrite
5b420 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a ($messages,.$newline,.false);.}.
5b440 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 45 72 72 6f 72 28 24 ....public.function.writeError($
5b460 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 messages,.$newline.=.true).{.$th
5b480 69 73 2d 3e 64 6f 57 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 is->doWrite($messages,.$newline,
5b4a0 20 74 72 75 65 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 .true);.}.......private.function
5b4c0 20 64 6f 57 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 .doWrite($messages,.$newline,.$s
5b4e0 74 64 65 72 72 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 tderr).{.if.(null.!==.$this->sta
5b500 72 74 54 69 6d 65 29 20 7b 0a 24 6d 65 6d 6f 72 79 55 73 61 67 65 20 3d 20 6d 65 6d 6f 72 79 5f rtTime).{.$memoryUsage.=.memory_
5b520 67 65 74 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 3b 0a 24 74 69 6d 65 get_usage()./.1024./.1024;.$time
5b540 53 70 65 6e 74 20 3d 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 Spent.=.microtime(true).-.$this-
5b560 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 >startTime;.$messages.=.array_ma
5b580 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6d 65 73 73 61 67 65 29 20 75 73 65 20 28 24 6d 65 6d 6f p(function.($message).use.($memo
5b5a0 72 79 55 73 61 67 65 2c 20 24 74 69 6d 65 53 70 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 ryUsage,.$timeSpent).{.return.sp
5b5c0 72 69 6e 74 66 28 27 5b 25 2e 31 66 4d 42 2f 25 2e 32 66 73 5d 20 25 73 27 2c 20 24 6d 65 6d 6f rintf('[%.1fMB/%.2fs].%s',.$memo
5b5e0 72 79 55 73 61 67 65 2c 20 24 74 69 6d 65 53 70 65 6e 74 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a ryUsage,.$timeSpent,.$message);.
5b600 7d 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 69 66 20 28 74 72 },.(array).$messages);.}..if.(tr
5b620 75 65 20 3d 3d 3d 20 24 73 74 64 65 72 72 20 26 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 ue.===.$stderr.&&.$this->output.
5b640 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 61 63 instanceof.ConsoleOutputInterfac
5b660 65 29 20 7b 0a 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 e).{.$this->output->getErrorOutp
5b680 75 74 28 29 2d 3e 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 29 ut()->write($messages,.$newline)
5b6a0 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 45 72 72 20 3d 20 6a 6f 69 6e 28 24 ;.$this->lastMessageErr.=.join($
5b6c0 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 newline.?."\n".:.'',.(array).$me
5b6e0 73 73 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 ssages);..return;.}..$this->outp
5b700 75 74 2d 3e 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 29 3b 0a ut->write($messages,.$newline);.
5b720 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 $this->lastMessage.=.join($newli
5b740 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 67 65 ne.?."\n".:.'',.(array).$message
5b760 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 6f 76 65 72 77 72 s);.}.....public.function.overwr
5b780 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 ite($messages,.$newline.=.true,.
5b7a0 24 73 69 7a 65 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 $size.=.null).{.$this->doOverwri
5b7c0 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 65 2c 20 66 te($messages,.$newline,.$size,.f
5b7e0 61 6c 73 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 6f 76 65 alse);.}.....public.function.ove
5b800 72 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 69 6e 65 20 rwriteError($messages,.$newline.
5b820 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 =.true,.$size.=.null).{.$this->d
5b840 6f 4f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 oOverwrite($messages,.$newline,.
5b860 24 73 69 7a 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 $size,.true);.}........private.f
5b880 75 6e 63 74 69 6f 6e 20 64 6f 4f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 unction.doOverwrite($messages,.$
5b8a0 6e 65 77 6c 69 6e 65 2c 20 24 73 69 7a 65 2c 20 24 73 74 64 65 72 72 29 0a 7b 0a 0a 20 24 6d 65 newline,.$size,.$stderr).{...$me
5b8c0 73 73 61 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 ssages.=.join($newline.?."\n".:.
5b8e0 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 0a 20 69 66 20 28 21 '',.(array).$messages);....if.(!
5b900 69 73 73 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 20 3d 20 73 74 72 6c 65 6e isset($size)).{...$size.=.strlen
5b920 28 73 74 72 69 70 5f 74 61 67 73 28 24 73 74 64 65 72 72 20 3f 20 24 74 68 69 73 2d 3e 6c 61 73 (strip_tags($stderr.?.$this->las
5b940 74 4d 65 73 73 61 67 65 45 72 72 20 3a 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 tMessageErr.:.$this->lastMessage
5b960 29 29 3b 0a 7d 0a 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 ));.}...$this->doWrite(str_repea
5b980 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 t("\x08",.$size),.false,.$stderr
5b9a0 29 3b 0a 0a 0a 20 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 );....$this->doWrite($messages,.
5b9c0 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 false,.$stderr);..$fill.=.$size.
5b9e0 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b -.strlen(strip_tags($messages));
5ba00 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 .if.($fill.>.0).{...$this->doWri
5ba20 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 te(str_repeat('.',.$fill),.false
5ba40 2c 20 24 73 74 64 65 72 72 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 73 74 72 ,.$stderr);...$this->doWrite(str
5ba60 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 2c 20 24 _repeat("\x08",.$fill),.false,.$
5ba80 73 74 64 65 72 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 stderr);.}..if.($newline).{.$thi
5baa0 73 2d 3e 64 6f 57 72 69 74 65 28 27 27 2c 20 74 72 75 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 7d s->doWrite('',.true,.$stderr);.}
5bac0 0a 0a 69 66 20 28 24 73 74 64 65 72 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 ..if.($stderr).{.$this->lastMess
5bae0 61 67 65 45 72 72 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 ageErr.=.$messages;.}.else.{.$th
5bb00 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 7d is->lastMessage.=.$messages;.}.}
5bb20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 .....public.function.ask($questi
5bb40 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d on,.$default.=.null).{.$output.=
5bb60 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 74 20 69 6e 73 .$this->output;..if.($output.ins
5bb80 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 61 63 65 29 20 tanceof.ConsoleOutputInterface).
5bba0 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 6f 72 4f 75 74 {.$output.=.$output->getErrorOut
5bbc0 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 68 65 6c 70 65 72 20 3d 20 24 74 68 69 73 2d 3e 68 65 6c 70 put();.}...$helper.=.$this->help
5bbe0 65 72 53 65 74 2d 3e 67 65 74 28 27 71 75 65 73 74 69 6f 6e 27 29 3b 0a 24 71 75 65 73 74 69 6f erSet->get('question');.$questio
5bc00 6e 20 3d 20 6e 65 77 20 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 n.=.new.Question($question,.$def
5bc20 61 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 65 72 2d 3e 61 73 6b 28 24 74 68 69 ault);..return.$helper->ask($thi
5bc40 73 2d 3e 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d s->input,.$output,.$question);.}
5bc60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 .....public.function.askConfirma
5bc80 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 tion($question,.$default.=.true)
5bca0 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 66 20 .{.$output.=.$this->output;..if.
5bcc0 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 70 75 ($output.instanceof.ConsoleOutpu
5bce0 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 74 2d tInterface).{.$output.=.$output-
5bd00 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 68 65 6c 70 65 72 20 3d >getErrorOutput();.}...$helper.=
5bd20 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 71 75 65 73 74 69 6f 6e .$this->helperSet->get('question
5bd40 27 29 3b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 6e 65 77 20 43 6f 6e 66 69 72 6d 61 74 69 6f 6e ');.$question.=.new.Confirmation
5bd60 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a Question($question,.$default);..
5bd80 72 65 74 75 72 6e 20 24 68 65 6c 70 65 72 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 return.$helper->ask($this->input
5bda0 2c 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ,.$output,.$question);.}.....pub
5bdc0 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 24 71 75 65 lic.function.askAndValidate($que
5bde0 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 20 3d 20 6e stion,.$validator,.$attempts.=.n
5be00 75 6c 6c 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 20 ull,.$default.=.null).{.$output.
5be20 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 74 20 69 6e =.$this->output;..if.($output.in
5be40 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 61 63 65 29 stanceof.ConsoleOutputInterface)
5be60 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 6f 72 4f 75 .{.$output.=.$output->getErrorOu
5be80 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 68 65 6c 70 65 72 20 3d 20 24 74 68 69 73 2d 3e 68 65 6c tput();.}...$helper.=.$this->hel
5bea0 70 65 72 53 65 74 2d 3e 67 65 74 28 27 71 75 65 73 74 69 6f 6e 27 29 3b 0a 24 71 75 65 73 74 69 perSet->get('question');.$questi
5bec0 6f 6e 20 3d 20 6e 65 77 20 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 on.=.new.Question($question,.$de
5bee0 66 61 75 6c 74 29 3b 0a 24 71 75 65 73 74 69 6f 6e 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 fault);.$question->setValidator(
5bf00 24 76 61 6c 69 64 61 74 6f 72 29 3b 0a 24 71 75 65 73 74 69 6f 6e 2d 3e 73 65 74 4d 61 78 41 74 $validator);.$question->setMaxAt
5bf20 74 65 6d 70 74 73 28 24 61 74 74 65 6d 70 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 tempts($attempts);..return.$help
5bf40 65 72 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 er->ask($this->input,.$output,.$
5bf60 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e question);.}.....public.function
5bf80 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 24 .askAndHideAnswer($question).{.$
5bfa0 74 68 69 73 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 this->writeError($question,.fals
5bfc0 65 29 3b 0a 0a 72 65 74 75 72 6e 20 5c 53 65 6c 64 5c 43 6c 69 50 72 6f 6d 70 74 5c 43 6c 69 50 e);..return.\Seld\CliPrompt\CliP
5bfe0 72 6f 6d 70 74 3a 3a 68 69 64 64 65 6e 50 72 6f 6d 70 74 28 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c rompt::hiddenPrompt(true);.}.}.<
5c000 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
5c020 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 0a 0a 0a er\IO;..use.Composer\Config;....
5c040 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 0a 0a 0a ...interface.IOInterface.{......
5c060 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b public.function.isInteractive();
5c080 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 6f 73 65 .......public.function.isVerbose
5c0a0 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 79 ();.......public.function.isVery
5c0c0 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 69 6f 6e Verbose();.......public.function
5c0e0 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 74 69 6f .isDebug();.......public.functio
5c100 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 63 20 66 n.isDecorated();........public.f
5c120 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e unction.write($messages,.$newlin
5c140 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 74 69 6f e.=.true);........public.functio
5c160 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 69 6e 65 n.writeError($messages,.$newline
5c180 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 74 69 6f .=.true);.........public.functio
5c1a0 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 n.overwrite($messages,.$newline.
5c1c0 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 0a 0a 70 =.true,.$size.=.null);.........p
5c1e0 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 6d ublic.function.overwriteError($m
5c200 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 20 essages,.$newline.=.true,.$size.
5c220 3d 20 6e 75 6c 6c 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 =.null);...........public.functi
5c240 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
5c260 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 6f 6e 20 61 l);............public.function.a
5c280 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 skConfirmation($question,.$defau
5c2a0 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 70 75 62 6c lt.=.true);.................publ
5c2c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 ic.function.askAndValidate($ques
5c2e0 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 6e 75 tion,.$validator,.$attempts.=.nu
5c300 6c 6c 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ll,.$default.=.null);.........pu
5c320 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 blic.function.askAndHideAnswer($
5c340 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 6e 63 74 69 6f 6e question);.......public.function
5c360 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 0a 0a 0a 0a 0a 70 .getAuthentications();.........p
5c380 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 63 61 74 69 6f 6e ublic.function.hasAuthentication
5c3a0 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 6c 69 ($repositoryName);.........publi
5c3c0 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 28 24 72 65 c.function.getAuthentication($re
5c3e0 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 6c 69 63 20 66 75 positoryName);.........public.fu
5c400 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 73 69 nction.setAuthentication($reposi
5c420 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 20 3d toryName,.$username,.$password.=
5c440 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 69 6f 6e 20 6c 6f .null);.......public.function.lo
5c460 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 6e 66 69 67 29 3b adConfiguration(Config.$config);
5c480 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
5c4a0 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 49 4f 20 65 78 mposer\IO;.......class.NullIO.ex
5c4c0 74 65 6e 64 73 20 42 61 73 65 49 4f 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tends.BaseIO.{....public.functio
5c4e0 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 n.isInteractive().{.return.false
5c500 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 ;.}.....public.function.isVerbos
5c520 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 69 63 e().{.return.false;.}.....public
5c540 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
5c560 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.
5c580 69 73 44 65 62 75 67 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 isDebug().{.return.false;.}.....
5c5a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a public.function.isDecorated().{.
5c5c0 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
5c5e0 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 ion.write($messages,.$newline.=.
5c600 74 72 75 65 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 77 72 true).{.}.....public.function.wr
5c620 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 69 6e 65 20 3d 20 74 iteError($messages,.$newline.=.t
5c640 72 75 65 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 6f 76 65 rue).{.}.....public.function.ove
5c660 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 20 3d 20 74 72 75 rwrite($messages,.$newline.=.tru
5c680 65 2c 20 24 73 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 e,.$size.=.80).{.}.....public.fu
5c6a0 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c nction.overwriteError($messages,
5c6c0 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 0a 7b 0a .$newline.=.true,.$size.=.80).{.
5c6e0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 }.....public.function.ask($quest
5c700 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion,.$default.=.null).{.return.$
5c720 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 default;.}.....public.function.a
5c740 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 skConfirmation($question,.$defau
5c760 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a lt.=.true).{.return.$default;.}.
5c780 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 ....public.function.askAndValida
5c7a0 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d te($question,.$validator,.$attem
5c7c0 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a pts.=.false,.$default.=.null).{.
5c7e0 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 return.$default;.}.....public.fu
5c800 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f nction.askAndHideAnswer($questio
5c820 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a n).{.return.null;.}.}.<?php.....
5c840 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 .......namespace.Composer;..use.
5c860 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 Composer\Autoload\AutoloadGenera
5c880 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f tor;.use.Composer\DependencyReso
5c8a0 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 6f 73 65 72 lver\DefaultPolicy;.use.Composer
5c8c0 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 70 \DependencyResolver\Operation\Up
5c8e0 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 5c 44 65 70 65 dateOperation;.use.Composer\Depe
5c900 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c ndencyResolver\Operation\Install
5c920 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e Operation;.use.Composer\Dependen
5c940 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 cyResolver\Operation\UninstallOp
5c960 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 eration;.use.Composer\Dependency
5c980 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 65 Resolver\Operation\OperationInte
5c9a0 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 65 rface;.use.Composer\DependencyRe
5c9c0 73 6f 6c 76 65 72 5c 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 solver\PolicyInterface;.use.Comp
5c9e0 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 6f 6c 3b 0a 75 73 oser\DependencyResolver\Pool;.us
5ca00 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 52 65 e.Composer\DependencyResolver\Re
5ca20 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 quest;.use.Composer\DependencyRe
5ca40 73 6f 6c 76 65 72 5c 52 75 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 solver\Rule;.use.Composer\Depend
5ca60 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 encyResolver\Solver;.use.Compose
5ca80 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 50 72 6f 62 6c r\DependencyResolver\SolverProbl
5caa0 65 6d 73 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c emsException;.use.Composer\Downl
5cac0 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f oader\DownloadManager;.use.Compo
5cae0 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 63 ser\EventDispatcher\EventDispatc
5cb00 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 her;.use.Composer\Installer\Inst
5cb20 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e allationManager;.use.Composer\In
5cb40 73 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 staller\InstallerEvents;.use.Com
5cb60 70 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 poser\Installer\NoopInstaller;.u
5cb80 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.
5cba0 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
5cbc0 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
5cbe0 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 67 65 3b omposer\Package\CompletePackage;
5cc00 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.
5cc20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 Composer\Semver\Constraint\Const
5cc40 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 4c 6f 63 6b raint;.use.Composer\Package\Lock
5cc60 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 61 67 65 er;.use.Composer\Package\Package
5cc80 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
5cca0 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 6f 6d 70 6f 73 RootPackageInterface;.use.Compos
5ccc0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 er\Repository\CompositeRepositor
5cce0 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 49 6e 73 74 61 y;.use.Composer\Repository\Insta
5cd00 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 lledArrayRepository;.use.Compose
5cd20 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d r\Repository\InstalledFilesystem
5cd40 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
5cd60 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
5cd80 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
5cda0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 ace;.use.Composer\Repository\Rep
5cdc0 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 52 65 70 ositoryManager;.use.Composer\Rep
5cde0 6f 73 69 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 ository\WritableRepositoryInterf
5ce00 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 ace;.use.Composer\Script\ScriptE
5ce20 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a vents;........class.Installer.{.
5ce40 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ...protected.$io;.....protected.
5ce60 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b $config;.....protected.$package;
5ce80 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b .....protected.$downloadManager;
5cea0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 .....protected.$repositoryManage
5cec0 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 r;.....protected.$locker;.....pr
5cee0 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a otected.$installationManager;...
5cf00 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a ..protected.$eventDispatcher;...
5cf20 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a ..protected.$autoloadGenerator;.
5cf40 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 .protected.$preferSource.=.false
5cf60 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b ;.protected.$preferDist.=.false;
5cf80 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d .protected.$optimizeAutoloader.=
5cfa0 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f .false;.protected.$classMapAutho
5cfc0 72 69 74 61 74 69 76 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 ritative.=.false;.protected.$dev
5cfe0 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 72 79 52 75 6e 20 Mode.=.false;.protected.$dryRun.
5d000 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 20 3d 20 66 61 =.false;.protected.$verbose.=.fa
5d020 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a lse;.protected.$update.=.false;.
5d040 70 72 6f 74 65 63 74 65 64 20 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 74 72 75 65 protected.$dumpAutoloader.=.true
5d060 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 3b 0a ;.protected.$runScripts.=.true;.
5d080 70 72 6f 74 65 63 74 65 64 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 protected.$ignorePlatformReqs.=.
5d0a0 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d false;.protected.$preferStable.=
5d0c0 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 .false;.protected.$preferLowest.
5d0e0 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 57 =.false;......protected.$updateW
5d100 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 68 69 74 hitelist.=.null;.protected.$whit
5d120 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 elistDependencies.=.false;.....p
5d140 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a rotected.$suggestedPackages;....
5d160 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 .protected.$additionalInstalledR
5d180 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 epository;...............public.
5d1a0 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 65 function.__construct(IOInterface
5d1c0 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 6f 6f 74 50 61 63 6b 61 67 .$io,.Config.$config,.RootPackag
5d1e0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e eInterface.$package,.DownloadMan
5d200 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2c 20 52 65 70 6f 73 69 74 6f 72 ager.$downloadManager,.Repositor
5d220 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 4c 6f 63 yManager.$repositoryManager,.Loc
5d240 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 ker.$locker,.InstallationManager
5d260 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 45 76 65 6e 74 44 69 73 70 .$installationManager,.EventDisp
5d280 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 41 75 74 6f 6c 6f 61 atcher.$eventDispatcher,.Autoloa
5d2a0 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b dGenerator.$autoloadGenerator).{
5d2c0 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 20 .$this->io.=.$io;.$this->config.
5d2e0 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 =.$config;.$this->package.=.$pac
5d300 6b 61 67 65 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 kage;.$this->downloadManager.=.$
5d320 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f downloadManager;.$this->reposito
5d340 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a ryManager.=.$repositoryManager;.
5d360 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 24 74 68 69 73 2d 3e $this->locker.=.$locker;.$this->
5d380 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 installationManager.=.$installat
5d3a0 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 ionManager;.$this->eventDispatch
5d3c0 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 61 75 er.=.$eventDispatcher;.$this->au
5d3e0 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 toloadGenerator.=.$autoloadGener
5d400 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ator;.}........public.function.r
5d420 75 6e 28 29 0a 7b 0a 67 63 5f 63 6f 6c 6c 65 63 74 5f 63 79 63 6c 65 73 28 29 3b 0a 67 63 5f 64 un().{.gc_collect_cycles();.gc_d
5d440 69 73 61 62 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a isable();..if.($this->dryRun).{.
5d460 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 75 $this->verbose.=.true;.$this->ru
5d480 6e 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c nScripts.=.false;.$this->install
5d4a0 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 4e ationManager->addInstaller(new.N
5d4c0 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 63 6b 4c 6f 63 61 6c 52 oopInstaller);.$this->mockLocalR
5d4e0 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e epositories($this->repositoryMan
5d500 61 67 65 72 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 64 65 76 52 65 70 6f 20 3d 20 6e 65 77 20 49 6e 73 ager);.}......$devRepo.=.new.Ins
5d520 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a talledFilesystemRepository(new.J
5d540 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 sonFile($this->config->get('vend
5d560 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 65 64 5f 64 65 or-dir').'/composer/installed_de
5d580 76 2e 6a 73 6f 6e 27 29 29 3b 0a 69 66 20 28 24 64 65 76 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b v.json'));.if.($devRepo->getPack
5d5a0 61 67 65 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 ages()).{.$this->io->writeError(
5d5c0 27 3c 77 61 72 6e 69 6e 67 3e 42 43 20 4e 6f 74 69 63 65 3a 20 52 65 6d 6f 76 69 6e 67 20 6f 6c '<warning>BC.Notice:.Removing.ol
5d5e0 64 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 74 6f 20 6d 69 67 72 61 74 65 20 74 6f 20 74 68 65 d.dev.packages.to.migrate.to.the
5d600 20 6e 65 77 20 72 65 71 75 69 72 65 2d 64 65 76 20 68 61 6e 64 6c 69 6e 67 2e 3c 2f 77 61 72 6e .new.require-dev.handling.</warn
5d620 69 6e 67 3e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 76 52 65 70 6f 2d 3e 67 65 74 50 61 ing>');.foreach.($devRepo->getPa
5d640 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 74 68 69 ckages().as.$package).{.if.($thi
5d660 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 69 73 50 61 63 6b 61 67 s->installationManager->isPackag
5d680 65 49 6e 73 74 61 6c 6c 65 64 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 eInstalled($devRepo,.$package)).
5d6a0 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 75 6e {.$this->installationManager->un
5d6c0 69 6e 73 74 61 6c 6c 28 24 64 65 76 52 65 70 6f 2c 20 6e 65 77 20 55 6e 69 6e 73 74 61 6c 6c 4f install($devRepo,.new.UninstallO
5d6e0 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 75 6e 6c 69 6e 6b 28 peration($package));.}.}.unlink(
5d700 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 $this->config->get('vendor-dir')
5d720 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 .'/composer/installed_dev.json')
5d740 3b 0a 7d 0a 75 6e 73 65 74 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a ;.}.unset($devRepo,.$package);..
5d760 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 .if.($this->runScripts).{...$eve
5d780 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 ntName.=.$this->update.?.ScriptE
5d7a0 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 vents::PRE_UPDATE_CMD.:.ScriptEv
5d7c0 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 ents::PRE_INSTALL_CMD;.$this->ev
5d7e0 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 69 70 74 28 24 65 entDispatcher->dispatchScript($e
5d800 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 7d 0a 0a 24 74 ventName,.$this->devMode);.}..$t
5d820 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 66 65 72 53 his->downloadManager->setPreferS
5d840 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 29 3b 0a 24 74 68 69 ource($this->preferSource);.$thi
5d860 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 s->downloadManager->setPreferDis
5d880 74 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 3b 0a 0a 0a 20 0a 20 0a 20 24 69 6e t($this->preferDist);........$in
5d8a0 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 stalledRootPackage.=.clone.$this
5d8c0 2d 3e 70 61 63 6b 61 67 65 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 ->package;.$installedRootPackage
5d8e0 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c ->setRequires(array());.$install
5d900 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 edRootPackage->setDevRequires(ar
5d920 72 61 79 28 29 29 3b 0a 0a 0a 20 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 72 ray());....$localRepo.=.$this->r
5d940 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 epositoryManager->getLocalReposi
5d960 74 6f 72 79 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 tory();.if.(!$this->update.&&.$t
5d980 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 70 6c 61 74 his->locker->isLocked()).{.$plat
5d9a0 66 6f 72 6d 4f 76 65 72 72 69 64 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 formOverrides.=.$this->locker->g
5d9c0 65 74 50 6c 61 74 66 6f 72 6d 4f 76 65 72 72 69 64 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a etPlatformOverrides();.}.else.{.
5d9e0 24 70 6c 61 74 66 6f 72 6d 4f 76 65 72 72 69 64 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 $platformOverrides.=.$this->conf
5da00 69 67 2d 3e 67 65 74 28 27 70 6c 61 74 66 6f 72 6d 27 29 20 3f 3a 20 61 72 72 61 79 28 29 3b 0a ig->get('platform').?:.array();.
5da20 7d 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 }.$platformRepo.=.new.PlatformRe
5da40 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 29 2c 20 24 70 6c 61 74 66 6f 72 6d 4f 76 65 72 72 pository(array(),.$platformOverr
5da60 69 64 65 73 29 3b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 0a 24 6c 6f 63 61 6c 52 65 70 ides);.$repos.=.array(.$localRep
5da80 6f 2c 0a 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 o,.new.InstalledArrayRepository(
5daa0 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 29 29 2c 0a 24 array($installedRootPackage)),.$
5dac0 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 0a 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 platformRepo,.);.$installedRepo.
5dae0 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 =.new.CompositeRepository($repos
5db00 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 73 74 61 6c 6c 65 );.if.($this->additionalInstalle
5db20 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 61 dRepository).{.$installedRepo->a
5db40 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e ddRepository($this->additionalIn
5db60 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 stalledRepository);.}..$aliases.
5db80 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 3b 0a 24 74 68 69 73 =.$this->getRootAliases();.$this
5dba0 2d 3e 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 ->aliasPlatformPackages($platfor
5dbc0 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e mRepo,.$aliases);..try.{.$this->
5dbe0 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 suggestedPackages.=.array();.$re
5dc00 73 20 3d 20 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c s.=.$this->doInstall($localRepo,
5dc20 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 .$installedRepo,.$platformRepo,.
5dc40 24 61 6c 69 61 73 65 73 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 69 66 20 28 24 $aliases,.$this->devMode);.if.($
5dc60 72 65 73 20 21 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 7d 20 63 61 res.!==.0).{.return.$res;.}.}.ca
5dc80 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 tch.(\Exception.$e).{.if.(!$this
5dca0 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d ->dryRun).{.$this->installationM
5dcc0 61 6e 61 67 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 24 74 68 69 73 2d 3e 69 6f anager->notifyInstalls($this->io
5dce0 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 );.}..throw.$e;.}.if.(!$this->dr
5dd00 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 yRun).{.$this->installationManag
5dd20 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d er->notifyInstalls($this->io);.}
5dd40 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 20 7b 0a 66 6f 72 65 61 63 ....if.($this->devMode).{.foreac
5dd60 68 20 28 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 h.($this->suggestedPackages.as.$
5dd80 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 73 75 67 67 65 73 74 suggestion).{.$target.=.$suggest
5dda0 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c ion['target'];.foreach.($install
5ddc0 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 edRepo->getPackages().as.$packag
5dde0 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 74 61 72 67 65 74 2c 20 24 70 61 63 6b e).{.if.(in_array($target,.$pack
5de00 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a age->getNames())).{.continue.2;.
5de20 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 24 73 75 67 67 }.}..$this->io->writeError($sugg
5de40 65 73 74 69 6f 6e 5b 27 73 6f 75 72 63 65 27 5d 2e 27 20 73 75 67 67 65 73 74 73 20 69 6e 73 74 estion['source'].'.suggests.inst
5de60 61 6c 6c 69 6e 67 20 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 alling.'.$suggestion['target'].'
5de80 20 28 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 72 65 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a .('.$suggestion['reason'].')');.
5dea0 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 }.}....foreach.($localRepo->getP
5dec0 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 21 24 70 ackages().as.$package).{.if.(!$p
5dee0 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 61 63 6b 61 67 ackage.instanceof.CompletePackag
5df00 65 20 7c 7c 20 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 29 20 7b e.||.!$package->isAbandoned()).{
5df20 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 28 69 73 .continue;.}..$replacement.=.(is
5df40 5f 73 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 _string($package->getReplacement
5df60 50 61 63 6b 61 67 65 28 29 29 29 0a 3f 20 27 55 73 65 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d Package())).?.'Use.'...$package-
5df80 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 2e 20 27 20 69 6e 73 >getReplacementPackage()...'.ins
5dfa0 74 65 61 64 27 0a 3a 20 27 4e 6f 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 77 61 73 20 73 75 67 67 tead'.:.'No.replacement.was.sugg
5dfc0 65 73 74 65 64 27 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 0a ested';..$this->io->writeError(.
5dfe0 73 70 72 69 6e 74 66 28 0a 22 3c 77 61 72 6e 69 6e 67 3e 50 61 63 6b 61 67 65 20 25 73 20 69 73 sprintf(."<warning>Package.%s.is
5e000 20 61 62 61 6e 64 6f 6e 65 64 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 61 76 6f 69 64 20 75 73 69 .abandoned,.you.should.avoid.usi
5e020 6e 67 20 69 74 2e 20 25 73 2e 3c 2f 77 61 72 6e 69 6e 67 3e 22 2c 0a 24 70 61 63 6b 61 67 65 2d ng.it..%s.</warning>",.$package-
5e040 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 0a 29 >getPrettyName(),.$replacement.)
5e060 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 0a 20 69 .);.}..if.(!$this->dryRun).{...i
5e080 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 6c 6f 63 6b f.($this->update.||.!$this->lock
5e0a0 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 72 65 er->isLocked()).{.$localRepo->re
5e0c0 6c 6f 61 64 28 29 3b 0a 0a 0a 20 0a 20 24 64 65 76 50 61 63 6b 61 67 65 73 20 3d 20 28 24 74 68 load();......$devPackages.=.($th
5e0e0 69 73 2d 3e 64 65 76 4d 6f 64 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e is->devMode.||.!$this->package->
5e100 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 6e 75 getDevRequires()).?.array().:.nu
5e120 6c 6c 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 74 68 ll;....if.($this->devMode.&&.$th
5e140 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b is->package->getDevRequires()).{
5e160 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 .$policy.=.$this->createPolicy()
5e180 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6f 6c 28 74 72 75 65 ;.$pool.=.$this->createPool(true
5e1a0 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 61 6c 6c );.$pool->addRepository($install
5e1c0 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d edRepo,.$aliases);....$request.=
5e1e0 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 65 73 74 28 24 74 68 69 73 2d 3e 70 61 63 .$this->createRequest($this->pac
5e200 6b 61 67 65 2c 20 24 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 kage,.$platformRepo);.$request->
5e220 75 70 64 61 74 65 41 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 updateAll();.foreach.($this->pac
5e240 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a kage->getRequires().as.$link).{.
5e260 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 $request->install($link->getTarg
5e280 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 7d et(),.$link->getConstraint());.}
5e2a0 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 64 69 73 70 61 74 ..$this->eventDispatcher->dispat
5e2c0 63 68 49 6e 73 74 61 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 chInstallerEvent(InstallerEvents
5e2e0 3a 3a 50 52 45 5f 44 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 ::PRE_DEPENDENCIES_SOLVING,.fals
5e300 65 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 e,.$policy,.$pool,.$installedRep
5e320 6f 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 o,.$request);.$solver.=.new.Solv
5e340 65 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 er($policy,.$pool,.$installedRep
5e360 6f 29 3b 0a 24 6f 70 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 o);.$ops.=.$solver->solve($reque
5e380 73 74 2c 20 24 74 68 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 st,.$this->ignorePlatformReqs);.
5e3a0 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 $this->eventDispatcher->dispatch
5e3c0 49 6e 73 74 61 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 InstallerEvent(InstallerEvents::
5e3e0 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 2c 20 66 61 6c 73 65 POST_DEPENDENCIES_SOLVING,.false
5e400 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
5e420 2c 20 24 72 65 71 75 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 ,.$request,.$ops);.foreach.($ops
5e440 20 61 73 20 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 .as.$op).{.if.($op->getJobType()
5e460 20 3d 3d 3d 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 20 7b 0a 24 64 65 76 50 61 63 6b 61 67 65 73 .===.'uninstall').{.$devPackages
5e480 5b 5d 20 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 [].=.$op->getPackage();.}.}.}..$
5e4a0 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 50 6c 61 platformReqs.=.$this->extractPla
5e4c0 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
5e4e0 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 ->getRequires());.$platformDevRe
5e500 71 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 65 78 74 qs.=.$this->devMode.?.$this->ext
5e520 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e ractPlatformRequirements($this->
5e540 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 3a 20 61 72 72 package->getDevRequires()).:.arr
5e560 61 79 28 29 3b 0a 0a 24 75 70 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 ay();..$updatedLock.=.$this->loc
5e580 6b 65 72 2d 3e 73 65 74 4c 6f 63 6b 44 61 74 61 28 0a 61 72 72 61 79 5f 64 69 66 66 28 24 6c 6f ker->setLockData(.array_diff($lo
5e5a0 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 2c calRepo->getCanonicalPackages(),
5e5c0 20 28 61 72 72 61 79 29 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 2c 0a 24 64 65 76 50 61 63 6b .(array).$devPackages),.$devPack
5e5e0 61 67 65 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 44 65 ages,.$platformReqs,.$platformDe
5e600 76 52 65 71 73 2c 0a 24 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d vReqs,.$aliases,.$this->package-
5e620 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 >getMinimumStability(),.$this->p
5e640 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 2c 0a 24 74 68 ackage->getStabilityFlags(),.$th
5e660 69 73 2d 3e 70 72 65 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 is->preferStable.||.$this->packa
5e680 67 65 2d 3e 67 65 74 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 ge->getPreferStable(),.$this->pr
5e6a0 65 66 65 72 4c 6f 77 65 73 74 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 eferLowest,.$this->config->get('
5e6c0 70 6c 61 74 66 6f 72 6d 27 29 20 3f 3a 20 61 72 72 61 79 28 29 0a 29 3b 0a 69 66 20 28 24 75 70 platform').?:.array().);.if.($up
5e6e0 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 datedLock).{.$this->io->writeErr
5e700 6f 72 28 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 or('<info>Writing.lock.file</inf
5e720 6f 3e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 75 6d 70 41 75 74 6f 6c 6f o>');.}.}..if.($this->dumpAutolo
5e740 61 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 ader).{...if.($this->optimizeAut
5e760 6f 6c 6f 61 64 65 72 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 oloader).{.$this->io->writeError
5e780 28 27 3c 69 6e 66 6f 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 ('<info>Generating.optimized.aut
5e7a0 6f 6c 6f 61 64 20 66 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 oload.files</info>');.}.else.{.$
5e7c0 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 47 65 6e 65 this->io->writeError('<info>Gene
5e7e0 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a rating.autoload.files</info>');.
5e800 7d 0a 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 3e 73 65 74 }..$this->autoloadGenerator->set
5e820 44 65 76 4d 6f 64 65 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e DevMode($this->devMode);.$this->
5e840 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 43 6c 61 73 73 4d 61 70 41 75 autoloadGenerator->setClassMapAu
5e860 74 68 6f 72 69 74 61 74 69 76 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 41 75 74 68 6f thoritative($this->classMapAutho
5e880 72 69 74 61 74 69 76 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 ritative);.$this->autoloadGenera
5e8a0 74 6f 72 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 tor->setRunScripts($this->runScr
5e8c0 69 70 74 73 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 ipts);.$this->autoloadGenerator-
5e8e0 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,
5e900 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
5e920 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->
5e940 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
5e960 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.=.
5e980 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
5e9a0 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
5e9c0 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
5e9e0 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
5ea00 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
5ea20 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
5ea40 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)).{.
5ea60 0a 20 0a 20 40 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 ....@touch($vendorDir);.}.}..ret
5ea80 75 72 6e 20 30 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 urn.0;.}..........protected.func
5eaa0 74 69 6f 6e 20 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 tion.doInstall($localRepo,.$inst
5eac0 61 6c 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 alledRepo,.$platformRepo,.$alias
5eae0 65 73 2c 20 24 77 69 74 68 44 65 76 52 65 71 73 29 0a 7b 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 es,.$withDevReqs).{...$lockedRep
5eb00 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 3b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 ository.=.null;.$repositories.=.
5eb20 6e 75 6c 6c 3b 0a 0a 0a 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 21 24 74 68 null;....$installFromLock.=.!$th
5eb40 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c is->update.&&.$this->locker->isL
5eb60 6f 63 6b 65 64 28 29 3b 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d ocked();........if.($installFrom
5eb80 4c 6f 63 6b 20 7c 7c 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 Lock.||.(!empty($this->updateWhi
5eba0 74 65 6c 69 73 74 29 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b telist).&&.$this->locker->isLock
5ebc0 65 64 28 29 29 29 20 7b 0a 74 72 79 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 ed())).{.try.{.$lockedRepository
5ebe0 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 .=.$this->locker->getLockedRepos
5ec00 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 itory($withDevReqs);.}.catch.(\R
5ec20 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 untimeException.$e).{...if.($thi
5ec40 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b 0a s->package->getDevRequires()).{.
5ec60 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 throw.$e;.}...$lockedRepository.
5ec80 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 =.$this->locker->getLockedReposi
5eca0 74 6f 72 79 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 55 70 64 tory();.}.}..$this->whitelistUpd
5ecc0 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 24 77 69 ateDependencies(.$localRepo,.$wi
5ece0 74 68 44 65 76 52 65 71 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 thDevReqs,.$this->package->getRe
5ed00 71 75 69 72 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 quires(),.$this->package->getDev
5ed20 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 Requires().);..$this->io->writeE
5ed40 72 72 6f 72 28 27 3c 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 rror('<info>Loading.composer.rep
5ed60 6f 73 69 74 6f 72 69 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 ositories.with.package.informati
5ed80 6f 6e 3c 2f 69 6e 66 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 on</info>');....$policy.=.$this-
5eda0 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d 3e >createPolicy();.$pool.=.$this->
5edc0 63 72 65 61 74 65 50 6f 6f 6c 28 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 24 69 6e 73 74 61 6c createPool($withDevReqs,.$instal
5ede0 6c 46 72 6f 6d 4c 6f 63 6b 20 3f 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3a 20 lFromLock.?.$lockedRepository.:.
5ee00 6e 75 6c 6c 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 null);.$pool->addRepository($ins
5ee20 74 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 21 24 69 6e 73 talledRepo,.$aliases);.if.(!$ins
5ee40 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 tallFromLock).{.$repositories.=.
5ee60 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 65 74 52 65 70 $this->repositoryManager->getRep
5ee80 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 ositories();.foreach.($repositor
5eea0 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 ies.as.$repository).{.$pool->add
5eec0 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 Repository($repository,.$aliases
5eee0 29 3b 0a 7d 0a 7d 0a 0a 20 0a 20 0a 20 69 66 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f );.}.}.......if.($lockedReposito
5ef00 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 6b ry).{.$pool->addRepository($lock
5ef20 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 0a 0a 20 24 72 edRepository,.$aliases);.}....$r
5ef40 65 71 75 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 65 73 74 28 24 74 equest.=.$this->createRequest($t
5ef60 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
5ef80 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
5efa0 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
5efc0 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()
5efe0 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
5f000 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
5f020 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())
5f040 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->
5f060 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,.$
5f080 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
5f0a0 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
5f0c0 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
5f0e0 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 tName(),.new.Constraint('=',.$pa
5f100 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 7d 0a 7d 0a 0a 69 66 ckage->getVersion()));.}.}.}..if
5f120 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 3e 69 6f 2d 3e 77 72 .($this->update).{.$this->io->wr
5f140 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 64 65 70 65 6e 64 65 iteError('<info>Updating.depende
5f160 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 28 69 6e 63 6c 75 64 ncies'.($withDevReqs.?.'.(includ
5f180 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 3c 2f 69 6e 66 6f 3e ing.require-dev)'.:.'').'</info>
5f1a0 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 29 3b 0a 0a 69 66 20 ');..$request->updateAll();..if.
5f1c0 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 20 61 72 72 61 79 5f ($withDevReqs).{.$links.=.array_
5f1e0 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 52 65 71 75 69 72 65 merge($this->package->getRequire
5f200 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 65 76 52 65 71 75 69 s(),.$this->package->getDevRequi
5f220 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 20 24 74 68 69 73 2d res());.}.else.{.$links.=.$this-
5f240 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 7d 0a 0a 66 6f 72 65 >package->getRequires();.}..fore
5f260 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 72 65 71 75 65 73 74 ach.($links.as.$link).{.$request
5f280 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 6c ->install($link->getTarget(),.$l
5f2a0 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 0a 20 0a 20 69 66 ink->getConstraint());.}......if
5f2c0 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 20 7b 0a 24 63 75 72 .($this->updateWhitelist).{.$cur
5f2e0 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 rentPackages.=.$this->getCurrent
5f300 50 61 63 6b 61 67 65 73 28 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 24 69 6e 73 74 61 6c 6c 65 Packages($withDevReqs,.$installe
5f320 64 52 65 70 6f 29 3b 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 dRepo);....$candidates.=.array()
5f340 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
5f360 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()].=.
5f380 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
5f3a0 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
5f3c0 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
5f3e0 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.
5f400 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.
5f420 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
5f440 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().=
5f460 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
5f480 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
5f4a0 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
5f4c0 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
5f4e0 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 63 75 72 50 61 63 6b t.=.new.Constraint('=',.$curPack
5f500 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e age->getVersion());.$request->in
5f520 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 stall($curPackage->getName(),.$c
5f540 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 7d 0a 7d 0a 7d 20 65 onstraint);.}.break;.}.}.}.}.}.e
5f560 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 7b 0a 24 74 68 69 73 lseif.($installFromLock).{.$this
5f580 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 6e 73 74 61 6c 6c 69 ->io->writeError('<info>Installi
5f5a0 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3f ng.dependencies'.($withDevReqs.?
5f5c0 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 29 27 20 3a 20 27 27 .'.(including.require-dev)'.:.''
5f5e0 29 2e 27 20 66 72 6f 6d 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 ).'.from.lock.file</info>');..if
5f600 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 29 20 7b 0a 24 .(!$this->locker->isFresh()).{.$
5f620 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 3e 57 this->io->writeError('<warning>W
5f640 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 6e 6f 74 20 75 70 20 arning:.The.lock.file.is.not.up.
5f660 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 68 61 6e 67 65 73 20 to.date.with.the.latest.changes.
5f680 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 20 62 65 20 67 65 74 in.composer.json..You.may.be.get
5f6a0 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 73 2e 20 52 75 6e 20 ting.outdated.dependencies..Run.
5f6c0 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 61 72 6e 69 6e 67 3e update.to.update.them.</warning>
5f6e0 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 70 6f 73 69 74 6f 72 ');.}..foreach.($lockedRepositor
5f700 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 61 67 65 29 20 7b 0a y->getPackages().as.$package).{.
5f720 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 6e 28 $version.=.$package->getVersion(
5f740 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 63 6b 61 67 65 2d 3e );.if.(isset($aliases[$package->
5f760 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 24 76 65 72 73 69 6f getName()][$version])).{.$versio
5f780 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 74 4e 61 6d 65 28 29 n.=.$aliases[$package->getName()
5f7a0 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 69 7a 65 64 27 5d 3b ][$version]['alias_normalized'];
5f7c0 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 .}.$constraint.=.new.Constraint(
5f7e0 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 '=',.$version);.$constraint->set
5f800 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
5f820 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 Version());.$request->install($p
5f840 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b ackage->getName(),.$constraint);
5f860 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 50 .}..foreach.($this->locker->getP
5f880 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 52 65 71 73 latformRequirements($withDevReqs
5f8a0 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 ).as.$link).{.$request->install(
5f8c0 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f $link->getTarget(),.$link->getCo
5f8e0 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 nstraint());.}.}.else.{.$this->i
5f900 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 o->writeError('<info>Installing.
5f920 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.?.'.
5f940 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)'.:.'').'
5f960 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a </info>');..if.($withDevReqs).{.
5f980 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b $links.=.array_merge($this->pack
5f9a0 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 age->getRequires(),.$this->packa
5f9c0 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ge->getDevRequires());.}.else.{.
5f9e0 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 $links.=.$this->package->getRequ
5fa00 69 72 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c ires();.}..foreach.($links.as.$l
5fa20 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e ink).{.$request->install($link->
5fa40 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e getTarget(),.$link->getConstrain
5fa60 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 t());.}.}....$this->processDevPa
5fa80 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 ckages($localRepo,.$pool,.$polic
5faa0 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f y,.$repositories,.$installedRepo
5fac0 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 6c 46 72 6f ,.$lockedRepository,.$installFro
5fae0 6d 4c 6f 63 6b 2c 20 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 27 66 6f 72 63 65 2d 6c 69 6e 6b mLock,.$withDevReqs,.'force-link
5fb00 73 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e s');....$this->eventDispatcher->
5fb20 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 6c 6c 65 72 dispatchInstallerEvent(Installer
5fb40 45 76 65 6e 74 73 3a 3a 50 52 45 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 Events::PRE_DEPENDENCIES_SOLVING
5fb60 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 24 70 6f 6f 6c ,.$this->devMode,.$policy,.$pool
5fb80 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 29 3b 0a 24 73 6f ,.$installedRepo,.$request);.$so
5fba0 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c lver.=.new.Solver($policy,.$pool
5fbc0 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 74 72 79 20 7b 0a 24 6f 70 65 72 61 74 ,.$installedRepo);.try.{.$operat
5fbe0 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 2c 20 ions.=.$solver->solve($request,.
5fc00 24 74 68 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 $this->ignorePlatformReqs);.$thi
5fc20 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 49 6e 73 74 s->eventDispatcher->dispatchInst
5fc40 61 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 4f 53 54 allerEvent(InstallerEvents::POST
5fc60 5f 44 45 50 45 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 _DEPENDENCIES_SOLVING,.$this->de
5fc80 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 61 6c 6c 65 vMode,.$policy,.$pool,.$installe
5fca0 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 29 3b 0a 7d dRepo,.$request,.$operations);.}
5fcc0 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 .catch.(SolverProblemsException.
5fce0 24 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 $e).{.$this->io->writeError('<er
5fd00 72 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 63 6f 75 6c 64 20 6e 6f 74 20 ror>Your.requirements.could.not.
5fd20 62 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 6e 20 69 6e 73 74 61 6c 6c 61 62 6c 65 20 73 65 be.resolved.to.an.installable.se
5fd40 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d t.of.packages.</error>');.$this-
5fd60 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 >io->writeError($e->getMessage()
5fd80 29 3b 0a 0a 72 65 74 75 72 6e 20 6d 61 78 28 31 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 );..return.max(1,.$e->getCode())
5fda0 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 ;.}..if.($this->io->isVerbose())
5fdc0 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 41 6e 61 6c 79 7a .{.$this->io->writeError("Analyz
5fde0 65 64 20 22 2e 63 6f 75 6e 74 28 24 70 6f 6f 6c 29 2e 22 20 70 61 63 6b 61 67 65 73 20 74 6f 20 ed.".count($pool).".packages.to.
5fe00 72 65 73 6f 6c 76 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 22 29 3b 0a 24 74 68 69 73 2d 3e 69 resolve.dependencies");.$this->i
5fe20 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 41 6e 61 6c 79 7a 65 64 20 22 2e 24 73 6f 6c 76 65 o->writeError("Analyzed.".$solve
5fe40 72 2d 3e 67 65 74 52 75 6c 65 53 65 74 53 69 7a 65 28 29 2e 22 20 72 75 6c 65 73 20 74 6f 20 72 r->getRuleSetSize().".rules.to.r
5fe60 65 73 6f 6c 76 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 22 29 3b 0a 7d 0a 0a 0a 20 24 6f 70 65 esolve.dependencies");.}....$ope
5fe80 72 61 74 69 6f 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 rations.=.$this->processDevPacka
5fea0 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 ges($localRepo,.$pool,.$policy,.
5fec0 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 $repositories,.$installedRepo,.$
5fee0 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 6f lockedRepository,.$installFromLo
5ff00 63 6b 2c 20 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 ck,.$withDevReqs,.'force-updates
5ff20 27 2c 20 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 ',.$operations);....if.(!$operat
5ff40 69 6f 6e 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 ions).{.$this->io->writeError('N
5ff60 6f 74 68 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 othing.to.install.or.update');.}
5ff80 0a 0a 24 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 ..$operations.=.$this->movePlugi
5ffa0 6e 73 54 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 nsToFront($operations);.$operati
5ffc0 6f 6e 73 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 ons.=.$this->moveUninstallsToFro
5ffe0 6e 74 28 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 nt($operations);..foreach.($oper
60000 61 74 69 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 ations.as.$operation).{...if.('i
60020 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 nstall'.===.$operation->getJobTy
60040 70 65 28 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 pe()).{.foreach.($operation->get
60060 50 61 63 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 Package()->getSuggests().as.$tar
60080 67 65 74 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 get.=>.$reason).{.$this->suggest
600a0 65 64 50 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 edPackages[].=.array(.'source'.=
600c0 3e 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 67 65 74 50 >.$operation->getPackage()->getP
600e0 72 65 74 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 rettyName(),.'target'.=>.$target
60100 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 0a 0a ,.'reason'.=>.$reason,.);.}.}...
60120 20 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 .if.(!$installFromLock).{.$packa
60140 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 ge.=.null;.if.('update'.===.$ope
60160 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ration->getJobType()).{.$package
60180 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 .=.$operation->getTargetPackage(
601a0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 );.}.elseif.('install'.===.$oper
601c0 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 ation->getJobType()).{.$package.
601e0 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 =.$operation->getPackage();.}.if
60200 20 28 24 70 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 .($package.&&.$package->isDev())
60220 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d .{.$references.=.$this->package-
60240 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 >getReferences();.if.(isset($ref
60260 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b erences[$package->getName()])).{
60280 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 .$package->setSourceReference($r
602a0 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b eferences[$package->getName()]);
602c0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 .$package->setDistReference($ref
602e0 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d erences[$package->getName()]);.}
60300 0a 7d 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e .}.if.('update'.===.$operation->
60320 67 65 74 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 getJobType().&&.$operation->getT
60340 61 72 67 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 argetPackage()->isDev().&&.$oper
60360 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 2d 3e 67 65 74 56 65 ation->getTargetPackage()->getVe
60380 72 73 69 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 rsion().===.$operation->getIniti
603a0 61 6c 50 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 28 21 24 alPackage()->getVersion().&&.(!$
603c0 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 2d 3e 67 operation->getTargetPackage()->g
603e0 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 7c 7c 20 24 6f 70 65 72 61 74 69 6f etSourceReference().||.$operatio
60400 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 72 63 65 n->getTargetPackage()->getSource
60420 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 65 74 49 Reference().===.$operation->getI
60440 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 65 72 65 nitialPackage()->getSourceRefere
60460 6e 63 65 28 29 29 0a 26 26 20 28 21 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 nce()).&&.(!$operation->getTarge
60480 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 7c tPackage()->getDistReference().|
604a0 7c 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 |.$operation->getTargetPackage()
604c0 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 3d 3d 3d 20 24 6f 70 65 72 61 74 ->getDistReference().===.$operat
604e0 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 3e 67 65 74 44 69 73 ion->getInitialPackage()->getDis
60500 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d tReference()).).{.if.($this->io-
60520 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 72 >isDebug()).{.$this->io->writeEr
60540 72 6f 72 28 27 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 ror('..-.Skipping.update.of.'..$
60560 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 2d 3e 67 operation->getTargetPackage()->g
60580 65 74 50 72 65 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 etPrettyName().'.to.the.same.ref
605a0 65 72 65 6e 63 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 erence-locked.version');.$this->
605c0 69 6f 2d 3e 77 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 io->writeError('');.}..continue;
605e0 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c .}.}..$event.=.'Composer\Install
60600 65 72 5c 50 61 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 er\PackageEvents::PRE_PACKAGE_'.
60620 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 strtoupper($operation->getJobTyp
60640 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 e());.if.(defined($event).&&.$th
60660 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 is->runScripts).{.$this->eventDi
60680 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 spatcher->dispatchPackageEvent(c
606a0 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c onstant($event),.$this->devMode,
606c0 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 2c .$policy,.$pool,.$installedRepo,
606e0 20 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 .$request,.$operations,.$operati
60700 6f 6e 29 3b 0a 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 on);.}....if.($this->dryRun.&&.f
60720 61 6c 73 65 20 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 alse.===.strpos($operation->getJ
60740 6f 62 54 79 70 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 obType(),.'Alias')).{.$this->io-
60760 3e 77 72 69 74 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 >writeError('..-.'...$operation)
60780 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 27 29 3b 0a 7d 20 65 ;.$this->io->writeError('');.}.e
607a0 6c 73 65 69 66 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 lseif.($this->io->isDebug().&&.f
607c0 61 6c 73 65 20 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 alse.!==.strpos($operation->getJ
607e0 6f 62 54 79 70 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 obType(),.'Alias')).{.$this->io-
60800 3e 77 72 69 74 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 >writeError('..-.'...$operation)
60820 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 27 29 3b 0a 7d 0a 0a ;.$this->io->writeError('');.}..
60840 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 65 78 65 63 $this->installationManager->exec
60860 75 74 65 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 0a 0a 20 ute($localRepo,.$operation);....
60880 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d if.($this->verbose.&&.$this->io-
608a0 3e 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 6f 70 >isVeryVerbose().&&.in_array($op
608c0 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 69 6e eration->getJobType(),.array('in
608e0 73 74 61 6c 6c 27 2c 20 27 75 70 64 61 74 65 27 29 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 stall',.'update'))).{.$reason.=.
60900 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 69 66 20 28 24 72 65 $operation->getReason();.if.($re
60920 61 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 73 77 69 74 63 68 20 28 ason.instanceof.Rule).{.switch.(
60940 24 72 65 61 73 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 29 20 7b 0a 63 61 73 65 20 52 75 6c $reason->getReason()).{.case.Rul
60960 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e e::RULE_JOB_INSTALL:.$this->io->
60980 77 72 69 74 65 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 writeError('....REASON:.Required
609a0 20 62 79 20 72 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 .by.root:.'.$reason->getPrettySt
609c0 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 72 69 74 65 45 72 ring($pool));.$this->io->writeEr
609e0 72 6f 72 28 27 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 ror('');.break;.case.Rule::RULE_
60a00 50 41 43 4b 41 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 PACKAGE_REQUIRES:.$this->io->wri
60a20 74 65 45 72 72 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 teError('....REASON:.'.$reason->
60a40 67 65 74 50 72 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 getPrettyString($pool));.$this->
60a60 69 6f 2d 3e 77 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 io->writeError('');.break;.}.}.}
60a80 0a 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 ..$event.=.'Composer\Installer\P
60aa0 61 63 6b 61 67 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 ackageEvents::POST_PACKAGE_'.str
60ac0 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 toupper($operation->getJobType()
60ae0 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 69 73 2d );.if.(defined($event).&&.$this-
60b00 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 >runScripts).{.$this->eventDispa
60b20 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 6f 6e 73 tcher->dispatchPackageEvent(cons
60b40 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 70 tant($event),.$this->devMode,.$p
60b60 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 24 72 olicy,.$pool,.$installedRepo,.$r
60b80 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 6e 29 equest,.$operations,.$operation)
60ba0 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 6c 6f 63 61 ;.}..if.(!$this->dryRun).{.$loca
60bc0 6c 52 65 70 6f 2d 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d lRepo->write();.}.}..if.(!$this-
60be0 3e 64 72 79 52 75 6e 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 61 63 6b 61 >dryRun).{...$this->processPacka
60c00 67 65 55 72 6c 73 28 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 6c 6f 63 61 6c 52 65 70 geUrls($pool,.$policy,.$localRep
60c20 6f 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 77 o,.$repositories);.$localRepo->w
60c40 72 69 74 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rite();.}..return.0;.}..........
60c60 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 6c 75 67 69 6e .....private.function.movePlugin
60c80 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 0a 7b 0a 24 69 sToFront(array.$operations).{.$i
60ca0 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 61 63 68 20 28 nstallerOps.=.array();.foreach.(
60cc0 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 20 7b 0a 69 66 $operations.as.$idx.=>.$op).{.if
60ce0 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 72 61 74 69 6f .($op.instanceof.InstallOperatio
60d00 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 6b 61 67 65 28 n).{.$package.=.$op->getPackage(
60d20 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 20 55 70 64 61 );.}.elseif.($op.instanceof.Upda
60d40 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 6f 70 2d 3e 67 teOperation).{.$package.=.$op->g
60d60 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 0a 63 6f 6e 74 etTargetPackage();.}.else.{.cont
60d80 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 79 70 65 28 29 inue;.}..if.($package->getType()
60da0 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 70 61 63 6b 61 .===.'composer-plugin'.||.$packa
60dc0 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 2d 69 6e 73 74 ge->getType().===.'composer-inst
60de0 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 61 79 5f 6b 65 aller').{...$requires.=.array_ke
60e00 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 3b 0a 66 6f 72 ys($package->getRequires());.for
60e20 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 3e 20 24 72 65 each.($requires.as.$index.=>.$re
60e40 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 2d 70 6c 75 67 q).{.if.($req.===.'composer-plug
60e60 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 6f 72 6d 52 65 in-api'.||.preg_match(PlatformRe
60e80 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
60ea0 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 24 69 6e 64 65 ,.$req)).{.unset($requires[$inde
60ec0 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 69 72 65 73 29 x]);.}.}...if.(!count($requires)
60ee0 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 5b 5d 20 3d 20 24 6f 70 3b 0a 75 6e 73 65 74 ).{.$installerOps[].=.$op;.unset
60f00 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 0a 72 65 74 75 ($operations[$idx]);.}.}.}..retu
60f20 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 2c 20 24 6f rn.array_merge($installerOps,.$o
60f40 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 74 65 20 66 75 perations);.}.........private.fu
60f60 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 74 28 61 72 72 nction.moveUninstallsToFront(arr
60f80 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 73 20 3d 20 61 ay.$operations).{.$uninstOps.=.a
60fa0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 rray();.foreach.($operations.as.
60fc0 24 69 64 78 20 3d 3e 20 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f $idx.=>.$op).{.if.($op.instanceo
60fe0 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 69 6e 73 74 4f f.UninstallOperation).{.$uninstO
61000 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 6e 73 5b 24 69 ps[].=.$op;.unset($operations[$i
61020 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 67 65 28 24 75 dx]);.}.}..return.array_merge($u
61040 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 0a 0a 0a 0a 0a ninstOps,.$operations);.}.......
61060 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
61080 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
610a0 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.(!$
610c0 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
610e0 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
61100 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
61120 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
61140 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();..
61160 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
61180 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
611a0 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.
611c0 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 Constraint('=',.$package->getVer
611e0 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 sion());.$constraint->setPrettyS
61200 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e tring($package->getPrettyVersion
61220 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 67 65 74 4e 61 6d 65 ());.$requires[$package->getName
61240 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 73 65 20 7b 0a 24 6d ()].=.$constraint;.}.}.else.{.$m
61260 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 inimumStability.=.$this->package
61280 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c ->getMinimumStability();.$stabil
612a0 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 ityFlags.=.$this->package->getSt
612c0 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 73 20 3d 20 24 74 68 abilityFlags();..$requires.=.$th
612e0 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 69 66 20 28 is->package->getRequires();.if.(
61300 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 $withDevReqs).{.$requires.=.arra
61320 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 y_merge($requires,.$this->packag
61340 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 0a 0a 24 72 6f 6f 74 e->getDevRequires());.}.}..$root
61360 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 Constraints.=.array();.foreach.(
61380 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 $requires.as.$req.=>.$constraint
613a0 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 61 74 66 6f 72 6d 52 ).{...if.($this->ignorePlatformR
613c0 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 6d 52 65 70 6f 73 69 eqs.&&.preg_match(PlatformReposi
613e0 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 72 tory::PLATFORM_PACKAGE_REGEX,.$r
61400 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 6f 6e 73 74 72 61 69 eq)).{.continue;.}.if.($constrai
61420 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 6f 74 43 6f 6e 73 74 nt.instanceof.Link).{.$rootConst
61440 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 74 2d 3e 67 65 74 43 raints[$req].=.$constraint->getC
61460 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 6f 74 43 6f 6e 73 74 onstraint();.}.else.{.$rootConst
61480 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 74 3b 0a 7d 0a 7d 0a raints[$req].=.$constraint;.}.}.
614a0 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 53 74 61 62 69 6c 69 .return.new.Pool($minimumStabili
614c0 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 74 43 6f 6e 73 74 72 ty,.$stabilityFlags,.$rootConstr
614e0 61 69 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 aints);.}.....private.function.c
61500 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 65 20 3d 20 reatePolicy().{.$preferStable.=.
61520 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 69 66 20 28 null;.$preferLowest.=.null;.if.(
61540 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 6b 65 72 2d !$this->update.&&.$this->locker-
61560 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 20 3d 20 24 >isLocked()).{.$preferStable.=.$
61580 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 65 28 29 3b this->locker->getPreferStable();
615a0 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 65 72 2d 3e .$preferLowest.=.$this->locker->
615c0 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 28 6e 75 6c getPreferLowest();.}.....if.(nul
615e0 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 65 72 53 74 l.===.$preferStable).{.$preferSt
61600 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 7c 20 24 74 able.=.$this->preferStable.||.$t
61620 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 65 28 29 3b his->package->getPreferStable();
61640 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 74 29 20 7b .}.if.(null.===.$preferLowest).{
61660 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 65 72 4c 6f .$preferLowest.=.$this->preferLo
61680 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 6f 6c 69 63 west;.}..return.new.DefaultPolic
616a0 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 73 74 29 3b y($preferStable,.$preferLowest);
616c0 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
616e0 52 65 71 75 65 73 74 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 72 6f Request(RootPackageInterface.$ro
61700 6f 74 50 61 63 6b 61 67 65 2c 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 70 otPackage,.PlatformRepository.$p
61720 6c 61 74 66 6f 72 6d 52 65 70 6f 29 0a 7b 0a 24 72 65 71 75 65 73 74 20 3d 20 6e 65 77 20 52 65 latformRepo).{.$request.=.new.Re
61740 71 75 65 73 74 28 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 quest();..$constraint.=.new.Cons
61760 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 traint('=',.$rootPackage->getVer
61780 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 sion());.$constraint->setPrettyS
617a0 74 72 69 6e 67 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 tring($rootPackage->getPrettyVer
617c0 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 6f 6f 74 sion());.$request->install($root
617e0 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 Package->getName(),.$constraint)
61800 3b 0a 0a 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 ;..$fixedPackages.=.$platformRep
61820 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 o->getPackages();.if.($this->add
61840 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 61 itionalInstalledRepository).{.$a
61860 64 64 69 74 69 6f 6e 61 6c 46 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e dditionalFixedPackages.=.$this->
61880 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 additionalInstalledRepository->g
618a0 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 etPackages();.$fixedPackages.=.a
618c0 72 72 61 79 5f 6d 65 72 67 65 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 2c 20 24 61 64 64 69 rray_merge($fixedPackages,.$addi
618e0 74 69 6f 6e 61 6c 46 69 78 65 64 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 70 72 tionalFixedPackages);.}......$pr
61900 6f 76 69 64 65 64 20 3d 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 ovided.=.$rootPackage->getProvid
61920 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 61 73 es();.foreach.($fixedPackages.as
61940 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 43 .$package).{.$constraint.=.new.C
61960 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 onstraint('=',.$package->getVers
61980 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 ion());.$constraint->setPrettySt
619a0 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 ring($package->getPrettyVersion(
619c0 29 29 3b 0a 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ));....if.($package->getReposito
619e0 72 79 28 29 20 21 3d 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 0a 7c 7c 20 21 69 73 73 65 74 ry().!==.$platformRepo.||.!isset
61a00 28 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 ($provided[$package->getName()])
61a20 0a 7c 7c 20 21 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 .||.!$provided[$package->getName
61a40 28 29 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 6d 61 74 63 68 65 73 28 24 63 ()]->getConstraint()->matches($c
61a60 6f 6e 73 74 72 61 69 6e 74 29 0a 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 66 69 78 28 24 70 61 onstraint).).{.$request->fix($pa
61a80 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a ckage->getName(),.$constraint);.
61aa0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a }.}..return.$request;.}.........
61ac0 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 73 73 44 65 ......private.function.processDe
61ae0 76 50 61 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f vPackages($localRepo,.$pool,.$po
61b00 6c 69 63 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 licy,.$repositories,.$installedR
61b20 65 70 6f 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 6c epo,.$lockedRepository,.$install
61b40 46 72 6f 6d 4c 6f 63 6b 2c 20 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 24 74 61 73 6b 2c 20 61 FromLock,.$withDevReqs,.$task,.a
61b60 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 rray.$operations.=.null).{.if.($
61b80 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 6e 75 6c 6c task.===.'force-updates'.&&.null
61ba0 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 .===.$operations).{.throw.new.\I
61bc0 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 4d 69 73 73 69 6e 67 nvalidArgumentException('Missing
61be0 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 72 67 75 6d 65 6e 74 27 29 3b 0a 7d 0a 69 66 20 28 24 74 .operations.argument');.}.if.($t
61c00 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 6f 70 65 72 61 74 ask.===.'force-links').{.$operat
61c20 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c ions.=.array();.}..if.(!$install
61c40 46 72 6f 6d 4c 6f 63 6b 20 26 26 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 FromLock.&&.$this->updateWhiteli
61c60 73 74 29 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 69 73 2d 3e st).{.$currentPackages.=.$this->
61c80 67 65 74 43 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 28 24 77 69 74 68 44 65 76 52 65 71 73 2c getCurrentPackages($withDevReqs,
61ca0 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c .$installedRepo);.}..foreach.($l
61cc0 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 ocalRepo->getCanonicalPackages()
61ce0 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d .as.$package).{...if.(!$package-
61d00 3e 69 73 44 65 76 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 >isDev()).{.continue;.}....forea
61d20 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b ch.($operations.as.$operation).{
61d40 0a 69 66 20 28 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 .if.(('update'.===.$operation->g
61d60 65 74 4a 6f 62 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e etJobType().&&.$operation->getIn
61d80 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 itialPackage()->equals($package)
61da0 29 0a 7c 7c 20 28 27 75 6e 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e ).||.('uninstall'.===.$operation
61dc0 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 ->getJobType().&&.$operation->ge
61de0 74 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 tPackage()->equals($package)).).
61e00 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c {.continue.2;.}.}....if.($instal
61e20 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 lFromLock).{.foreach.($lockedRep
61e40 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e ository->findPackages($package->
61e60 67 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a getName()).as.$lockedPackage).{.
61e80 69 66 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 if.($lockedPackage->isDev().&&.$
61ea0 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 3d 3d 3d 20 lockedPackage->getVersion().===.
61ec0 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 69 66 20 28 24 74 $package->getVersion()).{.if.($t
61ee0 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 70 61 63 6b 61 67 ask.===.'force-links').{.$packag
61f00 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 e->setRequires($lockedPackage->g
61f20 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 etRequires());.$package->setConf
61f40 6c 69 63 74 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 licts($lockedPackage->getConflic
61f60 74 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6c 6f ts());.$package->setProvides($lo
61f80 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 ckedPackage->getProvides());.$pa
61fa0 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 ckage->setReplaces($lockedPackag
61fc0 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 e->getReplaces());.}.elseif.($ta
61fe0 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 69 66 20 28 28 24 sk.===.'force-updates').{.if.(($
62000 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 lockedPackage->getSourceReferenc
62020 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 53 6f 75 72 63 65 e().&&.$lockedPackage->getSource
62040 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 53 6f 75 Reference().!==.$package->getSou
62060 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 0a 7c 7c 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 rceReference()).||.($lockedPacka
62080 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 20 24 6c 6f 63 6b 65 ge->getDistReference().&&.$locke
620a0 64 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 21 3d 3d dPackage->getDistReference().!==
620c0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 .$package->getDistReference()).)
620e0 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 64 61 74 65 4f 70 65 .{.$operations[].=.new.UpdateOpe
62100 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 ration($package,.$lockedPackage)
62120 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 ;.}.}..break;.}.}.}.else.{...if.
62140 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 ($this->update).{...if.($this->u
62160 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 pdateWhitelist.&&.!$this->isUpda
62180 74 65 61 62 6c 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 teable($package)).{...foreach.($
621a0 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 29 20 currentPackages.as.$curPackage).
621c0 7b 0a 69 66 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 63 {.if.($curPackage->isDev().&&.$c
621e0 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 urPackage->getName().===.$packag
62200 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 e->getName().&&.$curPackage->get
62220 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 72 73 69 Version().===.$package->getVersi
62240 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 6c 69 6e on()).{.if.($task.===.'force-lin
62260 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 24 63 75 ks').{.$package->setRequires($cu
62280 72 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 63 6b 61 rPackage->getRequires());.$packa
622a0 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 ge->setConflicts($curPackage->ge
622c0 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 72 6f 76 tConflicts());.$package->setProv
622e0 69 64 65 73 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 29 ides($curPackage->getProvides())
62300 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 63 75 72 50 61 63 6b ;.$package->setReplaces($curPack
62320 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 age->getReplaces());.}.elseif.($
62340 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 69 66 20 28 task.===.'force-updates').{.if.(
62360 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 ($curPackage->getSourceReference
62380 28 29 20 26 26 20 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 ().&&.$curPackage->getSourceRefe
623a0 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 rence().!==.$package->getSourceR
623c0 65 66 65 72 65 6e 63 65 28 29 29 0a 7c 7c 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 eference()).||.($curPackage->get
623e0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 63 75 72 50 61 63 6b 61 67 65 2d 3e DistReference().&&.$curPackage->
62400 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d getDistReference().!==.$package-
62420 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 20 7b 0a 24 6f 70 65 72 61 74 >getDistReference()).).{.$operat
62440 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 ions[].=.new.UpdateOperation($pa
62460 63 6b 61 67 65 2c 20 24 63 75 72 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b ckage,.$curPackage);.}.}..break;
62480 0a 7d 0a 7d 0a 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 .}.}..continue;.}....$matches.=.
624a0 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 $pool->whatProvides($package->ge
624c0 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 tName(),.new.Constraint('=',.$pa
624e0 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 65 61 63 68 20 28 ckage->getVersion()));.foreach.(
62500 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 63 68 29 20 7b 0a $matches.as.$index.=>.$match).{.
62520 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 74 52 65 70 6f 73 ..if.(!in_array($match->getRepos
62540 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 75 65 29 29 20 7b itory(),.$repositories,.true)).{
62560 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 69 6e .unset($matches[$index]);.contin
62580 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 6d 65 28 29 20 21 ue;.}....if.($match->getName().!
625a0 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 75 6e 73 65 74 28 ==.$package->getName()).{.unset(
625c0 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 65 3b 0a 7d 0a 0a $matches[$index]);.continue;.}..
625e0 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 3e 67 65 74 49 64 $matches[$index].=.$match->getId
62600 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 6d 61 74 63 68 65 ();.}....if.($matches.&&.$matche
62620 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 72 65 64 50 61 63 6b s.=.$policy->selectPreferredPack
62640 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 65 73 29 29 20 ages($pool,.array(),.$matches)).
62660 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 72 61 6c 54 6f {.$newPackage.=.$pool->literalTo
62680 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 24 74 61 73 6b Package($matches[0]);..if.($task
626a0 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 61 63 6b 61 67 .===.'force-links'.&&.$newPackag
626c0 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 24 6e 65 77 50 e).{.$package->setRequires($newP
626e0 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 63 6b 61 67 65 ackage->getRequires());.$package
62700 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 3e 67 65 74 43 ->setConflicts($newPackage->getC
62720 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 72 6f 76 69 64 onflicts());.$package->setProvid
62740 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 28 29 29 3b 0a es($newPackage->getProvides());.
62760 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 61 63 6b 61 67 $package->setReplaces($newPackag
62780 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 74 61 73 6b 20 e->getReplaces());.}..if.($task.
627a0 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 50 61 63 6b 61 ===.'force-updates'.&&.$newPacka
627c0 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 6f 75 72 63 65 ge.&&.(.(($newPackage->getSource
627e0 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 3e 67 65 74 53 Reference().&&.$newPackage->getS
62800 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 67 65 2d 3e 67 ourceReference().!==.$package->g
62820 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 65 77 50 61 63 etSourceReference()).||.($newPac
62840 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 20 24 6e 65 77 kage->getDistReference().&&.$new
62860 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 21 3d 3d 20 Package->getDistReference().!==.
62880 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 0a 29 0a $package->getDistReference()).).
628a0 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 64 61 74 65 4f )).{.$operations[].=.new.UpdateO
628c0 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 61 67 65 29 3b peration($package,.$newPackage);
628e0 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 65 2d 75 70 64 .}.}.}..if.($task.===.'force-upd
62900 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 68 69 73 2d 3e ates').{...$references.=.$this->
62920 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 69 66 20 28 69 package->getReferences();..if.(i
62940 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 67 65 74 4e 61 sset($references[$package->getNa
62960 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 61 67 65 2d 3e me()]).&&.$references[$package->
62980 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 74 53 6f 75 72 getName()].!==.$package->getSour
629a0 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 6f 6e 73 5b 5d ceReference()).{...$operations[]
629c0 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 2c .=.new.UpdateOperation($package,
629e0 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 72 65 74 75 72 .clone.$package);.}.}.}.}..retur
62a00 6e 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 n.$operations;.}........private.
62a20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 28 24 77 69 74 function.getCurrentPackages($wit
62a40 68 44 65 76 52 65 71 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 0a 7b 0a 69 66 20 28 hDevReqs,.$installedRepo).{.if.(
62a60 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 74 72 79 $this->locker->isLocked()).{.try
62a80 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b .{.return.$this->locker->getLock
62aa0 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 2d 3e 67 65 74 50 edRepository($withDevReqs)->getP
62ac0 61 63 6b 61 67 65 73 28 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 ackages();.}.catch.(\RuntimeExce
62ae0 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b ption.$e).{...return.$this->lock
62b00 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 er->getLockedRepository()->getPa
62b20 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 64 ckages();.}.}..return.$installed
62b40 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 Repo->getPackages();.}.....priva
62b60 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 69 te.function.getRootAliases().{.i
62b80 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 6b f.(!$this->update.&&.$this->lock
62ba0 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 er->isLocked()).{.$aliases.=.$th
62bc0 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 20 65 6c 73 65 is->locker->getAliases();.}.else
62be0 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 .{.$aliases.=.$this->package->ge
62c00 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 tAliases();.}..$normalizedAliase
62c20 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 s.=.array();..foreach.($aliases.
62c40 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 5b as.$alias).{.$normalizedAliases[
62c60 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 5d 5b 24 61 6c 69 61 73 5b 27 76 65 72 73 69 $alias['package']][$alias['versi
62c80 6f 6e 27 5d 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 on']].=.array(.'alias'.=>.$alias
62ca0 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e ['alias'],.'alias_normalized'.=>
62cc0 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 0a 29 3b 0a .$alias['alias_normalized'],.);.
62ce0 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 3b 0a 7d 0a }..return.$normalizedAliases;.}.
62d00 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 73 73 50 .......private.function.processP
62d20 61 63 6b 61 67 65 55 72 6c 73 28 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 6c 6f 63 61 ackageUrls($pool,.$policy,.$loca
62d40 6c 52 65 70 6f 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 69 66 20 28 21 24 74 68 lRepo,.$repositories).{.if.(!$th
62d60 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 is->update).{.return;.}..foreach
62d80 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 .($localRepo->getCanonicalPackag
62da0 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 24 6d 61 74 63 68 65 73 20 3d es().as.$package).{...$matches.=
62dc0 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 .$pool->whatProvides($package->g
62de0 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 etName(),.new.Constraint('=',.$p
62e00 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 65 61 63 68 20 ackage->getVersion()));.foreach.
62e20 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 63 68 29 20 7b ($matches.as.$index.=>.$match).{
62e40 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 74 52 65 70 6f ...if.(!in_array($match->getRepo
62e60 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 75 65 29 29 20 sitory(),.$repositories,.true)).
62e80 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 69 {.unset($matches[$index]);.conti
62ea0 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 6d 65 28 29 20 nue;.}....if.($match->getName().
62ec0 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 75 6e 73 65 74 !==.$package->getName()).{.unset
62ee0 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 65 3b 0a 7d 0a ($matches[$index]);.continue;.}.
62f00 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 3e 67 65 74 49 .$matches[$index].=.$match->getI
62f20 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 6d 61 74 63 68 d();.}....if.($matches.&&.$match
62f40 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 72 65 64 50 61 63 es.=.$policy->selectPreferredPac
62f60 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 65 73 29 29 kages($pool,.array(),.$matches))
62f80 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 72 61 6c 54 .{.$newPackage.=.$pool->literalT
62fa0 6f 50 61 63 6b 61 67 65 28 24 6d 61 74 63 68 65 73 5b 30 5d 29 3b 0a 0a 0a 20 24 73 6f 75 72 63 oPackage($matches[0]);....$sourc
62fc0 65 55 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 eUrl.=.$package->getSourceUrl();
62fe0 0a 24 6e 65 77 53 6f 75 72 63 65 55 72 6c 20 3d 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 .$newSourceUrl.=.$newPackage->ge
63000 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 0a 69 66 20 28 24 73 6f 75 72 63 65 55 72 6c 20 21 3d tSourceUrl();..if.($sourceUrl.!=
63020 3d 20 24 6e 65 77 53 6f 75 72 63 65 55 72 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 =.$newSourceUrl).{.$package->set
63040 53 6f 75 72 63 65 54 79 70 65 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 SourceType($newPackage->getSourc
63060 65 54 79 70 65 28 29 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 eType());.$package->setSourceUrl
63080 28 24 6e 65 77 53 6f 75 72 63 65 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f ($newSourceUrl);.$package->setSo
630a0 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f urceReference($newPackage->getSo
630c0 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 70 72 65 urceReference());.}......if.(pre
630e0 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 28 3f 3a 77 77 77 5c 2e 29 g_match('{^https?://(?:(?:www\.)
63100 3f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 7c 28 61 70 69 5c 2e 29 3f 67 69 74 68 75 62 5c 2e ?bitbucket\.org|(api\.)?github\.
63120 63 6f 6d 29 2f 7d 27 2c 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c com)/}',.$newPackage->getDistUrl
63140 28 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 6e 65 77 ())).{.$package->setDistUrl($new
63160 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a Package->getDistUrl());.}.}.}.}.
63180 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 6c 61 74 66 .....private.function.aliasPlatf
631a0 6f 72 6d 50 61 63 6b 61 67 65 73 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 ormPackages(PlatformRepository.$
631c0 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 platformRepo,.$aliases).{.foreac
631e0 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 h.($aliases.as.$package.=>.$vers
63200 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 ions).{.foreach.($versions.as.$v
63220 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 ersion.=>.$alias).{.$packages.=.
63240 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 $platformRepo->findPackages($pac
63260 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 kage,.$version);.foreach.($packa
63280 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 ges.as.$package).{.$aliasPackage
632a0 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 .=.new.AliasPackage($package,.$a
632c0 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 lias['alias_normalized'],.$alias
632e0 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f ['alias']);.$aliasPackage->setRo
63300 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 otPackageAlias(true);.$platformR
63320 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a epo->addPackage($aliasPackage);.
63340 7d 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 6f 6e 20 69 73 }.}.}.}......private.function.is
63360 55 70 64 61 74 65 61 62 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 Updateable(PackageInterface.$pac
63380 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c kage).{.if.(!$this->updateWhitel
633a0 69 73 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e ist).{.throw.new.\LogicException
633c0 28 27 69 73 55 70 64 61 74 65 61 62 6c 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 ('isUpdateable.should.only.be.ca
633e0 6c 6c 65 64 20 77 68 65 6e 20 61 20 77 68 69 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 lled.when.a.whitelist.is.present
63400 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 ');.}..foreach.($this->updateWhi
63420 74 65 6c 69 73 74 20 61 73 20 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 3e telist.as.$whiteListedPattern.=>
63440 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 74 74 65 72 6e 52 65 67 65 78 70 20 3d 20 24 74 68 69 73 .$void).{.$patternRegexp.=.$this
63460 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 54 6f 52 65 67 65 78 70 28 24 77 68 69 74 65 4c 69 73 74 ->packageNameToRegexp($whiteList
63480 65 64 50 61 74 74 65 72 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 edPattern);.if.(preg_match($patt
634a0 65 72 6e 52 65 67 65 78 70 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 ernRegexp,.$package->getName()))
634c0 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .{.return.true;.}.}..return.fals
634e0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 63 e;.}........private.function.pac
63500 6b 61 67 65 4e 61 6d 65 54 6f 52 65 67 65 78 70 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 kageNameToRegexp($whiteListedPat
63520 74 65 72 6e 29 0a 7b 0a 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 tern).{.$cleanedWhiteListedPatte
63540 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2a 27 2c 20 27 2e 2a 27 2c 20 70 72 rn.=.str_replace('\\*',.'.*',.pr
63560 65 67 5f 71 75 6f 74 65 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 29 3b 0a eg_quote($whiteListedPattern));.
63580 0a 72 65 74 75 72 6e 20 22 7b 5e 22 20 2e 20 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 .return."{^"...$cleanedWhiteList
635a0 65 64 50 61 74 74 65 72 6e 20 2e 20 22 24 7d 69 22 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 edPattern..."$}i";.}......privat
635c0 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 e.function.extractPlatformRequir
635e0 65 6d 65 6e 74 73 28 24 6c 69 6e 6b 73 29 0a 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d ements($links).{.$platformReqs.=
63600 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 69 .array();.foreach.($links.as.$li
63620 6e 6b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 nk).{.if.(preg_match(PlatformRep
63640 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 2c ository::PLATFORM_PACKAGE_REGEX,
63660 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 29 20 7b 0a 24 70 6c 61 74 66 6f 72 .$link->getTarget())).{.$platfor
63680 6d 52 65 71 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e mReqs[$link->getTarget()].=.$lin
636a0 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 k->getPrettyConstraint();.}.}..r
636c0 65 74 75 72 6e 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eturn.$platformReqs;.}..........
636e0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 55 70 ....private.function.whitelistUp
63700 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 dateDependencies($localRepo,.$de
63720 76 4d 6f 64 65 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 61 72 72 61 vMode,.array.$rootRequires,.arra
63740 79 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 y.$rootDevRequires).{.if.(!$this
63760 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a ->updateWhitelist).{.return;.}..
63780 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b $requiredPackageNames.=.array();
637a0 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 .foreach.(array_merge($rootRequi
637c0 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 20 61 73 20 24 72 65 71 75 69 res,.$rootDevRequires).as.$requi
637e0 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 5b 5d 20 3d 20 re).{.$requiredPackageNames[].=.
63800 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 $require->getTarget();.}..if.($d
63820 65 76 4d 6f 64 65 29 20 7b 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f evMode).{.$rootRequires.=.array_
63840 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 merge($rootRequires,.$rootDevReq
63860 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 uires);.}..$skipPackages.=.array
63880 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 61 73 20 24 72 ();.foreach.($rootRequires.as.$r
638a0 65 71 75 69 72 65 29 20 7b 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 equire).{.$skipPackages[$require
638c0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 ->getTarget()].=.true;.}..$pool.
638e0 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 =.new.Pool;.$pool->addRepository
63900 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a ($localRepo);..$seen.=.array();.
63920 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 20 3d 20 61 72 72 .$rootRequiredPackageNames.=.arr
63940 61 79 5f 6b 65 79 73 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 29 3b 0a 0a 66 6f 72 65 61 63 68 ay_keys($rootRequires);..foreach
63960 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 70 61 63 .($this->updateWhitelist.as.$pac
63980 6b 61 67 65 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 kageName.=>.$void).{.$packageQue
639a0 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 0a 24 64 65 70 50 61 63 6b 61 67 65 ue.=.new.\SplQueue;..$depPackage
639c0 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 s.=.$pool->whatProvides($package
639e0 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 75 69 72 65 64 50 61 63 6b Name);..$nameMatchesRequiredPack
63a00 61 67 65 20 3d 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 age.=.in_array($packageName,.$re
63a20 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 69 66 quiredPackageNames,.true);....if
63a40 20 28 21 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 .(!$nameMatchesRequiredPackage).
63a60 7b 0a 24 77 68 69 74 65 6c 69 73 74 50 61 74 74 65 72 6e 52 65 67 65 78 70 20 3d 20 24 74 68 69 {.$whitelistPatternRegexp.=.$thi
63a80 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 54 6f 52 65 67 65 78 70 28 24 70 61 63 6b 61 67 65 4e s->packageNameToRegexp($packageN
63aa0 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b ame);.foreach.($rootRequiredPack
63ac0 61 67 65 4e 61 6d 65 73 20 61 73 20 24 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 ageNames.as.$rootRequiredPackage
63ae0 4e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 Name).{.if.(preg_match($whitelis
63b00 74 50 61 74 74 65 72 6e 52 65 67 65 78 70 2c 20 24 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 tPatternRegexp,.$rootRequiredPac
63b20 6b 61 67 65 4e 61 6d 65 29 29 20 7b 0a 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 75 69 72 65 kageName)).{.$nameMatchesRequire
63b40 64 50 61 63 6b 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 dPackage.=.true;.break;.}.}.}..i
63b60 66 20 28 63 6f 75 6e 74 28 24 64 65 70 50 61 63 6b 61 67 65 73 29 20 3d 3d 20 30 20 26 26 20 21 f.(count($depPackages).==.0.&&.!
63b80 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 $nameMatchesRequiredPackage.&&.!
63ba0 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 61 72 72 61 79 28 27 6e 6f in_array($packageName,.array('no
63bc0 74 68 69 6e 67 27 2c 20 27 6c 6f 63 6b 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 thing',.'lock'))).{.$this->io->w
63be0 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 65 20 22 27 20 2e riteError('<warning>Package."'..
63c00 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 22 20 6c 69 73 74 65 64 20 66 6f 72 20 75 70 .$packageName...'".listed.for.up
63c20 64 61 74 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 2e 20 49 67 6e 6f 72 69 6e 67 2e date.is.not.installed..Ignoring.
63c40 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 50 61 </warning>');.}..foreach.($depPa
63c60 63 6b 61 67 65 73 20 61 73 20 24 64 65 70 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 ckages.as.$depPackage).{.$packag
63c80 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 64 65 70 50 61 63 6b 61 67 65 29 3b 0a 7d 0a eQueue->enqueue($depPackage);.}.
63ca0 0a 77 68 69 6c 65 20 28 21 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 .while.(!$packageQueue->isEmpty(
63cc0 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 64 )).{.$package.=.$packageQueue->d
63ce0 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 24 70 61 63 6b 61 equeue();.if.(isset($seen[$packa
63d00 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 ge->getId()])).{.continue;.}..$s
63d20 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 een[$package->getId()].=.true;.$
63d40 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e this->updateWhitelist[$package->
63d60 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e getName()].=.true;..if.(!$this->
63d80 77 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 whitelistDependencies).{.continu
63da0 65 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 e;.}..$requires.=.$package->getR
63dc0 65 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 equires();..foreach.($requires.a
63de0 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 3d s.$require).{.$requirePackages.=
63e00 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 72 65 71 75 69 72 65 2d 3e 67 .$pool->whatProvides($require->g
63e20 65 74 54 61 72 67 65 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 50 etTarget());..foreach.($requireP
63e40 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 ackages.as.$requirePackage).{.if
63e60 20 28 69 73 73 65 74 28 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 50 61 .(isset($skipPackages[$requirePa
63e80 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a ckage->getName()])).{.continue;.
63ea0 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 }.$packageQueue->enqueue($requir
63ec0 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 ePackage);.}.}.}.}.}.........pri
63ee0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 vate.function.mockLocalRepositor
63f00 69 65 73 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 29 0a 7b 0a 24 70 61 ies(RepositoryManager.$rm).{.$pa
63f20 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 6d 2d 3e ckages.=.array();.foreach.($rm->
63f40 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 getLocalRepository()->getPackage
63f60 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 28 73 74 s().as.$package).{.$packages[(st
63f80 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 5d 20 3d 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 ring).$package].=.clone.$package
63fa0 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 6b 65 79 20 3d ;.}.foreach.($packages.as.$key.=
63fc0 3e 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 61 >.$package).{.if.($package.insta
63fe0 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 28 nceof.AliasPackage).{.$alias.=.(
64000 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a string).$package->getAliasOf();.
64020 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 79 5d 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 $packages[$key].=.new.AliasPacka
64040 67 65 28 24 70 61 63 6b 61 67 65 73 5b 24 61 6c 69 61 73 5d 2c 20 24 70 61 63 6b 61 67 65 2d 3e ge($packages[$alias],.$package->
64060 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 getVersion(),.$package->getPrett
64080 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 yVersion());.}.}.$rm->setLocalRe
640a0 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f pository(.new.InstalledArrayRepo
640c0 73 69 74 6f 72 79 28 24 70 61 63 6b 61 67 65 73 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 sitory($packages).);.}.........p
640e0 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 ublic.static.function.create(IOI
64100 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
64120 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 0a 24 69 6f 2c 0a 24 63 6f 6d ).{.return.new.static(.$io,.$com
64140 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 poser->getConfig(),.$composer->g
64160 65 74 50 61 63 6b 61 67 65 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c etPackage(),.$composer->getDownl
64180 6f 61 64 4d 61 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f oadManager(),.$composer->getRepo
641a0 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 4c sitoryManager(),.$composer->getL
641c0 6f 63 6b 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 ocker(),.$composer->getInstallat
641e0 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e ionManager(),.$composer->getEven
64200 74 44 69 73 70 61 74 63 68 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 tDispatcher(),.$composer->getAut
64220 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 oloadGenerator().);.}......publi
64240 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 c.function.setAdditionalInstalle
64260 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 dRepository(RepositoryInterface.
64280 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 0a $additionalInstalledRepository).
642a0 7b 0a 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 65 70 6f {.$this->additionalInstalledRepo
642c0 73 69 74 6f 72 79 20 3d 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 sitory.=.$additionalInstalledRep
642e0 6f 73 69 74 6f 72 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ository;..return.$this;.}.......
64300 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 72 79 52 75 6e 28 24 64 72 79 52 .public.function.setDryRun($dryR
64320 75 6e 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 20 3d 20 28 62 6f un.=.true).{.$this->dryRun.=.(bo
64340 6f 6c 65 61 6e 29 20 24 64 72 79 52 75 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d olean).$dryRun;..return.$this;.}
64360 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 72 79 52 75 6e 28 .......public.function.isDryRun(
64380 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 3b 0a 7d 0a 0a 0a 0a 0a ).{.return.$this->dryRun;.}.....
643a0 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 6f 75 72 ...public.function.setPreferSour
643c0 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 ce($preferSource.=.true).{.$this
643e0 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 ->preferSource.=.(boolean).$pref
64400 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a erSource;..return.$this;.}......
64420 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 ..public.function.setPreferDist(
64440 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 $preferDist.=.true).{.$this->pre
64460 66 65 72 44 69 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 44 69 73 74 3b ferDist.=.(boolean).$preferDist;
64480 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 69 63 20 ..return.$this;.}........public.
644a0 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 function.setOptimizeAutoloader($
644c0 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 29 0a 7b 0a 24 74 optimizeAutoloader.=.false).{.$t
644e0 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 28 62 6f 6f 6c 65 his->optimizeAutoloader.=.(boole
64500 61 6e 29 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 3b 0a 69 66 20 28 21 24 74 an).$optimizeAutoloader;.if.(!$t
64520 68 69 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 0a 20 0a 20 24 his->optimizeAutoloader).{.....$
64540 74 68 69 73 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 66 this->setClassMapAuthoritative(f
64560 61 6c 73 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a alse);.}..return.$this;.}.......
64580 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6c 61 73 73 4d 61 70 41 75 74 ..public.function.setClassMapAut
645a0 68 6f 72 69 74 61 74 69 76 65 28 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 horitative($classMapAuthoritativ
645c0 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 41 75 74 68 e.=.false).{.$this->classMapAuth
645e0 6f 72 69 74 61 74 69 76 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 63 6c 61 73 73 4d 61 70 41 oritative.=.(boolean).$classMapA
64600 75 74 68 6f 72 69 74 61 74 69 76 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 uthoritative;.if.($this->classMa
64620 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 65 74 4f 70 pAuthoritative).{...$this->setOp
64640 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 74 72 75 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 timizeAutoloader(true);.}..retur
64660 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$this;.}........public.functio
64680 6e 20 73 65 74 55 70 64 61 74 65 28 24 75 70 64 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 n.setUpdate($update.=.true).{.$t
646a0 68 69 73 2d 3e 75 70 64 61 74 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 74 65 3b his->update.=.(boolean).$update;
646c0 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 69 63 20 ..return.$this;.}........public.
646e0 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
64700 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
64720 29 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a ).$devMode;..return.$this;.}....
64740 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 75 6d 70 41 75 74 6f 6c ....public.function.setDumpAutol
64760 6f 61 64 65 72 28 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 74 72 75 65 29 0a 7b 0a oader($dumpAutoloader.=.true).{.
64780 24 74 68 69 73 2d 3e 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 28 62 6f 6f 6c 65 61 6e $this->dumpAutoloader.=.(boolean
647a0 29 20 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ).$dumpAutoloader;..return.$this
647c0 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 52 75 ;.}........public.function.setRu
647e0 6e 53 63 72 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 nScripts($runScripts.=.true).{.$
64800 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 72 75 this->runScripts.=.(boolean).$ru
64820 6e 53 63 72 69 70 74 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 nScripts;..return.$this;.}......
64840 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 ..public.function.setConfig(Conf
64860 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 ig.$config).{.$this->config.=.$c
64880 6f 6e 66 69 67 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 onfig;..return.$this;.}........p
648a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 65 28 24 76 65 72 62 6f ublic.function.setVerbose($verbo
648c0 73 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 28 62 se.=.true).{.$this->verbose.=.(b
648e0 6f 6f 6c 65 61 6e 29 20 24 76 65 72 62 6f 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b oolean).$verbose;..return.$this;
64900 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 65 72 62 6f .}.......public.function.isVerbo
64920 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 3b 0a 7d 0a se().{.return.$this->verbose;.}.
64940 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 67 6e 6f 72 65 .......public.function.setIgnore
64960 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 PlatformRequirements($ignorePlat
64980 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 formReqs.=.false).{.$this->ignor
649a0 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 69 67 6e 6f 72 ePlatformReqs.=.(boolean).$ignor
649c0 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ePlatformReqs;..return.$this;.}.
649e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 61 74 ........public.function.setUpdat
64a00 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 eWhitelist(array.$packages).{.$t
64a20 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 5f 66 6c 69 his->updateWhitelist.=.array_fli
64a40 70 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 74 6f 6c 6f 77 65 72 27 2c 20 24 70 61 63 6b 61 p(array_map('strtolower',.$packa
64a60 67 65 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ges));..return.$this;.}........p
64a80 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 44 65 70 65 6e ublic.function.setWhitelistDepen
64aa0 64 65 6e 63 69 65 73 28 24 75 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 74 72 dencies($updateDependencies.=.tr
64ac0 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 ue).{.$this->whitelistDependenci
64ae0 65 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 es.=.(boolean).$updateDependenci
64b00 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 70 75 62 6c es;..return.$this;.}........publ
64b20 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 24 70 72 65 ic.function.setPreferStable($pre
64b40 66 65 72 53 74 61 62 6c 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 ferStable.=.true).{.$this->prefe
64b60 72 53 74 61 62 6c 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 74 61 62 6c rStable.=.(boolean).$preferStabl
64b80 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 e;..return.$this;.}........publi
64ba0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 4c 6f 77 65 73 74 28 24 70 72 65 66 c.function.setPreferLowest($pref
64bc0 65 72 4c 6f 77 65 73 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 erLowest.=.true).{.$this->prefer
64be0 4c 6f 77 65 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 Lowest.=.(boolean).$preferLowest
64c00 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ;..return.$this;.}...........pub
64c20 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().{.
64c40 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 64 69 73 61 $this->installationManager->disa
64c60 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d blePlugins();..return.$this;.}.}
64c80 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
64ca0 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 49 4f oser\Installer;..use.Composer\IO
64cc0 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \IOInterface;.use.Composer\Packa
64ce0 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
64d00 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 r\Package\AliasPackage;.use.Comp
64d20 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
64d40 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 ace;.use.Composer\Repository\Ins
64d60 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 talledRepositoryInterface;.use.C
64d80 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
64da0 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 20 43 6f 6d tion\OperationInterface;.use.Com
64dc0 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
64de0 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 70 6f 73 65 on\InstallOperation;.use.Compose
64e00 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 r\DependencyResolver\Operation\U
64e20 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 5c 44 65 70 pdateOperation;.use.Composer\Dep
64e40 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 69 6e 73 74 endencyResolver\Operation\Uninst
64e60 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e allOperation;.use.Composer\Depen
64e80 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 dencyResolver\Operation\MarkAlia
64ea0 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 70 6f 73 65 sInstalledOperation;.use.Compose
64ec0 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d r\DependencyResolver\Operation\M
64ee0 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 3b 0a 75 73 arkAliasUninstalledOperation;.us
64f00 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 74 46 61 63 e.Composer\Util\StreamContextFac
64f20 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 74 69 6f 6e tory;.........class.Installation
64f40 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 73 20 3d 20 Manager.{.private.$installers.=.
64f60 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 72 61 79 28 array();.private.$cache.=.array(
64f80 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 65 73 20 3d );.private.$notifiablePackages.=
64fa0 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 65 73 65 74 .array();..public.function.reset
64fc0 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 65 73 20 3d ().{.$this->notifiablePackages.=
64fe0 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .array();.}.......public.functio
65000 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 72 66 61 63 n.addInstaller(InstallerInterfac
65020 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 74 28 24 74 e.$installer).{.array_unshift($t
65040 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 3b 0a 24 74 his->installers,.$installer);.$t
65060 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 0a 0a 70 75 his->cache.=.array();.}.......pu
65080 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 72 28 49 6e blic.function.removeInstaller(In
650a0 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 0a 7b 0a 69 stallerInterface.$installer).{.i
650c0 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 65 61 72 63 f.(false.!==.($key.=.array_searc
650e0 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 65 72 73 2c h($installer,.$this->installers,
65100 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 73 2d 3e 69 .true))).{.array_splice($this->i
65120 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 63 61 63 68 nstallers,.$key,.1);.$this->cach
65140 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 6c 69 63 20 e.=.array();.}.}.........public.
65160 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 66 6f 72 65 function.disablePlugins().{.fore
65180 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 20 3d 3e 20 ach.($this->installers.as.$i.=>.
651a0 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 72 20 69 6e $installer).{.if.(!$installer.in
651c0 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 63 6f 6e 74 stanceof.PluginInstaller).{.cont
651e0 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 6c 65 72 73 inue;.}..unset($this->installers
65200 5b 24 69 5d 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 [$i]);.}.}..........public.funct
65220 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 74 79 70 65 20 ion.getInstaller($type).{.$type.
65240 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 73 73 65 74 28 =.strtolower($type);..if.(isset(
65260 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 75 72 6e 20 24 $this->cache[$type])).{.return.$
65280 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 61 63 68 20 28 this->cache[$type];.}..foreach.(
652a0 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 6c 6c 65 72 29 $this->installers.as.$installer)
652c0 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 28 24 74 79 70 .{.if.($installer->supports($typ
652e0 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 74 79 70 65 5d e)).{.return.$this->cache[$type]
65300 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 65 77 20 5c 49 .=.$installer;.}.}..throw.new.\I
65320 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e nvalidArgumentException('Unknown
65340 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 7d 0a 0a 0a 0a .installer.type:.'.$type);.}....
65360 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 6b 61 67 65 49 ......public.function.isPackageI
65380 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 nstalled(InstalledRepositoryInte
653a0 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 70 rface.$repo,.PackageInterface.$p
653c0 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f ackage).{.if.($package.instanceo
653e0 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 65 70 6f 2d 3e f.AliasPackage).{.return.$repo->
65400 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 69 73 2d 3e 69 hasPackage($package).&&.$this->i
65420 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 sPackageInstalled($repo,.$packag
65440 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 20 24 74 68 69 e->getAliasOf());.}..return.$thi
65460 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 65 74 54 79 70 s->getInstaller($package->getTyp
65480 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 61 63 6b 61 67 e())->isInstalled($repo,.$packag
654a0 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 6e 20 65 78 65 e);.}........public.function.exe
654c0 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 65 70 6f 2c 20 cute(RepositoryInterface.$repo,.
654e0 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 29 0a 7b OperationInterface.$operation).{
65500 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 6f 62 54 79 70 .$method.=.$operation->getJobTyp
65520 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 24 6f 70 65 72 e();.$this->$method($repo,.$oper
65540 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 63 74 69 6f 6e ation);.}........public.function
65560 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 65 20 24 72 65 .install(RepositoryInterface.$re
65580 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 74 69 6f 6e 29 po,.InstallOperation.$operation)
655a0 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 74 50 61 63 .{.$package.=.$operation->getPac
655c0 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 3e 67 65 74 49 kage();.$installer.=.$this->getI
655e0 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 29 29 3b 0a 24 nstaller($package->getType());.$
65600 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 70 61 63 6b 61 installer->install($repo,.$packa
65620 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 74 69 6f 6e 28 ge);.$this->markForNotification(
65640 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 66 75 6e 63 74 $package);.}........public.funct
65660 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 61 63 65 20 24 ion.update(RepositoryInterface.$
65680 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 61 74 69 6f 6e repo,.UpdateOperation.$operation
656a0 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 67 65 74 49 6e ).{.$initial.=.$operation->getIn
656c0 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 6f 70 65 72 61 itialPackage();.$target.=.$opera
656e0 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 24 69 6e 69 74 tion->getTargetPackage();..$init
65700 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 28 29 3b 0a 24 ialType.=.$initial->getType();.$
65720 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 70 65 28 29 3b targetType.=.$target->getType();
65740 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 67 65 74 54 79 ..if.($initialType.===.$targetTy
65760 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 65 74 49 6e 73 pe).{.$installer.=.$this->getIns
65780 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 61 6c 6c 65 72 taller($initialType);.$installer
657a0 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 74 61 72 67 65 ->update($repo,.$initial,.$targe
657c0 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 69 6f 6e 28 24 t);.$this->markForNotification($
657e0 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 74 49 6e 73 74 target);.}.else.{.$this->getInst
65800 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 61 6c 6c 28 24 aller($initialType)->uninstall($
65820 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 49 6e 73 74 61 repo,.$initial);.$this->getInsta
65840 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 24 72 65 70 6f ller($targetType)->install($repo
65860 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 69 63 20 66 75 ,.$target);.}.}........public.fu
65880 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 49 6e 74 65 72 nction.uninstall(RepositoryInter
658a0 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 69 6f 6e 20 24 face.$repo,.UninstallOperation.$
658c0 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 operation).{.$package.=.$operati
658e0 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 72 20 3d 20 24 on->getPackage();.$installer.=.$
65900 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 65 74 this->getInstaller($package->get
65920 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 61 6c 6c 28 24 Type());.$installer->uninstall($
65940 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 75 62 6c 69 63 repo,.$package);.}........public
65960 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 64 28 52 65 70 .function.markAliasInstalled(Rep
65980 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 6b 41 6c 69 61 ositoryInterface.$repo,.MarkAlia
659a0 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 69 6f 6e 29 0a sInstalledOperation.$operation).
659c0 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 74 50 61 63 6b {.$package.=.$operation->getPack
659e0 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 61 67 65 28 24 age();..if.(!$repo->hasPackage($
65a00 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
65a20 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 75 62 6c 69 63 one.$package);.}.}........public
65a40 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 6c 65 64 28 52 .function.markAliasUninstalled(R
65a60 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 6b 41 6c epositoryInterface.$repo,.MarkAl
65a80 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 65 72 61 74 69 iasUninstalledOperation.$operati
65aa0 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 74 on).{.$package.=.$operation->get
65ac0 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 63 6b 61 67 65 Package();..$repo->removePackage
65ae0 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 66 75 6e 63 ($package);.}........public.func
65b00 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 tion.getInstallPath(PackageInter
65b20 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 20 3d 20 24 74 face.$package).{.$installer.=.$t
65b40 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 65 74 54 his->getInstaller($package->getT
65b60 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 3e 67 65 74 49 ype());..return.$installer->getI
65b80 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 62 6c 69 63 20 nstallPath($package);.}..public.
65ba0 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 49 4f 49 6e 74 65 72 66 function.notifyInstalls(IOInterf
65bc0 61 63 65 20 24 69 6f 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 74 69 66 ace.$io).{.foreach.($this->notif
65be0 69 61 62 6c 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 70 6f 55 72 6c 20 3d 3e 20 24 70 61 iablePackages.as.$repoUrl.=>.$pa
65c00 63 6b 61 67 65 73 29 20 7b 0a 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 20 3d 20 70 61 72 73 ckages).{.$repositoryName.=.pars
65c20 65 5f 75 72 6c 28 24 72 65 70 6f 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 69 e_url($repoUrl,.PHP_URL_HOST);.i
65c40 66 20 28 24 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 f.($io->hasAuthentication($repos
65c60 69 74 6f 72 79 4e 61 6d 65 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 69 6f 2d 3e 67 65 74 41 75 itoryName)).{.$auth.=.$io->getAu
65c80 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 3b 0a 24 thentication($repositoryName);.$
65ca0 61 75 74 68 53 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 authStr.=.base64_encode($auth['u
65cc0 73 65 72 6e 61 6d 65 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 sername']...':'...$auth['passwor
65ce0 64 27 5d 29 3b 0a 24 61 75 74 68 48 65 61 64 65 72 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 d']);.$authHeader.=.'Authorizati
65d00 6f 6e 3a 20 42 61 73 69 63 20 27 2e 24 61 75 74 68 53 74 72 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 on:.Basic.'.$authStr;.}....if.(s
65d20 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 25 27 29 29 20 7b 0a trpos($repoUrl,.'%package%')).{.
65d40 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).
65d60 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 63 6b 61 67 65 25 27 {.$url.=.str_replace('%package%'
65d80 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 28 29 2c 20 24 72 65 ,.$package->getPrettyName(),.$re
65da0 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 0a 27 76 65 72 73 69 poUrl);..$params.=.array(.'versi
65dc0 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 79 56 65 72 73 69 6f on'.=>.$package->getPrettyVersio
65de0 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 20 3d 3e 20 24 70 61 n(),.'version_normalized'.=>.$pa
65e00 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 6f 70 74 73 20 3d 20 ckage->getVersion(),.);.$opts.=.
65e20 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 65 74 68 6f 64 27 20 array('http'.=>.array(.'method'.
65e40 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 72 61 79 28 27 43 6f =>.'POST',.'header'.=>.array('Co
65e60 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 2d 77 77 77 2d 66 6f ntent-type:.application/x-www-fo
65e80 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 27 20 3d 3e 20 68 74 rm-urlencoded'),.'content'.=>.ht
65ea0 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 27 2c 20 27 26 27 29 tp_build_query($params,.'',.'&')
65ec0 2c 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 2c 0a 29 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 ,.'timeout'.=>.3,.),.);.if.(isse
65ee0 74 28 24 61 75 74 68 48 65 61 64 65 72 29 29 20 7b 0a 24 6f 70 74 73 5b 27 68 74 74 70 27 5d 5b t($authHeader)).{.$opts['http'][
65f00 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 24 61 75 74 68 48 65 61 64 65 72 3b 0a 7d 0a 0a 24 63 'header'][].=.$authHeader;.}..$c
65f20 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 67 ontext.=.StreamContextFactory::g
65f40 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 65 etContext($url,.$opts);.@file_ge
65f60 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 74 t_contents($url,.false,.$context
65f80 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 61 );.}..continue;.}..$postData.=.a
65fa0 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 6f rray('downloads'.=>.array());.fo
65fc0 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a reach.($packages.as.$package).{.
65fe0 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 79 $postData['downloads'][].=.array
66000 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 4e (.'name'.=>.$package->getPrettyN
66020 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 65 ame(),.'version'.=>.$package->ge
66040 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 28 tVersion(),.);.}..$opts.=.array(
66060 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 4f 'http'.=>.array(.'method'.=>.'PO
66080 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 2d ST',.'header'.=>.array('Content-
660a0 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 65 Type:.application/json'),.'conte
660c0 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 27 nt'.=>.json_encode($postData),.'
660e0 74 69 6d 65 6f 75 74 27 20 3d 3e 20 36 2c 0a 29 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 timeout'.=>.6,.),.);.if.(isset($
66100 61 75 74 68 48 65 61 64 65 72 29 29 20 7b 0a 24 6f 70 74 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 authHeader)).{.$opts['http']['he
66120 61 64 65 72 27 5d 5b 5d 20 3d 20 24 61 75 74 68 48 65 61 64 65 72 3b 0a 7d 0a 0a 24 63 6f 6e 74 ader'][].=.$authHeader;.}..$cont
66140 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 67 65 74 43 ext.=.StreamContextFactory::getC
66160 6f 6e 74 65 78 74 28 24 72 65 70 6f 55 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 ontext($repoUrl,.$opts);.@file_g
66180 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f et_contents($repoUrl,.false,.$co
661a0 6e 74 65 78 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 70 72 ntext);.}..$this->reset();.}..pr
661c0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 ivate.function.markForNotificati
661e0 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 7b 0a on(PackageInterface.$package).{.
66200 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c if.($package->getNotificationUrl
66220 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 5b ()).{.$this->notifiablePackages[
66240 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 5d 5b $package->getNotificationUrl()][
66260 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b $package->getName()].=.$package;
66280 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
662a0 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
662c0 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e ser\Composer;.use.Composer\Depen
662e0 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 3b 0a 75 dencyResolver\PolicyInterface;.u
66300 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
66320 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
66340 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 6f .Composer\DependencyResolver\Poo
66360 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 l;.use.Composer\DependencyResolv
66380 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 65 6e 74 44 69 er\Request;.use.Composer\EventDi
663a0 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 72 5c 49 4f 5c spatcher\Event;.use.Composer\IO\
663c0 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 52 65 70 6f 73 69 IOInterface;.use.Composer\Reposi
663e0 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 0a 0a 0a 0a 0a 0a tory\CompositeRepository;.......
66400 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 class.InstallerEvent.extends.Eve
66420 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 nt.{....private.$composer;.....p
66440 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f 64 65 rivate.$io;.....private.$devMode
66460 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6f 6c 69 63 79 3b 0a 0a 0a 0a 0a 70 72 69 76 61 ;.....private.$policy;.....priva
66480 74 65 20 24 70 6f 6f 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 65 64 te.$pool;.....private.$installed
664a0 52 65 70 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 65 73 74 3b 0a 0a 0a 0a 0a Repo;.....private.$request;.....
664c0 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a private.$operations;............
664e0 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($
66500 65 76 65 6e 74 4e 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 eventName,.Composer.$composer,.I
66520 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 OInterface.$io,.$devMode,.Policy
66540 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 Interface.$policy,.Pool.$pool,.C
66560 6f 6d 70 6f 73 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 ompositeRepository.$installedRep
66580 6f 2c 20 52 65 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 o,.Request.$request,.array.$oper
665a0 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ations.=.array()).{.parent::__co
665c0 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d nstruct($eventName);..$this->com
665e0 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 poser.=.$composer;.$this->io.=.$
66600 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 3b 0a 24 io;.$this->devMode.=.$devMode;.$
66620 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 this->policy.=.$policy;.$this->p
66640 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 52 65 70 ool.=.$pool;.$this->installedRep
66660 6f 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 65 o.=.$installedRepo;.$this->reque
66680 73 74 20 3d 20 24 72 65 71 75 65 73 74 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 73 st.=.$request;.$this->operations
666a0 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .=.$operations;.}.....public.fun
666c0 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getComposer().{.return.$th
666e0 69 73 2d 3e 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 is->composer;.}.....public.funct
66700 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a ion.getIO().{.return.$this->io;.
66720 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 4d 6f 64 65 28 }.....public.function.isDevMode(
66740 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->devMode;.}....
66760 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 6c 69 63 79 28 29 0a 7b 0a 72 .public.function.getPolicy().{.r
66780 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 eturn.$this->policy;.}.....publi
667a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 6f 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 c.function.getPool().{.return.$t
667c0 68 69 73 2d 3e 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e his->pool;.}.....public.function
667e0 20 67 65 74 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 .getInstalledRepo().{.return.$th
66800 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 is->installedRepo;.}.....public.
66820 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 65 73 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.getRequest().{.return.$
66840 74 68 69 73 2d 3e 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->request;.}.....public.func
66860 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 tion.getOperations().{.return.$t
66880 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a his->operations;.}.}.<?php......
668a0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c ......namespace.Composer\Install
668c0 65 72 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 73 0a er;.......class.InstallerEvents.
668e0 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 44 45 50 45 4e 44 45 4e 43 49 45 {..........const.PRE_DEPENDENCIE
66900 53 5f 53 4f 4c 56 49 4e 47 20 3d 20 27 70 72 65 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 2d 73 6f S_SOLVING.=.'pre-dependencies-so
66920 6c 76 69 6e 67 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 44 45 50 lving';...........const.POST_DEP
66940 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 20 3d 20 27 70 6f 73 74 2d 64 65 70 65 6e 64 ENDENCIES_SOLVING.=.'post-depend
66960 65 6e 63 69 65 73 2d 73 6f 6c 76 69 6e 67 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a encies-solving';.}.<?php........
66980 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 ....namespace.Composer\Installer
669a0 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
669c0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nterface;.use.Composer\Repositor
669e0 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a y\InstalledRepositoryInterface;.
66a00 75 73 65 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a use.InvalidArgumentException;...
66a20 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 .....interface.InstallerInterfac
66a40 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 e.{.......public.function.suppor
66a60 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ts($packageType);..........publi
66a80 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 c.function.isInstalled(Installed
66aa0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
66ac0 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 0a 0a 0a 0a 0a 70 75 geInterface.$package);........pu
66ae0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 blic.function.install(InstalledR
66b00 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 epositoryInterface.$repo,.Packag
66b20 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eInterface.$package);...........
66b40 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 6c 65 64 public.function.update(Installed
66b60 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
66b80 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
66ba0 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 erface.$target);........public.f
66bc0 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 unction.uninstall(InstalledRepos
66be0 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
66c00 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 erface.$package);........public.
66c20 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 49 function.getInstallPath(PackageI
66c40 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a nterface.$package);.}.<?php.....
66c60 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c .......namespace.Composer\Instal
66c80 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 0a 75 73 65 ler;..use.Composer\Composer;.use
66ca0 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
66cc0 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
66ce0 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 63 itoryInterface;.use.Composer\Pac
66d00 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 6f kage\PackageInterface;.use.Compo
66d20 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 73 65 ser\Util\Filesystem;.use.Compose
66d40 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 63 r\Util\ProcessExecutor;........c
66d60 6c 61 73 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 lass.LibraryInstaller.implements
66d80 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 .InstallerInterface.{.protected.
66da0 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 6e 64 6f 72 44 69 72 3b $composer;.protected.$vendorDir;
66dc0 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 .protected.$binDir;.protected.$d
66de0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 ownloadManager;.protected.$io;.p
66e00 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 rotected.$type;.protected.$files
66e20 79 73 74 65 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 43 6f 6d 70 61 74 3b 0a 0a 0a 0a ystem;.protected.$binCompat;....
66e40 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
66e60 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d t(IOInterface.$io,.Composer.$com
66e80 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 2c 20 46 69 6c 65 73 79 poser,.$type.=.'library',.Filesy
66ea0 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 73 stem.$filesystem.=.null).{.$this
66ec0 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 64 ->composer.=.$composer;.$this->d
66ee0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 ownloadManager.=.$composer->getD
66f00 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 ownloadManager();.$this->io.=.$i
66f20 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e o;.$this->type.=.$type;..$this->
66f40 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 20 filesystem.=.$filesystem.?:.new.
66f60 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d Filesystem();.$this->vendorDir.=
66f80 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 .rtrim($composer->getConfig()->g
66fa0 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 62 et('vendor-dir'),.'/');.$this->b
66fc0 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 inDir.=.rtrim($composer->getConf
66fe0 69 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 ig()->get('bin-dir'),.'/');.$thi
67000 73 2d 3e 62 69 6e 43 6f 6d 70 61 74 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e s->binCompat.=.$composer->getCon
67020 66 69 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 63 6f 6d 70 61 74 27 29 3b 0a 7d 0a 0a 0a 0a 0a fig()->get('bin-compat');.}.....
67040 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 public.function.supports($packag
67060 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d eType).{.return.$packageType.===
67080 20 24 74 68 69 73 2d 3e 74 79 70 65 20 7c 7c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e .$this->type.||.null.===.$this->
670a0 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e type;.}.....public.function.isIn
670c0 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 stalled(InstalledRepositoryInter
670e0 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 face.$repo,.PackageInterface.$pa
67100 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 ckage).{.return.$repo->hasPackag
67120 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 74 68 69 73 e($package).&&.is_readable($this
67140 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a ->getInstallPath($package));.}..
67160 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 ...public.function.install(Insta
67180 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 lledRepositoryInterface.$repo,.P
671a0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 ackageInterface.$package).{.$thi
671c0 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 64 6f 77 6e 6c s->initializeVendorDir();.$downl
671e0 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 oadPath.=.$this->getInstallPath(
67200 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 $package);....if.(!is_readable($
67220 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 downloadPath).&&.$repo->hasPacka
67240 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e ge($package)).{.$this->removeBin
67260 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 aries($package);.}..$this->insta
67280 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c llCode($package);.$this->install
672a0 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e Binaries($package);.if.(!$repo->
672c0 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 hasPackage($package)).{.$repo->a
672e0 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a ddPackage(clone.$package);.}.}..
67300 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
67320 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
67340 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
67360 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d Interface.$target).{.if.(!$repo-
67380 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e >hasPackage($initial)).{.throw.n
673a0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 ew.\InvalidArgumentException('Pa
673c0 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 ckage.is.not.installed:.'.$initi
673e0 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 al);.}..$this->initializeVendorD
67400 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 6e ir();..$this->removeBinaries($in
67420 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 43 6f 64 65 28 24 69 6e 69 74 69 itial);.$this->updateCode($initi
67440 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 al,.$target);.$this->installBina
67460 72 69 65 73 28 24 74 61 72 67 65 74 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b ries($target);.$repo->removePack
67480 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 age($initial);.if.(!$repo->hasPa
674a0 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b ckage($target)).{.$repo->addPack
674c0 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c age(clone.$target);.}.}.....publ
674e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 ic.function.uninstall(InstalledR
67500 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 epositoryInterface.$repo,.Packag
67520 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 eInterface.$package).{.if.(!$rep
67540 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 74 68 72 6f 77 o->hasPackage($package)).{.throw
67560 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('
67580 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 Package.is.not.installed:.'.$pac
675a0 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 43 6f 64 65 28 24 70 61 63 kage);.}..$this->removeCode($pac
675c0 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 kage);.$this->removeBinaries($pa
675e0 63 6b 61 67 65 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 ckage);.$repo->removePackage($pa
67600 63 6b 61 67 65 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e ckage);..$downloadPath.=.$this->
67620 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 getPackageBasePath($package);.if
67640 20 28 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 27 2f .(strpos($package->getName(),.'/
67660 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d ')).{.$packageVendorDir.=.dirnam
67680 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 e($downloadPath);.if.(is_dir($pa
676a0 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 20 26 26 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 ckageVendorDir).&&.$this->filesy
676c0 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 stem->isDirEmpty($packageVendorD
676e0 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 ir)).{.@rmdir($packageVendorDir)
67700 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 67 65 74 49 ;.}.}.}.....public.function.getI
67720 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 nstallPath(PackageInterface.$pac
67740 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 64 6f 72 44 kage).{.$this->initializeVendorD
67760 69 72 28 29 3b 0a 0a 24 62 61 73 65 50 61 74 68 20 3d 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f ir();..$basePath.=.($this->vendo
67780 72 44 69 72 20 3f 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2e 27 2f 27 20 3a 20 27 27 rDir.?.$this->vendorDir.'/'.:.''
677a0 29 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 )...$package->getPrettyName();.$
677c0 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 targetDir.=.$package->getTargetD
677e0 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 62 61 73 65 50 61 74 68 20 2e 20 28 24 74 61 72 67 ir();..return.$basePath...($targ
67800 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a etDir.?.'/'.$targetDir.:.'');.}.
67820 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 65 74 ..........protected.function.get
67840 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 PackageBasePath(PackageInterface
67860 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 .$package).{.$installPath.=.$thi
67880 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 61 s->getInstallPath($package);.$ta
678a0 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 rgetDir.=.$package->getTargetDir
678c0 28 29 3b 0a 0a 69 66 20 28 24 74 61 72 67 65 74 44 69 72 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 ();..if.($targetDir).{.return.pr
678e0 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2f 2a 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 eg_replace('{/*'.str_replace('/'
67900 2c 20 27 2f 2b 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 74 61 72 67 65 74 44 69 72 29 29 2e ,.'/+',.preg_quote($targetDir)).
67920 27 2f 3f 24 7d 27 2c 20 27 27 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 3b 0a 7d 0a 0a 72 65 '/?$}',.'',.$installPath);.}..re
67940 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 turn.$installPath;.}..protected.
67960 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 function.installCode(PackageInte
67980 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 rface.$package).{.$downloadPath.
679a0 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 67 65 =.$this->getInstallPath($package
679c0 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c );.$this->downloadManager->downl
679e0 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a oad($package,.$downloadPath);.}.
67a00 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 43 6f 64 65 28 50 .protected.function.updateCode(P
67a20 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 ackageInterface.$initial,.Packag
67a40 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 44 6f eInterface.$target).{.$initialDo
67a60 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 wnloadPath.=.$this->getInstallPa
67a80 74 68 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 th($initial);.$targetDownloadPat
67aa0 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 74 61 72 67 65 h.=.$this->getInstallPath($targe
67ac0 74 29 3b 0a 69 66 20 28 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 21 3d 3d 20 t);.if.($targetDownloadPath.!==.
67ae0 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 7b 0a 0a 20 0a 20 69 66 20 28 $initialDownloadPath).{.....if.(
67b00 73 75 62 73 74 72 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 30 2c 20 substr($initialDownloadPath,.0,.
67b20 73 74 72 6c 65 6e 28 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d strlen($targetDownloadPath)).===
67b40 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 0a 7c 7c 20 73 75 62 73 74 72 28 24 .$targetDownloadPath.||.substr($
67b60 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 69 targetDownloadPath,.0,.strlen($i
67b80 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d 20 24 69 6e 69 74 69 61 nitialDownloadPath)).===.$initia
67ba0 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 43 lDownloadPath.).{.$this->removeC
67bc0 6f 64 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 ode($initial);.$this->installCod
67be0 65 28 24 74 61 72 67 65 74 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 e($target);..return;.}..$this->f
67c00 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f ilesystem->rename($initialDownlo
67c20 61 64 50 61 74 68 2c 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a adPath,.$targetDownloadPath);.}.
67c40 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 75 70 64 61 74 65 28 24 $this->downloadManager->update($
67c60 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 initial,.$target,.$targetDownloa
67c80 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 72 65 dPath);.}..protected.function.re
67ca0 6d 6f 76 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 moveCode(PackageInterface.$packa
67cc0 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 65 74 ge).{.$downloadPath.=.$this->get
67ce0 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 PackageBasePath($package);.$this
67d00 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 ->downloadManager->remove($packa
67d20 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
67d40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 .function.getBinaries(PackageInt
67d60 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 erface.$package).{.return.$packa
67d80 67 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 ge->getBinaries();.}..protected.
67da0 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 function.installBinaries(Package
67dc0 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 Interface.$package).{.$binaries.
67de0 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a =.$this->getBinaries($package);.
67e00 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 if.(!$binaries).{.return;.}.fore
67e20 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 62 69 6e 50 61 ach.($binaries.as.$bin).{.$binPa
67e40 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b th.=.$this->getInstallPath($pack
67e60 61 67 65 29 2e 27 2f 27 2e 24 62 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 age).'/'.$bin;.if.(!file_exists(
67e80 24 62 69 6e 50 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 $binPath)).{.$this->io->writeErr
67ea0 6f 72 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c or('....<warning>Skipped.install
67ec0 61 74 69 6f 6e 20 6f 66 20 62 69 6e 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 ation.of.bin.'.$bin.'.for.packag
67ee0 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 66 69 6c 65 20 e.'.$package->getName().':.file.
67f00 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 not.found.in.package</warning>')
67f20 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 0a 20 24 62 69 6e 50 61 74 68 20 ;.continue;.}..........$binPath.
67f40 3d 20 72 65 61 6c 70 61 74 68 28 24 62 69 6e 50 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6e =.realpath($binPath);..$this->in
67f60 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d itializeBinDir();.$link.=.$this-
67f80 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 >binDir.'/'.basename($bin);.if.(
67fa0 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 69 66 20 28 69 73 5f 6c 69 6e file_exists($link)).{.if.(is_lin
67fc0 6b 28 24 6c 69 6e 6b 29 29 20 7b 0a 0a 20 0a 20 0a 20 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 k($link)).{.......@chmod($link,.
67fe0 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 0777.&.~umask());.}.$this->io->w
68000 72 69 74 65 45 72 72 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 riteError('....Skipped.installat
68020 69 6f 6e 20 6f 66 20 62 69 6e 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 ion.of.bin.'.$bin.'.for.package.
68040 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 6e 61 6d 65 20 63 6f '.$package->getName().':.name.co
68060 6e 66 6c 69 63 74 73 20 77 69 74 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 65 27 29 3b nflicts.with.an.existing.file');
68080 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 69 6e 43 6f 6d 70 .continue;.}..if.($this->binComp
680a0 61 74 20 3d 3d 3d 20 22 61 75 74 6f 22 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 at.===."auto").{.if.(defined('PH
680c0 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 74 68 P_WINDOWS_VERSION_BUILD')).{.$th
680e0 69 73 2d 3e 69 6e 73 74 61 6c 6c 46 75 6c 6c 42 69 6e 61 72 69 65 73 28 24 62 69 6e 50 61 74 68 is->installFullBinaries($binPath
68100 2c 20 24 6c 69 6e 6b 2c 20 24 62 69 6e 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 20 65 6c 73 65 ,.$link,.$bin,.$package);.}.else
68120 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 53 79 6d 6c 69 6e 6b 42 69 6e 61 72 69 65 73 .{.$this->installSymlinkBinaries
68140 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 ($binPath,.$link);.}.}.elseif.($
68160 74 68 69 73 2d 3e 62 69 6e 43 6f 6d 70 61 74 20 3d 3d 3d 20 22 66 75 6c 6c 22 29 20 7b 0a 24 74 this->binCompat.===."full").{.$t
68180 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 46 75 6c 6c 42 69 6e 61 72 69 65 73 28 24 62 69 6e 50 61 74 his->installFullBinaries($binPat
681a0 68 2c 20 24 6c 69 6e 6b 2c 20 24 62 69 6e 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 40 63 68 h,.$link,.$bin,.$package);.}.@ch
681c0 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d mod($link,.0777.&.~umask());.}.}
681e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 46 75 6c 6c ..protected.function.installFull
68200 42 69 6e 61 72 69 65 73 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 2c 20 24 62 69 6e 2c 20 Binaries($binPath,.$link,.$bin,.
68220 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 0a 20 69 PackageInterface.$package).{...i
68240 66 20 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 50 61 74 68 2c 20 2d f.('.bat'.!==.substr($binPath,.-
68260 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 55 6e 69 78 79 50 72 6f 78 79 42 69 4)).{.$this->installUnixyProxyBi
68280 6e 61 72 69 65 73 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 3b 0a 40 63 68 6d 6f 64 28 naries($binPath,.$link);.@chmod(
682a0 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 24 6c 69 6e 6b 20 2e $link,.0777.&.~umask());.$link..
682c0 3d 20 27 2e 62 61 74 27 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 =.'.bat';.if.(file_exists($link)
682e0 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 53 ).{.$this->io->writeError('....S
68300 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 20 27 2e 24 62 69 kipped.installation.of.bin.'.$bi
68320 6e 2e 27 2e 62 61 74 20 70 72 6f 78 79 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 n.'.bat.proxy.for.package.'.$pac
68340 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 61 20 2e 62 61 74 20 70 72 6f 78 79 20 kage->getName().':.a..bat.proxy.
68360 77 61 73 20 61 6c 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 27 29 3b 0a 7d 0a 7d 0a 69 66 20 was.already.installed');.}.}.if.
68380 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 (!file_exists($link)).{.file_put
683a0 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
683c0 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b WindowsProxyCode($binPath,.$link
683e0 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 ));.}.}..protected.function.inst
68400 61 6c 6c 53 79 6d 6c 69 6e 6b 42 69 6e 61 72 69 65 73 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 allSymlinkBinaries($binPath,.$li
68420 6e 6b 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 nk).{.if.(!$this->filesystem->re
68440 6c 61 74 69 76 65 53 79 6d 6c 69 6e 6b 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 20 lativeSymlink($binPath,.$link)).
68460 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 55 6e 69 78 79 50 72 6f 78 79 42 69 6e 61 72 69 {.$this->installUnixyProxyBinari
68480 65 73 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 es($binPath,.$link);.}.}..protec
684a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 55 6e 69 78 79 50 72 6f 78 79 42 69 ted.function.installUnixyProxyBi
684c0 6e 61 72 69 65 73 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 66 69 6c 65 5f 70 naries($binPath,.$link).{.file_p
684e0 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 61 ut_contents($link,.$this->genera
68500 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 6b teUnixyProxyCode($binPath,.$link
68520 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 72 65 6d 6f 76 65 ));.}..protected.function.remove
68540 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 63 6b 61 Binaries(PackageInterface.$packa
68560 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 65 74 42 69 6e 61 ge).{.$binaries.=.$this->getBina
68580 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 72 69 65 73 29 20 ries($package);.if.(!$binaries).
685a0 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 72 69 65 73 20 61 {.return;.}.foreach.($binaries.a
685c0 73 20 24 62 69 6e 29 20 7b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e s.$bin).{.$link.=.$this->binDir.
685e0 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 '/'.basename($bin);.if.(is_link(
68600 24 6c 69 6e 6b 29 20 7c 7c 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a $link).||.file_exists($link)).{.
68620 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 6c 69 6e 6b 29 $this->filesystem->unlink($link)
68640 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 ;.}.if.(file_exists($link.'.bat'
68660 29 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 )).{.$this->filesystem->unlink($
68680 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 28 69 73 5f 64 69 72 link.'.bat');.}.}....if.((is_dir
686a0 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 29 20 26 26 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 ($this->binDir)).&&.($this->file
686c0 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 system->isDirEmpty($this->binDir
686e0 29 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 7d 0a 7d ))).{.@rmdir($this->binDir);.}.}
68700 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 56 ..protected.function.initializeV
68720 65 6e 64 6f 72 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e endorDir().{.$this->filesystem->
68740 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 76 65 6e ensureDirectoryExists($this->ven
68760 64 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 65 61 6c dorDir);.$this->vendorDir.=.real
68780 70 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 path($this->vendorDir);.}..prote
687a0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 cted.function.initializeBinDir()
687c0 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 .{.$this->filesystem->ensureDire
687e0 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 24 74 68 69 ctoryExists($this->binDir);.$thi
68800 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 s->binDir.=.realpath($this->binD
68820 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 ir);.}..protected.function.gener
68840 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 ateWindowsProxyCode($bin,.$link)
68860 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d .{.$binPath.=.$this->filesystem-
68880 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a >findShortestPath($link,.$bin);.
688a0 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 20 if.('.bat'.===.substr($bin,.-4).
688c0 7c 7c 20 27 2e 65 78 65 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 ||.'.exe'.===.substr($bin,.-4)).
688e0 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 {.$caller.=.'call';.}.else.{.$ha
68900 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d ndle.=.fopen($bin,.'r');.$line.=
68920 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 .fgets($handle);.fclose($handle)
68940 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 ;.if.(preg_match('{^#!/(?:usr/bi
68960 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 n/env.)?(?:[^/]+/)*(.+)$}m',.$li
68980 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d ne,.$match)).{.$caller.=.trim($m
689a0 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 atch[1]);.}.else.{.$caller.=.'ph
689c0 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 45 43 48 4f 20 4f 46 46 5c 72 5c 6e 22 2e p';.}.}..return."@ECHO.OFF\r\n".
689e0 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 74 72 69 6d 28 50 72 ."SET.BIN_TARGET=%~dp0/".trim(Pr
68a00 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 6e 50 61 74 68 29 2c ocessExecutor::escape($binPath),
68a20 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 5c 22 25 42 49 4e 5f .'"')."\r\n".."{$caller}.\"%BIN_
68a40 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 74 65 63 74 65 64 20 TARGET%\".%*\r\n";.}..protected.
68a60 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 78 79 43 6f 64 65 28 function.generateUnixyProxyCode(
68a80 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 74 68 69 73 2d $bin,.$link).{.$binPath.=.$this-
68aa0 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 6c >filesystem->findShortestPath($l
68ac0 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 0a 24 62 69 6e 44 69 72 20 3d 20 50 72 6f 63 65 73 73 45 78 ink,.$bin);..$binDir.=.ProcessEx
68ae0 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 61 74 68 29 ecutor::escape(dirname($binPath)
68b00 29 3b 0a 24 62 69 6e 46 69 6c 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 );.$binFile.=.basename($binPath)
68b20 3b 0a 0a 24 70 72 6f 78 79 43 6f 64 65 20 3d 20 3c 3c 3c 50 52 4f 58 59 0a 23 21 2f 75 73 72 2f ;..$proxyCode.=.<<<PROXY.#!/usr/
68b40 62 69 6e 2f 65 6e 76 20 73 68 0a 0a 64 69 72 3d 24 28 64 3d 5c 24 7b 30 25 5b 2f 5c 5c 5c 5c 5d bin/env.sh..dir=$(d=\${0%[/\\\\]
68b60 2a 7d 3b 20 63 64 20 22 5c 24 64 22 3b 20 63 64 20 24 62 69 6e 44 69 72 20 26 26 20 70 77 64 29 *};.cd."\$d";.cd.$binDir.&&.pwd)
68b80 0a 0a 23 20 53 65 65 20 69 66 20 77 65 20 61 72 65 20 72 75 6e 6e 69 6e 67 20 69 6e 20 43 79 67 ..#.See.if.we.are.running.in.Cyg
68ba0 77 69 6e 20 62 79 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 63 79 67 70 61 74 68 20 70 72 6f 67 win.by.checking.for.cygpath.prog
68bc0 72 61 6d 0a 69 66 20 63 6f 6d 6d 61 6e 64 20 2d 76 20 27 63 79 67 70 61 74 68 27 20 3e 2f 64 65 ram.if.command.-v.'cygpath'.>/de
68be0 76 2f 6e 75 6c 6c 20 32 3e 26 31 3b 20 74 68 65 6e 0a 09 23 20 43 79 67 77 69 6e 20 70 61 74 68 v/null.2>&1;.then..#.Cygwin.path
68c00 73 20 73 74 61 72 74 20 77 69 74 68 20 2f 63 79 67 64 72 69 76 65 2f 20 77 68 69 63 68 20 77 69 s.start.with./cygdrive/.which.wi
68c20 6c 6c 20 62 72 65 61 6b 20 77 69 6e 64 6f 77 73 20 50 48 50 2c 0a 09 23 20 73 6f 20 77 65 20 6e ll.break.windows.PHP,..#.so.we.n
68c40 65 65 64 20 74 6f 20 74 72 61 6e 73 6c 61 74 65 20 74 68 65 20 64 69 72 20 70 61 74 68 20 74 6f eed.to.translate.the.dir.path.to
68c60 20 77 69 6e 64 6f 77 73 20 66 6f 72 6d 61 74 2e 20 48 6f 77 65 76 65 72 0a 09 23 20 77 65 20 63 .windows.format..However..#.we.c
68c80 6f 75 6c 64 20 62 65 20 75 73 69 6e 67 20 63 79 67 77 69 6e 20 50 48 50 20 77 68 69 63 68 20 64 ould.be.using.cygwin.PHP.which.d
68ca0 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 74 68 69 73 2c 20 73 6f 20 77 65 0a 09 23 20 74 oes.not.require.this,.so.we..#.t
68cc0 65 73 74 20 69 66 20 74 68 65 20 70 61 74 68 20 74 6f 20 50 48 50 20 73 74 61 72 74 73 20 77 69 est.if.the.path.to.PHP.starts.wi
68ce0 74 68 20 2f 63 79 67 64 72 69 76 65 2f 20 72 61 74 68 65 72 20 74 68 61 6e 20 2f 75 73 72 2f 62 th./cygdrive/.rather.than./usr/b
68d00 69 6e 0a 09 69 66 20 5b 5b 20 24 28 77 68 69 63 68 20 70 68 70 29 20 3d 3d 20 2f 63 79 67 64 72 in..if.[[.$(which.php).==./cygdr
68d20 69 76 65 2f 2a 20 5d 5d 3b 20 74 68 65 6e 0a 09 09 64 69 72 3d 24 28 63 79 67 70 61 74 68 20 2d ive/*.]];.then...dir=$(cygpath.-
68d40 6d 20 5c 24 64 69 72 29 3b 0a 09 66 69 0a 66 69 0a 0a 64 69 72 3d 24 28 65 63 68 6f 20 5c 24 64 m.\$dir);..fi.fi..dir=$(echo.\$d
68d60 69 72 20 7c 20 73 65 64 20 27 73 2f 20 2f 5c 20 2f 67 27 29 0a 22 5c 24 7b 64 69 72 7d 2f 24 62 ir.|.sed.'s/./\./g')."\${dir}/$b
68d80 69 6e 46 69 6c 65 22 20 22 24 40 22 0a 0a 50 52 4f 58 59 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 inFile"."$@"..PROXY;..return.$pr
68da0 6f 78 79 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 oxyCode;.}.}.<?php............na
68dc0 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 73 65 mespace.Composer\Installer;..use
68de0 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
68e00 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\
68e20 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a Package\PackageInterface;.......
68e40 63 6c 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 class.MetapackageInstaller.imple
68e60 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 ments.InstallerInterface.{....pu
68e80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 blic.function.supports($packageT
68ea0 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 ype).{.return.$packageType.===.'
68ec0 6d 65 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 metapackage';.}.....public.funct
68ee0 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
68f00 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
68f20 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 face.$package).{.return.$repo->h
68f40 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 asPackage($package);.}.....publi
68f60 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f c.function.install(InstalledRepo
68f80 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e sitoryInterface.$repo,.PackageIn
68fa0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 terface.$package).{.$repo->addPa
68fc0 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ckage(clone.$package);.}.....pub
68fe0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 lic.function.update(InstalledRep
69000 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 ositoryInterface.$repo,.PackageI
69020 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 nterface.$initial,.PackageInterf
69040 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 ace.$target).{.if.(!$repo->hasPa
69060 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e ckage($initial)).{.throw.new.\In
69080 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.
690a0 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d is.not.installed:.'.$initial);.}
690c0 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 ..$repo->removePackage($initial)
690e0 3b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 ;.$repo->addPackage(clone.$targe
69100 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 75 6e 69 6e 73 74 t);.}.....public.function.uninst
69120 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 all(InstalledRepositoryInterface
69140 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
69160 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 61 63 e).{.if.(!$repo->hasPackage($pac
69180 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 75 6d kage)).{.throw.new.\InvalidArgum
691a0 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
691c0 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 talled:.'.$package);.}..$repo->r
691e0 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 emovePackage($package);.}.....pu
69200 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 63 blic.function.getInstallPath(Pac
69220 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 6e kageInterface.$package).{.return
69240 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 .'';.}.}.<?php............namesp
69260 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 6d ace.Composer\Installer;..use.Com
69280 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
692a0 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
692c0 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c age\PackageInterface;.........cl
692e0 61 73 73 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 ass.NoopInstaller.implements.Ins
69300 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tallerInterface.{....public.func
69320 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
69340 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e turn.true;.}.....public.function
69360 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 79 .isInstalled(InstalledRepository
69380 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Interface.$repo,.PackageInterfac
693a0 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 50 e.$package).{.return.$repo->hasP
693c0 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 66 ackage($package);.}.....public.f
693e0 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
69400 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
69420 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 face.$package).{.if.(!$repo->has
69440 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 Package($package)).{.$repo->addP
69460 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ackage(clone.$package);.}.}.....
69480 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 6c 65 64 public.function.update(Installed
694a0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
694c0 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
694e0 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 erface.$target).{.if.(!$repo->ha
69500 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 sPackage($initial)).{.throw.new.
69520 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 \InvalidArgumentException('Packa
69540 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 ge.is.not.installed:.'.$initial)
69560 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 ;.}..$repo->removePackage($initi
69580 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 al);.if.(!$repo->hasPackage($tar
695a0 67 65 74 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 get)).{.$repo->addPackage(clone.
695c0 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $target);.}.}.....public.functio
695e0 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 n.uninstall(InstalledRepositoryI
69600 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nterface.$repo,.PackageInterface
69620 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b .$package).{.if.(!$repo->hasPack
69640 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 age($package)).{.throw.new.\Inva
69660 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
69680 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 .not.installed:.'.$package);.}.$
696a0 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d repo->removePackage($package);.}
696c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 .....public.function.getInstallP
696e0 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b ath(PackageInterface.$package).{
69700 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 .$targetDir.=.$package->getTarge
69720 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 tDir();..return.$package->getPre
69740 74 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 ttyName()...($targetDir.?.'/'.$t
69760 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a argetDir.:.'');.}.}.<?php.......
69780 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 .....namespace.Composer\Installe
697a0 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 0a 75 73 65 20 43 r;..use.Composer\Composer;.use.C
697c0 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
697e0 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 6f oser\DependencyResolver\Operatio
69800 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 73 n\OperationInterface;.use.Compos
69820 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 6e 74 65 er\DependencyResolver\PolicyInte
69840 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 65 rface;.use.Composer\DependencyRe
69860 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 64 solver\Pool;.use.Composer\Depend
69880 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 73 encyResolver\Request;.use.Compos
698a0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 er\Repository\CompositeRepositor
698c0 79 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 y;.......class.PackageEvent.exte
698e0 6e 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 nds.InstallerEvent.{....private.
69900 24 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 $operation;................publi
69920 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 76 65 6e 74 4e 61 6d c.function.__construct($eventNam
69940 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 e,.Composer.$composer,.IOInterfa
69960 63 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 ce.$io,.$devMode,.PolicyInterfac
69980 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 65 e.$policy,.Pool.$pool,.Composite
699a0 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 65 Repository.$installedRepo,.Reque
699c0 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 2c 20 st.$request,.array.$operations,.
699e0 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 29 0a 7b OperationInterface.$operation).{
69a00 0a 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 .parent::__construct($eventName,
69a20 20 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 .$composer,.$io,.$devMode,.$poli
69a40 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
69a60 65 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 est,.$operations);..$this->opera
69a80 74 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 tion.=.$operation;.}.......publi
69aa0 63 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 c.function.getOperation().{.retu
69ac0 72 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 rn.$this->operation;.}.}.<?php..
69ae0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 ..........namespace.Composer\Ins
69b00 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 74 taller;.......class.PackageEvent
69b20 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 53 s.{........const.PRE_PACKAGE_INS
69b40 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 0a TALL.=.'pre-package-install';...
69b60 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 4c ......const.POST_PACKAGE_INSTALL
69b80 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 0a .=.'post-package-install';......
69ba0 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 70 ...const.PRE_PACKAGE_UPDATE.=.'p
69bc0 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 73 re-package-update';.........cons
69be0 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 61 t.POST_PACKAGE_UPDATE.=.'post-pa
69c00 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 45 ckage-update';.........const.PRE
69c20 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 67 _PACKAGE_UNINSTALL.=.'pre-packag
69c40 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 54 e-uninstall';.........const.POST
69c60 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 61 _PACKAGE_UNINSTALL.=.'post-packa
69c80 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 0a ge-uninstall';.}.<?php..........
69ca0 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 0a ..namespace.Composer\Installer;.
69cc0 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
69ce0 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 65 e.Composer\Composer;.use.Compose
69d00 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f r\Downloader\PearPackageExtracto
69d20 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 49 6e 73 74 61 r;.use.Composer\Repository\Insta
69d40 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
69d60 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;.
69d80 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
69da0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 r;........class.PearInstaller.ex
69dc0 74 65 6e 64 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a tends.LibraryInstaller.{........
69de0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e public.function.__construct(IOIn
69e00 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 2c terface.$io,.Composer.$composer,
69e20 20 24 74 79 70 65 20 3d 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e .$type.=.'pear-library').{.paren
69e40 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 t::__construct($io,.$composer,.$
69e60 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 type);.}.....public.function.upd
69e80 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 ate(InstalledRepositoryInterface
69ea0 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 .$repo,.PackageInterface.$initia
69ec0 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 l,.PackageInterface.$target).{.$
69ee0 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 this->uninstall($repo,.$initial)
69f00 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 ;.$this->install($repo,.$target)
69f20 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 ;.}..protected.function.installC
69f40 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b ode(PackageInterface.$package).{
69f60 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a .parent::installCode($package);.
69f80 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 0a 24 69 73 parent::initializeBinDir();..$is
69fa0 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
69fc0 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 24 74 68 69 73 ERSION_BUILD');.$php_bin.=.$this
69fe0 2d 3e 62 69 6e 44 69 72 20 2e 20 28 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f 63 6f 6d 70 6f ->binDir...($isWindows.?.'/compo
6a000 73 65 72 2d 70 68 70 2e 62 61 74 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b ser-php.bat'.:.'/composer-php');
6a020 0a 0a 69 66 20 28 21 24 69 73 57 69 6e 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 ..if.(!$isWindows).{.$php_bin.=.
6a040 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b 0a 7d 0a 0a 24 '/usr/bin/env.'...$php_bin;.}..$
6a060 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 installPath.=.$this->getInstallP
6a080 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f ath($package);.$vars.=.array(.'o
6a0a0 73 27 20 3d 3e 20 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 s'.=>.$isWindows.?.'windows'.:.'
6a0c0 6c 69 6e 75 78 27 2c 0a 27 70 68 70 5f 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 linux',.'php_bin'.=>.$php_bin,.'
6a0e0 70 65 61 72 5f 70 68 70 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f pear_php'.=>.$installPath,.'php_
6a100 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 dir'.=>.$installPath,.'bin_dir'.
6a120 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f =>.$installPath...'/bin',.'data_
6a140 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a dir'.=>.$installPath...'/data',.
6a160 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 79 'version'.=>.$package->getPretty
6a180 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d Version(),.);..$packageArchive.=
6a1a0 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 67 65 29 .$this->getInstallPath($package)
6a1c0 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 .'/'.pathinfo($package->getDistU
6a1e0 72 6c 28 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 rl(),.PATHINFO_BASENAME);.$pearE
6a200 78 74 72 61 63 74 6f 72 20 3d 20 6e 65 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 xtractor.=.new.PearPackageExtrac
6a220 74 6f 72 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 tor($packageArchive);.$pearExtra
6a240 63 74 6f 72 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c ctor->extractTo($this->getInstal
6a260 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 lPath($package),.array('php'.=>.
6a280 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 '/',.'script'.=>.'/bin',.'data'.
6a2a0 3d 3e 20 27 2f 64 61 74 61 27 29 2c 20 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d =>.'/data'),.$vars);..if.($this-
6a2c0 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 >io->isVerbose()).{.$this->io->w
6a2e0 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a riteError('....Cleaning.up');.}.
6a300 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 70 61 63 6b 61 $this->filesystem->unlink($packa
6a320 67 65 41 72 63 68 69 76 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f geArchive);.}..protected.functio
6a340 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 n.getBinaries(PackageInterface.$
6a360 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 package).{.$binariesPath.=.$this
6a380 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 ->getInstallPath($package)...'/b
6a3a0 69 6e 2f 27 3b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 in/';.$binaries.=.array();.if.(f
6a3c0 69 6c 65 5f 65 78 69 73 74 73 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 ile_exists($binariesPath)).{.for
6a3e0 65 61 63 68 20 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 each.(new.\FilesystemIterator($b
6a400 69 6e 61 72 69 65 73 50 61 74 68 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 inariesPath,.\FilesystemIterator
6a420 3a 3a 4b 45 59 5f 41 53 5f 46 49 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 ::KEY_AS_FILENAME.|.\FilesystemI
6a440 74 65 72 61 74 6f 72 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 terator::CURRENT_AS_FILEINFO).as
6a460 20 24 66 69 6c 65 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 .$fileName.=>.$value).{.if.(!$va
6a480 6c 75 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 lue->isDir()).{.$binaries[].=.'b
6a4a0 69 6e 2f 27 2e 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 in/'.$fileName;.}.}.}..return.$b
6a4c0 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 inaries;.}..protected.function.i
6a4e0 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 nitializeBinDir().{.parent::init
6a500 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 ializeBinDir();.file_put_content
6a520 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c s($this->binDir.'/composer-php',
6a540 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 .$this->generateUnixyPhpProxyCod
6a560 65 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 e());.@chmod($this->binDir.'/com
6a580 70 6f 73 65 72 2d 70 68 70 27 2c 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 poser-php',.0777);.file_put_cont
6a5a0 65 6e 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 ents($this->binDir.'/composer-ph
6a5c0 70 2e 62 61 74 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 p.bat',.$this->generateWindowsPh
6a5e0 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e pProxyCode());.@chmod($this->bin
6a600 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 30 37 37 37 29 3b 0a Dir.'/composer-php.bat',.0777);.
6a620 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 }..protected.function.generateWi
6a640 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 ndowsProxyCode($bin,.$link).{.$b
6a660 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 inPath.=.$this->filesystem->find
6a680 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 ShortestPath($link,.$bin);.if.('
6a6a0 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 .bat'.===.substr($bin,.-4)).{.$c
6a6c0 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 aller.=.'call';.}.else.{.$handle
6a6e0 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 .=.fopen($bin,.'r');.$line.=.fge
6a700 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 ts($handle);.fclose($handle);.if
6a720 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e .(preg_match('{^#!/(?:usr/bin/en
6a740 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 v.)?(?:[^/]+/)*(.+)$}m',.$line,.
6a760 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 $match)).{.$caller.=.trim($match
6a780 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a [1]);.}.else.{.$caller.=.'php';.
6a7a0 7d 0a 0a 69 66 20 28 24 63 61 6c 6c 65 72 20 3d 3d 3d 20 27 70 68 70 27 29 20 7b 0a 72 65 74 75 }..if.($caller.===.'php').{.retu
6a7c0 72 6e 20 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 rn."@echo.off\r\n".."pushd..\r\n
6a7e0 22 2e 0a 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 50 48 50 5f 50 52 4f 58 ".."cd.%~dp0\r\n".."set.PHP_PROX
6a800 59 3d 25 43 44 25 5c 5c 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 Y=%CD%\\composer-php.bat\r\n".."
6a820 63 64 20 22 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 64 69 72 cd.".ProcessExecutor::escape(dir
6a840 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e name($binPath))."\r\n".."set.BIN
6a860 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 _TARGET=%CD%\\".basename($binPat
6a880 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 5f 50 52 4f h)."\r\n".."popd\r\n".."%PHP_PRO
6a8a0 58 59 25 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a XY%.\"%BIN_TARGET%\".%*\r\n";.}.
6a8c0 7d 0a 0a 72 65 74 75 72 6e 20 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 }..return."@echo.off\r\n".."push
6a8e0 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e d..\r\n".."cd.%~dp0\r\n".."cd.".
6a900 50 72 6f 63 65 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 ProcessExecutor::escape(dirname(
6a920 24 62 69 6e 50 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 $binPath))."\r\n".."set.BIN_TARG
6a940 45 54 3d 25 43 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 ET=%CD%\\".basename($binPath)."\
6a960 72 5c 6e 22 2e 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 24 63 61 6c 6c 65 72 2e 22 20 5c 22 25 42 r\n".."popd\r\n"..$caller.".\"%B
6a980 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 69 76 61 74 65 IN_TARGET%\".%*\r\n";.}..private
6a9a0 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 68 70 50 72 6f 78 .function.generateWindowsPhpProx
6a9c0 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 3e yCode().{.$binToVendor.=.$this->
6a9e0 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 68 filesystem->findShortestPath($th
6aa00 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 72 is->binDir,.$this->vendorDir,.tr
6aa20 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 20 2e 0a 22 ue);..return."@echo.off\r\n"..."
6aa40 73 65 74 6c 6f 63 61 6c 20 65 6e 61 62 6c 65 64 65 6c 61 79 65 64 65 78 70 61 6e 73 69 6f 6e 5c setlocal.enabledelayedexpansion\
6aa60 72 5c 6e 22 20 2e 0a 22 73 65 74 20 42 49 4e 5f 44 49 52 3d 25 7e 64 70 30 5c 72 5c 6e 22 20 2e r\n"..."set.BIN_DIR=%~dp0\r\n"..
6aa80 0a 22 73 65 74 20 56 45 4e 44 4f 52 5f 44 49 52 3d 25 42 49 4e 5f 44 49 52 25 5c 5c 22 2e 24 62 ."set.VENDOR_DIR=%BIN_DIR%\\".$b
6aaa0 69 6e 54 6f 56 65 6e 64 6f 72 2e 22 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 44 49 52 53 3d 2e 5c inToVendor."\r\n"..."set.DIRS=.\
6aac0 72 5c 6e 22 20 2e 0a 22 46 4f 52 20 2f 44 20 25 25 56 20 49 4e 20 28 25 56 45 4e 44 4f 52 5f 44 r\n"..."FOR./D.%%V.IN.(%VENDOR_D
6aae0 49 52 25 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 46 4f 52 20 2f 44 20 IR%\\*).DO.(\r\n"..."....FOR./D.
6ab00 25 25 50 20 49 4e 20 28 25 25 56 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 %%P.IN.(%%V\\*).DO.(\r\n"..."...
6ab20 20 20 20 20 20 73 65 74 20 44 49 52 53 3d 21 44 49 52 53 21 3b 25 25 7e 66 50 5c 72 5c 6e 22 20 .....set.DIRS=!DIRS!;%%~fP\r\n".
6ab40 2e 0a 22 20 20 20 20 29 5c 72 5c 6e 22 20 2e 0a 22 29 5c 72 5c 6e 22 20 2e 0a 22 70 68 70 2e 65 .."....)\r\n"...")\r\n"..."php.e
6ab60 78 65 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 21 44 49 52 53 21 20 25 2a 5c 72 5c 6e xe.-d.include_path=!DIRS!.%*\r\n
6ab80 22 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 ";.}..private.function.generateU
6aba0 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 6f nixyPhpProxyCode().{.$binToVendo
6abc0 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 r.=.$this->filesystem->findShort
6abe0 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 65 estPath($this->binDir,.$this->ve
6ac00 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 23 21 2f 75 73 72 2f ndorDir,.true);..return."#!/usr/
6ac20 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 22 53 52 43 5f 44 49 52 3d 60 70 77 64 60 5c 6e 22 bin/env.sh\n".."SRC_DIR=`pwd`\n"
6ac40 2e 0a 22 42 49 4e 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 24 30 60 5c 6e 22 2e 0a 22 56 45 4e .."BIN_DIR=`dirname.$0`\n".."VEN
6ac60 44 4f 52 5f 44 49 52 3d 5c 24 42 49 4e 5f 44 49 52 2f 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 DOR_DIR=\$BIN_DIR/".escapeshella
6ac80 72 67 28 24 62 69 6e 54 6f 56 65 6e 64 6f 72 29 2e 22 5c 6e 22 2e 0a 22 44 49 52 53 3d 5c 22 5c rg($binToVendor)."\n".."DIRS=\"\
6aca0 22 5c 6e 22 2e 0a 22 66 6f 72 20 76 65 6e 64 6f 72 20 69 6e 20 5c 24 56 45 4e 44 4f 52 5f 44 49 "\n".."for.vendor.in.\$VENDOR_DI
6acc0 52 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 76 65 6e R/*;.do\n".."....if.[.-d.\"\$ven
6ace0 64 6f 72 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 66 6f 72 20 70 dor\".];.then\n".."........for.p
6ad00 61 63 6b 61 67 65 20 69 6e 20 5c 24 76 65 6e 64 6f 72 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 ackage.in.\$vendor/*;.do\n".."..
6ad20 20 20 20 20 20 20 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 70 61 63 6b 61 67 65 5c 22 20 ..........if.[.-d.\"\$package\".
6ad40 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 49 52 ];.then\n".."................DIR
6ad60 53 3d 5c 22 5c 24 7b 44 49 52 53 7d 3a 5c 24 7b 70 61 63 6b 61 67 65 7d 5c 22 5c 6e 22 2e 0a 22 S=\"\${DIRS}:\${package}\"\n".."
6ad80 20 20 20 20 20 20 20 20 20 20 20 20 66 69 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 64 6f 6e 65 ............fi\n".."........done
6ada0 5c 6e 22 2e 0a 22 20 20 20 20 66 69 5c 6e 22 2e 0a 22 64 6f 6e 65 5c 6e 22 2e 0a 22 70 68 70 20 \n".."....fi\n".."done\n".."php.
6adc0 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c 24 44 49 52 53 5c 22 20 24 40 5c 6e -d.include_path=\".\$DIRS\".$@\n
6ade0 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ";.}.}.<?php............namespac
6ae00 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
6ae20 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f ser\Composer;.use.Composer\IO\IO
6ae40 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f Interface;.use.Composer\Reposito
6ae60 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b ry\InstalledRepositoryInterface;
6ae80 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
6aea0 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 49 6e 73 74 61 erface;........class.PluginInsta
6aec0 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a ller.extends.LibraryInstaller.{.
6aee0 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a private.$installationManager;...
6af00 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
6af20 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d t(IOInterface.$io,.Composer.$com
6af40 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 poser,.$type.=.'library').{.pare
6af60 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 nt::__construct($io,.$composer,.
6af80 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 'composer-plugin');.$this->insta
6afa0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 llationManager.=.$composer->getI
6afc0 6e 73 74 61 6c 6c 61 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 nstallationManager();.}.....publ
6afe0 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
6b000 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 63 6f e).{.return.$packageType.===.'co
6b020 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 7c 7c 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d mposer-plugin'.||.$packageType.=
6b040 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 3b 0a 7d 0a 0a 0a 0a 0a 70 ==.'composer-installer';.}.....p
6b060 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 ublic.function.install(Installed
6b080 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
6b0a0 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 65 78 74 72 61 20 3d geInterface.$package).{.$extra.=
6b0c0 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 6d 70 74 79 .$package->getExtra();.if.(empty
6b0e0 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 65 77 20 5c ($extra['class'])).{.throw.new.\
6b100 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 72 6f 72 20 UnexpectedValueException('Error.
6b120 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 3e 67 65 74 while.installing.'.$package->get
6b140 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 67 69 6e 20 PrettyName().',.composer-plugin.
6b160 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 20 64 65 66 packages.should.have.a.class.def
6b180 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 65 20 75 73 ined.in.their.extra.key.to.be.us
6b1a0 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 65 70 able.');.}..parent::install($rep
6b1c0 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 o,.$package);.$this->composer->g
6b1e0 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 etPluginManager()->registerPacka
6b200 67 65 28 24 70 61 63 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 ge($package,.true);.}.....public
6b220 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 .function.update(InstalledReposi
6b240 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
6b260 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
6b280 20 24 74 61 72 67 65 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 .$target).{.$extra.=.$target->ge
6b2a0 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 5b 27 63 6c 61 73 tExtra();.if.(empty($extra['clas
6b2c0 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 74 65 64 56 61 6c s'])).{.throw.new.\UnexpectedVal
6b2e0 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 6e 73 74 61 6c 6c ueException('Error.while.install
6b300 69 6e 67 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 27 ing.'.$target->getPrettyName().'
6b320 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 73 20 73 68 6f 75 6c ,.composer-plugin.packages.shoul
6b340 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 d.have.a.class.defined.in.their.
6b360 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 extra.key.to.be.usable.');.}..pa
6b380 72 65 6e 74 3a 3a 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 74 rent::update($repo,.$initial,.$t
6b3a0 61 72 67 65 74 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 arget);.$this->composer->getPlug
6b3c0 69 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 74 61 inManager()->registerPackage($ta
6b3e0 72 67 65 74 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rget,.true);.}.}.<?php..........
6b400 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 0a ..namespace.Composer\Installer;.
6b420 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
6b440 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c erface;.use.Composer\Downloader\
6b460 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 DownloadManager;.use.Composer\Re
6b480 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 pository\InstalledRepositoryInte
6b4a0 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 73 rface;.use.Composer\Util\Filesys
6b4c0 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c tem;........class.ProjectInstall
6b4e0 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 er.implements.InstallerInterface
6b500 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 70 72 69 76 61 74 65 .{.private.$installPath;.private
6b520 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 .$downloadManager;.private.$file
6b540 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
6b560 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 ruct($installPath,.DownloadManag
6b580 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 72 er.$dm).{.$this->installPath.=.r
6b5a0 74 72 69 6d 28 73 74 72 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 trim(strtr($installPath,.'\\',.'
6b5c0 2f 27 29 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 /'),.'/').'/';.$this->downloadMa
6b5e0 6e 61 67 65 72 20 3d 20 24 64 6d 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d nager.=.$dm;.$this->filesystem.=
6b600 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .new.Filesystem;.}........public
6b620 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 .function.supports($packageType)
6b640 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .{.return.true;.}.....public.fun
6b660 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 ction.isInstalled(InstalledRepos
6b680 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
6b6a0 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b erface.$package).{.return.false;
6b6c0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 .}.....public.function.install(I
6b6e0 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
6b700 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).{.
6b720 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 $installPath.=.$this->installPat
6b740 68 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 h;.if.(file_exists($installPath)
6b760 20 26 26 20 21 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 .&&.!$this->filesystem->isDirEmp
6b780 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 ty($installPath)).{.throw.new.\I
6b7a0 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 50 72 6f 6a 65 63 74 nvalidArgumentException("Project
6b7c0 20 64 69 72 65 63 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 69 73 20 6e 6f 74 20 65 .directory.$installPath.is.not.e
6b7e0 6d 70 74 79 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 mpty.");.}.if.(!is_dir($installP
6b800 61 74 68 29 29 20 7b 0a 6d 6b 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 37 37 37 ath)).{.mkdir($installPath,.0777
6b820 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 ,.true);.}.$this->downloadManage
6b840 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 r->download($package,.$installPa
6b860 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 th);.}.....public.function.updat
6b880 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 e(InstalledRepositoryInterface.$
6b8a0 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c repo,.PackageInterface.$initial,
6b8c0 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 74 68 72 .PackageInterface.$target).{.thr
6b8e0 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
6b900 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ("not.supported");.}.....public.
6b920 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f function.uninstall(InstalledRepo
6b940 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e sitoryInterface.$repo,.PackageIn
6b960 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 terface.$package).{.throw.new.\I
6b980 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 nvalidArgumentException("not.sup
6b9a0 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ported");.}........public.functi
6b9c0 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 on.getInstallPath(PackageInterfa
6b9e0 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 ce.$package).{.return.$this->ins
6ba00 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e tallPath;.}.}.<?php............n
6ba20 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 4a 73 6f amespace.Composer\Json;..use.Jso
6ba40 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 64 5c 4a 73 6f 6e nSchema\Validator;.use.Seld\Json
6ba60 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 4a 73 6f 6e 4c 69 Lint\JsonParser;.use.Seld\JsonLi
6ba80 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 6f 6d 70 6f 73 65 nt\ParsingException;.use.Compose
6baa0 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
6bac0 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 poser\Downloader\TransportExcept
6bae0 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 0a 7b 0a 63 6f 6e ion;........class.JsonFile.{.con
6bb00 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 54 52 49 43 54 5f st.LAX_SCHEMA.=.1;.const.STRICT_
6bb20 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 45 53 43 41 50 45 SCHEMA.=.2;..const.JSON_UNESCAPE
6bb40 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 5f 50 52 45 54 54 D_SLASHES.=.64;.const.JSON_PRETT
6bb60 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 55 4e 45 53 43 41 Y_PRINT.=.128;.const.JSON_UNESCA
6bb80 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 65 20 24 70 61 74 PED_UNICODE.=.256;..private.$pat
6bba0 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 75 62 6c 69 63 20 h;.private.$rfs;.........public.
6bbc0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 52 65 6d 6f function.__construct($path,.Remo
6bbe0 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 7b 0a 24 74 68 69 teFilesystem.$rfs.=.null).{.$thi
6bc00 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 20 3d 3d 3d 20 24 s->path.=.$path;..if.(null.===.$
6bc20 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 3f 3a 2f 2f 7d 69 rfs.&&.preg_match('{^https?://}i
6bc40 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 76 61 6c 69 64 41 ',.$path)).{.throw.new.\InvalidA
6bc60 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 73 20 72 65 71 75 rgumentException('http.urls.requ
6bc80 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 74 61 6e 63 65 20 ire.a.RemoteFilesystem.instance.
6bca0 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 66 73 20 3d 20 24 to.be.passed');.}.$this->rfs.=.$
6bcc0 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 20 67 65 74 50 61 rfs;.}.....public.function.getPa
6bce0 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a th().{.return.$this->path;.}....
6bd00 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 29 0a 7b 0a 72 65 ...public.function.exists().{.re
6bd20 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 0a 7d 0a 0a 0a 0a turn.is_file($this->path);.}....
6bd40 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 0a 7b 0a 74 72 79 ....public.function.read().{.try
6bd60 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 20 3d 20 24 74 68 .{.if.($this->rfs).{.$json.=.$th
6bd80 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 2d 3e 70 61 74 68 is->rfs->getContents($this->path
6bda0 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 6c 73 65 20 7b 0a ,.$this->path,.false);.}.else.{.
6bdc0 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 24 74 68 69 73 2d $json.=.file_get_contents($this-
6bde0 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 72 74 45 78 63 65 >path);.}.}.catch.(TransportExce
6be00 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ption.$e).{.throw.new.\RuntimeEx
6be20 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 30 2c 20 24 65 29 ception($e->getMessage(),.0,.$e)
6be40 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
6be60 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e w.new.\RuntimeException('Could.n
6be80 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 6e 22 2e 24 65 2d ot.read.'.$this->path."\n\n".$e-
6bea0 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 73 74 61 74 69 63 >getMessage());.}..return.static
6bec0 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 70 61 74 68 29 3b ::parseJson($json,.$this->path);
6bee0 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 77 72 69 74 65 .}.........public.function.write
6bf00 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 34 38 29 0a 7b 0a (array.$hash,.$options.=.448).{.
6bf20 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 29 3b 0a 69 66 20 $dir.=.dirname($this->path);.if.
6bf40 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 5f 65 78 69 73 74 (!is_dir($dir)).{.if.(file_exist
6bf60 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 70 65 63 74 65 64 s($dir)).{.throw.new.\Unexpected
6bf80 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 73 74 73 20 61 6e ValueException(.$dir.'.exists.an
6bfa0 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 7d 0a 69 66 20 28 d.is.not.a.directory.'.);.}.if.(
6bfc0 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 20 7b 0a 74 68 72 !@mkdir($dir,.0777,.true)).{.thr
6bfe0 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e ow.new.\UnexpectedValueException
6c000 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 64 20 63 6f 75 6c (.$dir.'.does.not.exist.and.coul
6c020 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 0a 24 72 65 74 72 d.not.be.created.'.);.}.}..$retr
6c040 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 29 20 7b 0a 74 72 ies.=.3;.while.($retries--).{.tr
6c060 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 73 2d 3e 70 61 74 y.{.file_put_contents($this->pat
6c080 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 6f 70 74 69 6f 6e h,.static::encode($hash,.$option
6c0a0 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 5f 50 52 45 54 54 s)..($options.&.self::JSON_PRETT
6c0c0 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 61 6b 3b 0a 7d 20 Y_PRINT.?."\n".:.''));.break;.}.
6c0e0 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 74 catch.(\Exception.$e).{.if.($ret
6c100 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 6e 74 69 6e 75 65 ries).{.usleep(500000);.continue
6c120 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 0a 0a 0a 70 75 62 ;.}..throw.$e;.}.}.}.........pub
6c140 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 61 28 24 73 63 68 lic.function.validateSchema($sch
6c160 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 0a 7b 0a 24 63 6f ema.=.self::STRICT_SCHEMA).{.$co
6c180 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d ntent.=.file_get_contents($this-
6c1a0 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 65 28 24 63 6f 6e >path);.$data.=.json_decode($con
6c1c0 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 20 26 26 20 27 6e tent);..if.(null.===.$data.&&.'n
6c1e0 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 3a 76 61 6c 69 64 ull'.!==.$content).{.self::valid
6c200 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 3e 70 61 74 68 29 ateSyntax($content,.$this->path)
6c220 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 20 2e 20 27 2f 2e ;.}..$schemaFile.=.__DIR__...'/.
6c240 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 61 2e 6a 73 6f 6e ./../../res/composer-schema.json
6c260 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 64 65 28 66 69 6c ';.$schemaData.=.json_decode(fil
6c280 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 29 29 3b 0a 0a 69 e_get_contents($schemaFile));..i
6c2a0 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 43 48 45 4d 41 29 f.($schema.===.self::LAX_SCHEMA)
6c2c0 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 50 72 6f 70 65 72 .{.$schemaData->additionalProper
6c2e0 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 72 65 71 75 69 72 ties.=.true;.$schemaData->requir
6c300 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 72 20 3d 20 6e 65 ed.=.array();.}..$validator.=.ne
6c320 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 3e 63 68 65 63 6b w.Validator();.$validator->check
6c340 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 66 20 28 21 24 76 ($data,.$schemaData);....if.(!$v
6c360 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 72 6f 72 73 20 3d alidator->isValid()).{.$errors.=
6c380 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 20 24 76 61 6c 69 .array();.foreach.((array).$vali
6c3a0 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 6f 72 29 20 7b 0a dator->getErrors().as.$error).{.
6c3c0 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 72 74 79 27 5d 20 $errors[].=.($error['property'].
6c3e0 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 20 3a 20 27 27 29 ?.$error['property'].'.:.'.:.'')
6c400 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 77 20 6e 65 77 20 .$error['message'];.}.throw.new.
6c420 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 27 2e 24 74 68 69 JsonValidationException('"'.$thi
6c440 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 74 68 65 20 65 78 s->path.'".does.not.match.the.ex
6c460 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 72 73 29 3b 0a 7d pected.JSON.schema',.$errors);.}
6c480 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 75 62 6c 69 63 20 ..return.true;.}.........public.
6c4a0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f static.function.encode($data,.$o
6c4c0 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f ptions.=.448).{.if.(PHP_VERSION_
6c4e0 49 44 20 3e 3d 20 35 30 34 30 30 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f ID.>=.50400).{.$json.=.json_enco
6c500 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d de($data,.$options);.if.(false.=
6c520 3d 3d 20 24 6a 73 6f 6e 29 20 7b 0a 73 65 6c 66 3a 3a 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 ==.$json).{.self::throwEncodeErr
6c540 6f 72 28 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 or(json_last_error());.}....if.(
6c560 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 3c 20 35 30 34 32 38 20 7c 7c 20 28 50 48 50 5f 56 PHP_VERSION_ID.<.50428.||.(PHP_V
6c580 45 52 53 49 4f 4e 5f 49 44 20 3e 3d 20 35 30 35 30 30 20 26 26 20 50 48 50 5f 56 45 52 53 49 4f ERSION_ID.>=.50500.&&.PHP_VERSIO
6c5a0 4e 5f 49 44 20 3c 20 35 30 35 31 32 29 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f N_ID.<.50512).||.(defined('JSON_
6c5c0 43 5f 56 45 52 53 49 4f 4e 27 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 70 C_VERSION').&&.version_compare(p
6c5e0 68 70 76 65 72 73 69 6f 6e 28 27 6a 73 6f 6e 27 29 2c 20 27 31 2e 33 2e 36 27 2c 20 27 3c 27 29 hpversion('json'),.'1.3.6',.'<')
6c600 29 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 5b 5c 73 )).{.$json.=.preg_replace('/\[\s
6c620 2b 5c 5d 2f 27 2c 20 27 5b 5d 27 2c 20 24 6a 73 6f 6e 29 3b 0a 24 6a 73 6f 6e 20 3d 20 70 72 65 +\]/',.'[]',.$json);.$json.=.pre
6c640 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 7b 5c 73 2b 5c 7d 2f 27 2c 20 27 7b 7d 27 2c 20 24 6a 73 g_replace('/\{\s+\}/',.'{}',.$js
6c660 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 6a 73 6f 6e 20 3d on);.}..return.$json;.}..$json.=
6c680 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d .json_encode($data);.if.(false.=
6c6a0 3d 3d 20 24 6a 73 6f 6e 29 20 7b 0a 73 65 6c 66 3a 3a 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 ==.$json).{.self::throwEncodeErr
6c6c0 6f 72 28 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 3b 0a 7d 0a 0a 24 70 72 65 74 74 or(json_last_error());.}..$prett
6c6e0 79 50 72 69 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 yPrint.=.(bool).($options.&.self
6c700 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 29 3b 0a 24 75 6e 65 73 63 61 70 65 55 ::JSON_PRETTY_PRINT);.$unescapeU
6c720 6e 69 63 6f 64 65 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 nicode.=.(bool).($options.&.self
6c740 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 24 75 6e 65 73 ::JSON_UNESCAPED_UNICODE);.$unes
6c760 63 61 70 65 53 6c 61 73 68 65 73 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 capeSlashes.=.(bool).($options.&
6c780 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 29 3b 0a .self::JSON_UNESCAPED_SLASHES);.
6c7a0 0a 69 66 20 28 21 24 70 72 65 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 .if.(!$prettyPrint.&&.!$unescape
6c7c0 55 6e 69 63 6f 64 65 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a Unicode.&&.!$unescapeSlashes).{.
6c7e0 72 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 4a 73 6f 6e 46 return.$json;.}..$result.=.JsonF
6c800 6f 72 6d 61 74 74 65 72 3a 3a 66 6f 72 6d 61 74 28 24 6a 73 6f 6e 2c 20 24 75 6e 65 73 63 61 70 ormatter::format($json,.$unescap
6c820 65 55 6e 69 63 6f 64 65 2c 20 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 3b 0a 0a 72 65 eUnicode,.$unescapeSlashes);..re
6c840 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 turn.$result;.}........private.s
6c860 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 tatic.function.throwEncodeError(
6c880 24 63 6f 64 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 64 65 29 20 7b 0a 63 61 73 65 20 4a $code).{.switch.($code).{.case.J
6c8a0 53 4f 4e 5f 45 52 52 4f 52 5f 44 45 50 54 48 3a 0a 24 6d 73 67 20 3d 20 27 4d 61 78 69 6d 75 6d SON_ERROR_DEPTH:.$msg.=.'Maximum
6c8c0 20 73 74 61 63 6b 20 64 65 70 74 68 20 65 78 63 65 65 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 .stack.depth.exceeded';.break;.c
6c8e0 61 73 65 20 4a 53 4f 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 ase.JSON_ERROR_STATE_MISMATCH:.$
6c900 6d 73 67 20 3d 20 27 55 6e 64 65 72 66 6c 6f 77 20 6f 72 20 74 68 65 20 6d 6f 64 65 73 20 6d 69 msg.=.'Underflow.or.the.modes.mi
6c920 73 6d 61 74 63 68 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 smatch';.break;.case.JSON_ERROR_
6c940 43 54 52 4c 5f 43 48 41 52 3a 0a 24 6d 73 67 20 3d 20 27 55 6e 65 78 70 65 63 74 65 64 20 63 6f CTRL_CHAR:.$msg.=.'Unexpected.co
6c960 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 20 66 6f 75 6e 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 ntrol.character.found';.break;.c
6c980 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 3a 0a 24 6d 73 67 20 3d 20 27 4d 61 6c ase.JSON_ERROR_UTF8:.$msg.=.'Mal
6c9a0 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 63 68 61 72 61 63 74 65 72 73 2c 20 70 6f 73 73 69 62 6c formed.UTF-8.characters,.possibl
6c9c0 79 20 69 6e 63 6f 72 72 65 63 74 6c 79 20 65 6e 63 6f 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 64 y.incorrectly.encoded';.break;.d
6c9e0 65 66 61 75 6c 74 3a 0a 24 6d 73 67 20 3d 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 3b 0a efault:.$msg.=.'Unknown.error';.
6ca00 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 }..throw.new.\RuntimeException('
6ca20 4a 53 4f 4e 20 65 6e 63 6f 64 69 6e 67 20 66 61 69 6c 65 64 3a 20 27 2e 24 6d 73 67 29 3b 0a 7d JSON.encoding.failed:.'.$msg);.}
6ca40 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 6f 6e ..........public.static.function
6ca60 20 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a .parseJson($json,.$file.=.null).
6ca80 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6a 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 3b 0a {.if.(null.===.$json).{.return;.
6caa0 7d 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 72 75 }.$data.=.json_decode($json,.tru
6cac0 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 20 26 26 20 4a 53 4f 4e 5f 45 e);.if.(null.===.$data.&&.JSON_E
6cae0 52 52 4f 52 5f 4e 4f 4e 45 20 21 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 RROR_NONE.!==.json_last_error())
6cb00 20 7b 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 .{.self::validateSyntax($json,.$
6cb20 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a file);.}..return.$data;.}.......
6cb40 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 20 76 .....protected.static.function.v
6cb60 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 20 3d 20 6e 75 6c alidateSyntax($json,.$file.=.nul
6cb80 6c 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b l).{.$parser.=.new.JsonParser();
6cba0 0a 24 72 65 73 75 6c 74 20 3d 20 24 70 61 72 73 65 72 2d 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b .$result.=.$parser->lint($json);
6cbc0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 .if.(null.===.$result).{.if.(def
6cbe0 69 6e 65 64 28 27 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f ined('JSON_ERROR_UTF8').&&.JSON_
6cc00 45 52 52 4f 52 5f 55 54 46 38 20 3d 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 ERROR_UTF8.===.json_last_error()
6cc20 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
6cc40 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 69 6c 65 2e 27 22 20 69 73 20 6e 6f 74 20 55 54 46 2d ception('"'.$file.'".is.not.UTF-
6cc60 38 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 61 73 20 4a 53 4f 4e 27 29 3b 0a 7d 0a 8,.could.not.parse.as.JSON');.}.
6cc80 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 50 61 72 73 69 .return.true;.}..throw.new.Parsi
6cca0 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 69 6c 65 2e 27 22 20 64 6f 65 73 20 6e 6f ngException('"'.$file.'".does.no
6ccc0 74 20 63 6f 6e 74 61 69 6e 20 76 61 6c 69 64 20 4a 53 4f 4e 27 2e 22 5c 6e 22 2e 24 72 65 73 75 t.contain.valid.JSON'."\n".$resu
6cce0 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 44 65 lt->getMessage(),.$result->getDe
6cd00 74 61 69 6c 73 28 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 tails());.}.}.<?php............n
6cd20 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 0a 0a 0a 0a 0a amespace.Composer\Json;.........
6cd40 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .class.JsonFormatter.{..........
6cd60 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 66 6f 72 6d 61 74 ...public.static.function.format
6cd80 28 24 6a 73 6f 6e 2c 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 ($json,.$unescapeUnicode,.$unesc
6cda0 61 70 65 53 6c 61 73 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 apeSlashes).{.$result.=.'';.$pos
6cdc0 20 3d 20 30 3b 0a 24 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 .=.0;.$strLen.=.strlen($json);.$
6cde0 69 6e 64 65 6e 74 53 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 indentStr.=.'....';.$newLine.=."
6ce00 5c 6e 22 3b 0a 24 6f 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 \n";.$outOfQuotes.=.true;.$buffe
6ce20 72 20 3d 20 27 27 3b 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 r.=.'';.$noescape.=.true;..for.(
6ce40 24 69 20 3d 20 30 3b 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 $i.=.0;.$i.<.$strLen;.$i++).{...
6ce60 24 63 68 61 72 20 3d 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 $char.=.substr($json,.$i,.1);...
6ce80 20 69 66 20 28 27 22 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 .if.('"'.===.$char.&&.$noescape)
6cea0 20 7b 0a 24 6f 75 74 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 .{.$outOfQuotes.=.!$outOfQuotes;
6cec0 0a 7d 0a 0a 69 66 20 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 .}..if.(!$outOfQuotes).{.$buffer
6cee0 20 2e 3d 20 24 63 68 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 ..=.$char;.$noescape.=.'\\'.===.
6cf00 24 63 68 61 72 20 3f 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 $char.?.!$noescape.:.true;.conti
6cf20 6e 75 65 3b 0a 7d 20 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 nue;.}.elseif.(''.!==.$buffer).{
6cf40 0a 69 66 20 28 24 75 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 .if.($unescapeSlashes).{.$buffer
6cf60 20 3d 20 73 74 72 5f 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 .=.str_replace('\\/',.'/',.$buff
6cf80 65 72 29 3b 0a 7d 0a 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 er);.}..if.($unescapeUnicode.&&.
6cfa0 66 75 6e 63 74 69 6f 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 function_exists('mb_convert_enco
6cfc0 64 69 6e 67 27 29 29 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 ding')).{...$buffer.=.preg_repla
6cfe0 63 65 5f 63 61 6c 6c 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 ce_callback('/(\\\\+)u([0-9a-f]{
6d000 34 7d 29 2f 69 27 2c 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 4})/i',.function.($match).{.$l.=
6d020 20 73 74 72 6c 65 6e 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 .strlen($match[1]);..if.($l.%.2)
6d040 20 7b 0a 72 65 74 75 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 .{.return.str_repeat('\\',.$l.-.
6d060 31 29 20 2e 20 6d 62 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 1)...mb_convert_encoding(.pack('
6d080 48 2a 27 2c 20 24 6d 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 H*',.$match[2]),.'UTF-8',.'UCS-2
6d0a0 42 45 27 0a 29 3b 0a 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 BE'.);.}..return.$match[0];.},.$
6d0c0 62 75 66 66 65 72 29 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 buffer);.}..$result..=.$buffer.$
6d0e0 63 68 61 72 3b 0a 24 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 char;.$buffer.=.'';.continue;.}.
6d100 0a 69 66 20 28 27 3a 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 .if.(':'.===.$char).{...$char..=
6d120 20 27 20 27 3b 0a 7d 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 .'.';.}.elseif.(('}'.===.$char.|
6d140 7c 20 27 5d 27 20 3d 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 |.']'.===.$char)).{.$pos--;.$pre
6d160 76 43 68 61 72 20 3d 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 vChar.=.substr($json,.$i.-.1,.1)
6d180 3b 0a 0a 69 66 20 28 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 ;..if.('{'.!==.$prevChar.&&.'['.
6d1a0 21 3d 3d 20 24 70 72 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 !==.$prevChar).{.....$result..=.
6d1c0 24 6e 65 77 4c 69 6e 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 $newLine;.for.($j.=.0;.$j.<.$pos
6d1e0 3b 20 24 6a 2b 2b 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b ;.$j++).{.$result..=.$indentStr;
6d200 0a 7d 0a 7d 20 65 6c 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 .}.}.else.{...$result.=.rtrim($r
6d220 65 73 75 6c 74 29 3b 0a 7d 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a esult);.}.}..$result..=.$char;..
6d240 0a 20 0a 20 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d ....if.(','.===.$char.||.'{'.===
6d260 20 24 63 68 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 .$char.||.'['.===.$char).{.$resu
6d280 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 0a 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 lt..=.$newLine;..if.('{'.===.$ch
6d2a0 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d ar.||.'['.===.$char).{.$pos++;.}
6d2c0 0a 0a 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 ..for.($j.=.0;.$j.<.$pos;.$j++).
6d2e0 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 7d 0a 0a {.$result..=.$indentStr;.}.}.}..
6d300 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a return.$result;.}.}.<?php.......
6d320 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
6d340 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 se.Composer\Repository\PlatformR
6d360 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c epository;.....class.JsonManipul
6d380 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 42 ator.{.private.static.$RECURSE_B
6d3a0 4c 4f 43 4b 53 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 41 LOCKS;.private.static.$RECURSE_A
6d3c0 52 52 41 59 53 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 56 41 4c 55 RRAYS;.private.static.$JSON_VALU
6d3e0 45 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 3b 0a E;.private.static.$JSON_STRING;.
6d400 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 6e 65 77 .private.$contents;.private.$new
6d420 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 64 65 6e 74 3b 0a 0a 70 75 62 6c 69 63 20 66 line;.private.$indent;..public.f
6d440 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 73 29 0a 7b unction.__construct($contents).{
6d460 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 29 20 7b 0a 73 .if.(!self::$RECURSE_BLOCKS).{.s
6d480 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 20 3d 20 27 28 3f 3a 5b 5e 7b 7d 5d elf::$RECURSE_BLOCKS.=.'(?:[^{}]
6d4a0 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b *|\{(?:[^{}]*|\{(?:[^{}]*|\{(?:[
6d4c0 5e 7b 7d 5d 2a 7c 5c 7b 5b 5e 7b 7d 5d 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 27 3b ^{}]*|\{[^{}]*\})*\})*\})*\})*';
6d4e0 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 41 52 52 41 59 53 20 3d 20 27 28 3f 3a 5b 5e 5c .self::$RECURSE_ARRAYS.=.'(?:[^\
6d500 5d 5d 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 28 3f ]]*|\[(?:[^\]]*|\[(?:[^\]]*|\[(?
6d520 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 5b 5e 5c 5d 5d 2a 5c 5d 29 2a 5c 5d 29 2a 5c 5d 29 2a 5c 5d 7c 27 :[^\]]*|\[[^\]]*\])*\])*\])*\]|'
6d540 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 2a 27 3b 0a 73 65 6c .self::$RECURSE_BLOCKS.')*';.sel
6d560 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 20 3d 20 27 22 28 3f 3a 5b 5e 5c 30 2d 5c 78 30 39 f::$JSON_STRING.=.'"(?:[^\0-\x09
6d580 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 2b 7c 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c \x0a-\x1f\\\\"]+|\\\\["bfnrt/\\\
6d5a0 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 29 2a 22 27 3b 0a 73 65 6c 66 \]|\\\\u[a-fA-F0-9]{4})*"';.self
6d5c0 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 20 3d 20 27 28 3f 3a 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c ::$JSON_VALUE.=.'(?:[0-9.]+|null
6d5e0 7c 74 72 75 65 7c 66 61 6c 73 65 7c 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 |true|false|'.self::$JSON_STRING
6d600 2e 27 7c 5c 5b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 41 52 52 41 59 53 2e 27 5c 5d .'|\['.self::$RECURSE_ARRAYS.'\]
6d620 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 27 |\{'.self::$RECURSE_BLOCKS.'\})'
6d640 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 74 72 69 6d 28 24 63 6f 6e 74 65 6e 74 73 29 ;.}..$contents.=.trim($contents)
6d660 3b 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 20 3d 3d 3d 20 27 27 29 20 7b 0a 24 63 6f 6e 74 65 ;.if.($contents.===.'').{.$conte
6d680 6e 74 73 20 3d 20 27 7b 7d 27 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 nts.=.'{}';.}.if.(!$this->pregMa
6d6a0 74 63 68 28 27 23 5e 5c 7b 28 2e 2a 29 5c 7d 24 23 73 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 tch('#^\{(.*)\}$#s',.$contents))
6d6c0 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
6d6e0 65 70 74 69 6f 6e 28 27 54 68 65 20 6a 73 6f 6e 20 66 69 6c 65 20 6d 75 73 74 20 62 65 20 61 6e eption('The.json.file.must.be.an
6d700 20 6f 62 6a 65 63 74 20 28 7b 7d 29 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 .object.({})');.}.$this->newline
6d720 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 22 .=.false.!==.strpos($contents,."
6d740 5c 72 5c 6e 22 29 20 3f 20 22 5c 72 5c 6e 22 20 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 73 2d 3e 63 \r\n").?."\r\n".:."\n";.$this->c
6d760 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 20 3d 3d 3d 20 27 7b 7d 27 20 3f 20 27 ontents.=.$contents.===.'{}'.?.'
6d780 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 20 3a 20 24 63 6f 6e {'...$this->newline...'}'.:.$con
6d7a0 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b tents;.$this->detectIndenting();
6d7c0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 .}..public.function.getContents(
6d7e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 ).{.return.$this->contents...$th
6d800 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 is->newline;.}..public.function.
6d820 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 addLink($type,.$package,.$constr
6d840 61 69 6e 74 2c 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 aint,.$sortPackages.=.false).{.$
6d860 64 65 63 6f 64 65 64 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 decoded.=.JsonFile::parseJson($t
6d880 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 his->contents);....if.(!isset($d
6d8a0 65 63 6f 64 65 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ecoded[$type])).{.return.$this->
6d8c0 61 64 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 65 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 addMainKey($type,.array($package
6d8e0 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b 0a 7d 0a 0a 24 72 65 67 65 78 20 3d 20 27 .=>.$constraint));.}..$regex.=.'
6d900 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 52 49 {^(\s*\{\s*(?:'.self::$JSON_STRI
6d920 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 2e 27 NG.'\s*:\s*'.self::$JSON_VALUE.'
6d940 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 73 6f \s*,\s*)*?)'..'('.preg_quote(Jso
6d960 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 74 79 70 65 29 29 2e 27 5c 73 2a 3a 5c 73 2a 29 28 nFile::encode($type)).'\s*:\s*)(
6d980 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 '.self::$JSON_VALUE.')(.*)}s';.i
6d9a0 66 20 28 21 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 68 f.(!$this->pregMatch($regex,.$th
6d9c0 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 72 65 74 75 72 is->contents,.$matches)).{.retur
6d9e0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d n.false;.}..$links.=.$matches[3]
6da00 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 74 79 70 65 5d 5b 24 70 61 ;..if.(isset($decoded[$type][$pa
6da20 63 6b 61 67 65 5d 29 29 20 7b 0a 0a 20 24 70 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 ckage])).{...$packageRegex.=.str
6da40 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f _replace('/',.'\\\\?/',.preg_quo
6da60 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 te($package));...$links.=.preg_r
6da80 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 28 5c 73 2a eplace('{"'.$packageRegex.'"(\s*
6daa0 3a 5c 73 2a 29 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 7d 69 27 2c 20 :\s*)'.self::$JSON_STRING.'}i',.
6dac0 61 64 64 63 73 6c 61 73 68 65 73 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 addcslashes(JsonFile::encode($pa
6dae0 63 6b 61 67 65 29 2e 27 24 7b 31 7d 22 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 2c 20 ckage).'${1}"'.$constraint.'"',.
6db00 27 5c 5c 27 29 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 '\\'),.$links);.}.else.{.if.($th
6db20 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5e 5c 73 2a 5c 7b 5c 73 2a 5c 53 2b 2e 2a 3f 28 is->pregMatch('#^\s*\{\s*\S+.*?(
6db40 5c 73 2a 5c 7d 5c 73 2a 29 24 23 73 27 2c 20 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 \s*\}\s*)$#s',.$links,.$match)).
6db60 7b 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 0a 27 7b 27 2e 70 {...$links.=.preg_replace(.'{'.p
6db80 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 63 68 5b 31 5d 29 2e 27 24 7d 27 2c 0a 61 64 64 63 73 reg_quote($match[1]).'$}',.addcs
6dba0 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
6dbc0 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 his->indent...$this->indent...Js
6dbe0 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 onFile::encode($package).':.'.Js
6dc00 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6d onFile::encode($constraint)...$m
6dc20 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 atch[1],.'\\'),.$links.);.}.else
6dc40 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 .{...$links.=.'{'...$this->newli
6dc60 6e 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 ne...$this->indent...$this->inde
6dc80 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e nt...JsonFile::encode($package).
6dca0 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e ':.'.JsonFile::encode($constrain
6dcc0 74 29 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 64 t)...$this->newline...$this->ind
6dce0 65 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 73 6f ent...'}';.}.}..if.(true.===.$so
6dd00 72 74 50 61 63 6b 61 67 65 73 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6a 73 rtPackages).{.$requirements.=.js
6dd20 6f 6e 5f 64 65 63 6f 64 65 28 24 6c 69 6e 6b 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e on_decode($links,.true);.$this->
6dd40 73 6f 72 74 50 61 63 6b 61 67 65 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 24 6c 69 sortPackages($requirements);.$li
6dd60 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 65 6d 65 6e 74 nks.=.$this->format($requirement
6dd80 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 61 74 63 68 65 s);.}..$this->contents.=.$matche
6dda0 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 20 2e 20 24 6d s[1]...$matches[2]...$links...$m
6ddc0 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 0a 0a 0a 0a 0a atches[4];..return.true;.}......
6dde0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 50 61 63 6b 61 67 65 73 ...private.function.sortPackages
6de00 28 61 72 72 61 79 20 26 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 (array.&$packages.=.array()).{.$
6de20 70 72 65 66 69 78 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 prefix.=.function.($requirement)
6de40 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 .{.if.(preg_match(PlatformReposi
6de60 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 72 tory::PLATFORM_PACKAGE_REGEX,.$r
6de80 65 71 75 69 72 65 6d 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 equirement)).{.return.preg_repla
6dea0 63 65 28 0a 61 72 72 61 79 28 0a 27 2f 5e 70 68 70 2f 27 2c 0a 27 2f 5e 68 68 76 6d 2f 27 2c 0a ce(.array(.'/^php/',.'/^hhvm/',.
6dec0 27 2f 5e 65 78 74 2f 27 2c 0a 27 2f 5e 6c 69 62 2f 27 2c 0a 27 2f 5e 5c 44 2f 27 2c 0a 29 2c 0a '/^ext/',.'/^lib/',.'/^\D/',.),.
6dee0 61 72 72 61 79 28 0a 27 30 2d 24 30 27 2c 0a 27 31 2d 24 30 27 2c 0a 27 32 2d 24 30 27 2c 0a 27 array(.'0-$0',.'1-$0',.'2-$0',.'
6df00 33 2d 24 30 27 2c 0a 27 34 2d 24 30 27 2c 0a 29 2c 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 0a 29 3-$0',.'4-$0',.),.$requirement.)
6df20 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 35 2d 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 3b 0a 7d ;.}..return.'5-'.$requirement;.}
6df40 3b 0a 0a 75 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 ;..uksort($packages,.function.($
6df60 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 72 65 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 a,.$b).use.($prefix).{.return.st
6df80 72 6e 61 74 63 6d 70 28 24 70 72 65 66 69 78 28 24 61 29 2c 20 24 70 72 65 66 69 78 28 24 62 29 rnatcmp($prefix($a),.$prefix($b)
6dfa0 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 );.});.}..public.function.addRep
6dfc0 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e ository($name,.$config).{.return
6dfe0 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 .$this->addSubNode('repositories
6e000 27 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ',.$name,.$config);.}..public.fu
6e020 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b nction.removeRepository($name).{
6e040 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 72 65 .return.$this->removeSubNode('re
6e060 70 6f 73 69 74 6f 72 69 65 73 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 positories',.$name);.}..public.f
6e080 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 unction.addConfigSetting($name,.
6e0a0 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f $value).{.return.$this->addSubNo
6e0c0 64 65 28 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a de('config',.$name,.$value);.}..
6e0e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 public.function.removeConfigSett
6e100 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 ing($name).{.return.$this->remov
6e120 65 53 75 62 4e 6f 64 65 28 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 eSubNode('config',.$name);.}..pu
6e140 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f blic.function.addSubNode($mainNo
6e160 64 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 de,.$name,.$value).{.$decoded.=.
6e180 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 63 6f 6e 74 65 JsonFile::parseJson($this->conte
6e1a0 6e 74 73 29 3b 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 6e 5f 61 nts);..$subName.=.null;.if.(in_a
6e1c0 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 27 2c 20 rray($mainNode,.array('config',.
6e1e0 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 20 73 74 'repositories')).&&.false.!==.st
6e200 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 65 2c 20 rpos($name,.'.')).{.list($name,.
6e220 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 65 2c 20 $subName).=.explode('.',.$name,.
6e240 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 64 65 64 5b 24 6d 61 2);.}....if.(!isset($decoded[$ma
6e260 69 6e 4e 6f 64 65 5d 29 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c inNode])).{.if.($subName.!==.nul
6e280 6c 29 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 l).{.$this->addMainKey($mainNode
6e2a0 2c 20 61 72 72 61 79 28 24 6e 61 6d 65 20 3d 3e 20 61 72 72 61 79 28 24 73 75 62 4e 61 6d 65 20 ,.array($name.=>.array($subName.
6e2c0 3d 3e 20 24 76 61 6c 75 65 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 =>.$value)));.}.else.{.$this->ad
6e2e0 64 4d 61 69 6e 4b 65 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 61 72 72 61 79 28 24 6e 61 6d 65 20 dMainKey($mainNode,.array($name.
6e300 3d 3e 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a =>.$value));.}..return.true;.}..
6e320 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e ..$nodeRegex.=.'{^(\s*\{\s*(?:'.
6e340 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 65 6c self::$JSON_STRING.'\s*:\s*'.sel
6e360 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 27 28 f::$JSON_VALUE.'\s*,\s*)*?)'..'(
6e380 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 24 6d '.preg_quote(JsonFile::encode($m
6e3a0 61 69 6e 4e 6f 64 65 29 29 2e 27 5c 73 2a 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 ainNode)).'\s*:\s*\{)('.self::$R
6e3c0 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 28 2e 2a 29 7d 73 27 3b 0a 74 72 79 ECURSE_BLOCKS.')(\})(.*)}s';.try
6e3e0 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 24 6e 6f 64 65 52 65 .{.if.(!$this->pregMatch($nodeRe
6e400 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b gex,.$this->contents,.$match)).{
6e420 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 .return.false;.}.}.catch.(\Runti
6e440 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 2d 3e 67 65 74 43 6f 64 meException.$e).{.if.($e->getCod
6e460 65 28 29 20 3d 3d 3d 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 e().===.PREG_BACKTRACK_LIMIT_ERR
6e480 4f 52 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 74 68 72 6f 77 20 24 65 3b 0a OR).{.return.false;.}.throw.$e;.
6e4a0 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 33 5d 3b 0a 0a 0a 20 69 66 20 }..$children.=.$match[3];....if.
6e4c0 28 21 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 (!@json_decode('{'.$children.'}'
6e4e0 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 61 74 20 3d 20 24 74 )).{.return.false;.}..$that.=.$t
6e500 68 69 73 3b 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 7b 28 his;....if.($this->pregMatch('{(
6e520 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 5c 73 2a 29 28 "'.preg_quote($name).'"\s*:\s*)(
6e540 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 27 2c 20 24 63 '.self::$JSON_VALUE.')(,?)}',.$c
6e560 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 hildren,.$matches)).{.$children.
6e580 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 22 27 2e 70 72 =.preg_replace_callback('{("'.pr
6e5a0 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c eg_quote($name).'"\s*:\s*)('.sel
6e5c0 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2c 3f 29 7d 27 2c 20 66 75 6e 63 74 69 6f f::$JSON_VALUE.')(,?)}',.functio
6e5e0 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d n.($matches).use.($name,.$subNam
6e600 65 2c 20 24 76 61 6c 75 65 2c 20 24 74 68 61 74 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 e,.$value,.$that).{.if.($subName
6e620 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f .!==.null).{.$curVal.=.json_deco
6e640 64 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 74 72 75 65 29 3b 0a 24 63 75 72 56 61 6c 5b 24 de($matches[2],.true);.$curVal[$
6e660 73 75 62 4e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 24 76 61 6c 75 65 20 3d 20 24 63 75 72 subName].=.$value;.$value.=.$cur
6e680 56 61 6c 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 74 68 Val;.}..return.$matches[1]...$th
6e6a0 61 74 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e 20 24 6d 61 74 63 68 65 73 at->format($value,.1)...$matches
6e6c0 5b 33 5d 3b 0a 7d 2c 20 24 63 68 69 6c 64 72 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 [3];.},.$children);.}.elseif.($t
6e6e0 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5b 5e 5c 73 5d 28 5c 73 2a 29 24 23 27 2c 20 his->pregMatch('#[^\s](\s*)$#',.
6e700 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 $children,.$match)).{.if.($subNa
6e720 6d 65 20 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 me.!==.null).{.$value.=.array($s
6e740 75 62 4e 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 ubName.=>.$value);.}....$childre
6e760 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e n.=.preg_replace(.'#'.$match[1].
6e780 27 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e '$#',.addcslashes(','...$this->n
6e7a0 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 24 74 68 69 73 2d 3e ewline...$this->indent...$this->
6e7c0 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 6e 61 6d 65 29 indent...JsonFile::encode($name)
6e7e0 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e .':.'.$this->format($value,.1)..
6e800 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 63 68 69 6c 64 72 65 6e 0a 29 3b 0a .$match[1],.'\\'),.$children.);.
6e820 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 }.else.{.if.($subName.!==.null).
6e840 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 28 24 73 75 62 4e 61 6d 65 20 3d 3e 20 24 76 61 {.$value.=.array($subName.=>.$va
6e860 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 65 lue);.}....$children.=.$this->ne
6e880 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 wline...$this->indent...$this->i
6e8a0 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 6e 61 6d 65 29 2e ndent...JsonFile::encode($name).
6e8c0 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e 20 ':.'.$this->format($value,.1)...
6e8e0 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 $children;.}..$this->contents.=.
6e900 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 61 64 64 63 73 6c 61 preg_replace($nodeRegex,.addcsla
6e920 73 68 65 73 28 27 24 7b 31 7d 24 7b 32 7d 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 24 7b 34 7d 24 shes('${1}${2}'.$children.'${4}$
6e940 7b 35 7d 27 2c 20 27 5c 5c 27 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a {5}',.'\\'),.$this->contents);..
6e960 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 return.true;.}..public.function.
6e980 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 0a removeSubNode($mainNode,.$name).
6e9a0 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e {.$decoded.=.JsonFile::parseJson
6e9c0 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 65 6d 70 74 79 28 ($this->contents);....if.(empty(
6e9e0 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 $decoded[$mainNode])).{.return.t
6ea00 72 75 65 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 5c 7b rue;.}....$nodeRegex.=.'{^(\s*\{
6ea20 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 2a 3a \s*(?:'.self::$JSON_STRING.'\s*:
6ea40 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 2a 29 \s*'.self::$JSON_VALUE.'\s*,\s*)
6ea60 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 3a 65 *?)'..'('.preg_quote(JsonFile::e
6ea80 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 27 2e ncode($mainNode)).'\s*:\s*\{)('.
6eaa0 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 2a 29 self::$RECURSE_BLOCKS.')(\})(.*)
6eac0 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 63 68 }s';.try.{.if.(!$this->pregMatch
6eae0 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 24 6d ($nodeRegex,.$this->contents,.$m
6eb00 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 63 68 atch)).{.return.false;.}.}.catch
6eb20 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 24 65 .(\RuntimeException.$e).{.if.($e
6eb40 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 5f 4c ->getCode().===.PREG_BACKTRACK_L
6eb60 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 74 68 IMIT_ERROR).{.return.false;.}.th
6eb80 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 33 5d row.$e;.}..$children.=.$match[3]
6eba0 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 69 6c ;....if.(!@json_decode('{'.$chil
6ebc0 64 72 65 6e 2e 27 7d 27 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b dren.'}',.true)).{.return.false;
6ebe0 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 6e 5f 61 72 72 61 .}..$subName.=.null;.if.(in_arra
6ec00 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 27 2c 20 27 72 65 y($mainNode,.array('config',.'re
6ec20 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 20 73 74 72 70 6f positories')).&&.false.!==.strpo
6ec40 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 65 2c 20 24 73 75 s($name,.'.')).{.list($name,.$su
6ec60 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 65 2c 20 32 29 3b bName).=.explode('.',.$name,.2);
6ec80 0a 7d 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 6d 61 69 6e 4e .}....if.(!isset($decoded[$mainN
6eca0 6f 64 65 5d 5b 24 6e 61 6d 65 5d 29 20 7c 7c 20 28 24 73 75 62 4e 61 6d 65 20 26 26 20 21 69 73 ode][$name]).||.($subName.&&.!is
6ecc0 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 5b 24 6e 61 6d 65 5d 5b 24 set($decoded[$mainNode][$name][$
6ece0 73 75 62 4e 61 6d 65 5d 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 subName]))).{.return.true;.}....
6ed00 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 7b 22 27 2e 70 72 65 67 5f 71 if.($this->pregMatch('{"'.preg_q
6ed20 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 63 68 69 6c 64 72 65 6e uote($name).'"\s*:}i',.$children
6ed40 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 22 27 2e 70 )).{...if.(preg_match_all('{"'.p
6ed60 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 28 3f 3a 27 2e 73 reg_quote($name).'"\s*:\s*(?:'.s
6ed80 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e elf::$JSON_VALUE.')}',.$children
6eda0 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 27 27 3b 0a ,.$matches)).{.$bestMatch.=.'';.
6edc0 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 20 24 6d 61 74 63 68 29 20 foreach.($matches[0].as.$match).
6ede0 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 62 65 73 74 4d 61 74 63 68 29 20 3c 20 73 74 72 6c 65 {.if.(strlen($bestMatch).<.strle
6ee00 6e 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 24 6d 61 74 63 68 n($match)).{.$bestMatch.=.$match
6ee20 3b 0a 7d 0a 7d 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 ;.}.}.$childrenClean.=.preg_repl
6ee40 61 63 65 28 27 7b 2c 5c 73 2a 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 ace('{,\s*'.preg_quote($bestMatc
6ee60 68 29 2e 27 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 2d 31 2c 20 24 63 6f 75 h).'}i',.'',.$children,.-1,.$cou
6ee80 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 24 63 68 69 6c 64 72 nt);.if.(1.!==.$count).{.$childr
6eea0 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 27 2e 70 72 65 67 5f enClean.=.preg_replace('{'.preg_
6eec0 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 5c 73 2a 2c 3f 5c 73 2a 7d 69 27 2c 20 quote($bestMatch).'\s*,?\s*}i',.
6eee0 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b '',.$childrenClean,.-1,.$count);
6ef00 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 .if.(1.!==.$count).{.return.fals
6ef20 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e e;.}.}.}.}.else.{.$childrenClean
6ef40 20 3d 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 74 72 69 6d 28 24 63 68 .=.$children;.}....if.(!trim($ch
6ef60 69 6c 64 72 65 6e 43 6c 65 61 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 ildrenClean)).{.$this->contents.
6ef80 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 27 24 31 24 32 =.preg_replace($nodeRegex,.'$1$2
6efa0 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2e 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2e 27 '.$this->newline.$this->indent.'
6efc0 24 34 24 35 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 $4$5',.$this->contents);....if.(
6efe0 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 6a $subName.!==.null).{.$curVal.=.j
6f000 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 2c 20 74 72 son_decode('{'.$children.'}',.tr
6f020 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 ue);.unset($curVal[$name][$subNa
6f040 6d 65 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 me]);.$this->addSubNode($mainNod
6f060 65 2c 20 24 6e 61 6d 65 2c 20 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 72 65 e,.$name,.$curVal[$name]);.}..re
6f080 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 24 74 68 turn.true;.}..$that.=.$this;.$th
6f0a0 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c is->contents.=.preg_replace_call
6f0c0 62 61 63 6b 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 back($nodeRegex,.function.($matc
6f0e0 68 65 73 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 hes).use.($that,.$name,.$subName
6f100 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 ,.$childrenClean).{.if.($subName
6f120 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f .!==.null).{.$curVal.=.json_deco
6f140 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 33 5d 2e 27 7d 27 2c 20 74 72 75 65 29 3b 0a 75 de('{'.$matches[3].'}',.true);.u
6f160 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 3b 0a nset($curVal[$name][$subName]);.
6f180 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 73 75 62 73 74 72 28 24 74 68 61 74 2d 3e 66 $childrenClean.=.substr($that->f
6f1a0 6f 72 6d 61 74 28 24 63 75 72 56 61 6c 2c 20 30 29 2c 20 31 2c 20 2d 31 29 3b 0a 7d 0a 0a 72 65 ormat($curVal,.0),.1,.-1);.}..re
6f1c0 74 75 72 6e 20 24 6d 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 turn.$matches[1]...$matches[2]..
6f1e0 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 2e 20 .$childrenClean...$matches[4]...
6f200 24 6d 61 74 63 68 65 73 5b 35 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 $matches[5];.},.$this->contents)
6f220 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ;..return.true;.}..public.functi
6f240 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b 65 79 2c 20 24 63 6f 6e 74 65 6e 74 29 0a 7b 0a on.addMainKey($key,.$content).{.
6f260 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 $decoded.=.JsonFile::parseJson($
6f280 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 this->contents);.$content.=.$thi
6f2a0 73 2d 3e 66 6f 72 6d 61 74 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 0a 20 24 72 65 67 65 78 20 3d s->format($content);....$regex.=
6f2c0 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
6f2e0 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
6f300 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
6f320 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 29 2e 27 5c 73 2a 3a 5c 73 2a 27 sonFile::encode($key)).'\s*:\s*'
6f340 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 .self::$JSON_VALUE.')(.*)}s';.if
6f360 20 28 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6b 65 79 5d 29 20 26 26 20 24 74 68 69 73 .(isset($decoded[$key]).&&.$this
6f380 2d 3e 70 72 65 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 ->pregMatch($regex,.$this->conte
6f3a0 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 nts,.$matches)).{...if.(!@json_d
6f3c0 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 7d 27 29 29 20 7b 0a 72 65 ecode('{'.$matches[2].'}')).{.re
6f3e0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d turn.false;.}..$this->contents.=
6f400 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 .$matches[1]...JsonFile::encode(
6f420 24 6b 65 79 29 2e 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 $key).':.'.$content...$matches[3
6f440 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d ];..return.true;.}....if.($this-
6f460 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 2a 29 5c 7d 24 23 27 2c 20 24 >pregMatch('#[^{\s](\s*)\}$#',.$
6f480 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 this->contents,.$match)).{.$this
6f4a0 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 ->contents.=.preg_replace(.'#'.$
6f4c0 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 match[1].'\}$#',.addcslashes(','
6f4e0 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e ...$this->newline...$this->inden
6f500 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 t...JsonFile::encode($key)..':.'
6f520 2e 20 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d ..$content...$this->newline...'}
6f540 27 2c 20 27 5c 5c 27 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 0a 72 65 ',.'\\'),.$this->contents.);..re
6f560 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 turn.true;.}....$this->contents.
6f580 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 =.preg_replace(.'#\}$#',.addcsla
6f5a0 73 68 65 73 28 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 shes($this->indent...JsonFile::e
6f5c0 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 ncode($key)..':.'.$content...$th
6f5e0 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c 27 29 2c 0a 24 74 68 69 73 2d is->newline...'}',.'\\'),.$this-
6f600 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 >contents.);..return.true;.}..pu
6f620 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 64 61 74 61 2c 20 24 64 65 70 blic.function.format($data,.$dep
6f640 74 68 20 3d 20 30 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b th.=.0).{.if.(is_array($data)).{
6f660 0a 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 6b .reset($data);..if.(is_numeric(k
6f680 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 ey($data))).{.foreach.($data.as.
6f6a0 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 74 $key.=>.$val).{.$data[$key].=.$t
6f6c0 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d his->format($val,.$depth.+.1);.}
6f6e0 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 64 61 74 61 ..return.'['.implode(',.',.$data
6f700 29 2e 27 5d 27 3b 0a 7d 0a 0a 24 6f 75 74 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 ).']';.}..$out.=.'{'...$this->ne
6f720 77 6c 69 6e 65 3b 0a 24 65 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 wline;.$elems.=.array();.foreach
6f740 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 65 6c 65 6d .($data.as.$key.=>.$val).{.$elem
6f760 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 s[].=.str_repeat($this->indent,.
6f780 24 64 65 70 74 68 20 2b 20 32 29 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 $depth.+.2)...JsonFile::encode($
6f7a0 6b 65 79 29 2e 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 key)..':.'.$this->format($val,.$
6f7c0 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 20 2e 20 69 6d 70 depth.+.1);.}..return.$out...imp
6f7e0 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2c 20 24 65 6c 65 6d 73 29 lode(','.$this->newline,.$elems)
6f800 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 73 74 72 5f 72 65 70 65 61 74 28 24 ...$this->newline...str_repeat($
6f820 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 31 29 20 2e 20 27 7d 27 3b this->indent,.$depth.+.1)...'}';
6f840 0a 7d 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 64 61 74 .}..return.JsonFile::encode($dat
6f860 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 63 74 a);.}..protected.function.detect
6f880 49 6e 64 65 6e 74 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 Indenting().{.if.($this->pregMat
6f8a0 63 68 28 27 7b 5e 28 5b 20 5c 74 5d 2b 29 22 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 ch('{^([.\t]+)"}m',.$this->conte
6f8c0 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 64 65 6e 74 20 3d 20 nts,.$match)).{.$this->indent.=.
6f8e0 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 2d 3e 69 6e 64 65 6e $match[1];.}.else.{.$this->inden
6f900 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 64 20 66 75 6e 63 74 t.=.'....';.}.}..protected.funct
6f920 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 26 24 6d 61 74 63 68 ion.pregMatch($re,.$str,.&$match
6f940 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 70 72 65 67 5f 6d 61 es.=.array()).{.$count.=.preg_ma
6f960 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 0a 0a 69 66 20 28 24 tch($re,.$str,.$matches);..if.($
6f980 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 20 28 70 72 65 67 5f count.===.false).{.switch.(preg_
6f9a0 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 5f 4e 4f 5f 45 52 52 last_error()).{.case.PREG_NO_ERR
6f9c0 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 65 70 74 69 6f 6e 28 OR:.throw.new.\RuntimeException(
6f9e0 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 20 50 52 45 47 5f 4e 'Failed.to.execute.regex:.PREG_N
6fa00 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 0a 63 61 73 65 20 50 O_ERROR',.PREG_NO_ERROR);.case.P
6fa20 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 20 6e 65 77 20 5c 52 REG_INTERNAL_ERROR:.throw.new.\R
6fa40 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 untimeException('Failed.to.execu
6fa60 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 52 52 4f 52 27 2c 20 te.regex:.PREG_INTERNAL_ERROR',.
6fa80 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 65 20 50 52 45 47 5f PREG_INTERNAL_ERROR);.case.PREG_
6faa0 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 72 6f 77 20 6e 65 77 BACKTRACK_LIMIT_ERROR:.throw.new
6fac0 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 65 78 .\RuntimeException('Failed.to.ex
6fae0 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 43 4b 5f 4c 49 4d 49 ecute.regex:.PREG_BACKTRACK_LIMI
6fb00 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 4c 49 4d 49 54 5f 45 T_ERROR',.PREG_BACKTRACK_LIMIT_E
6fb20 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 4e 5f 4c 49 4d 49 54 RROR);.case.PREG_RECURSION_LIMIT
6fb40 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 65 70 74 _ERROR:.throw.new.\RuntimeExcept
6fb60 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 20 50 52 ion('Failed.to.execute.regex:.PR
6fb80 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 2c 20 50 52 45 47 5f EG_RECURSION_LIMIT_ERROR',.PREG_
6fba0 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 61 73 65 20 50 52 45 RECURSION_LIMIT_ERROR);.case.PRE
6fbc0 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 65 77 20 5c 52 75 6e G_BAD_UTF8_ERROR:.throw.new.\Run
6fbe0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 timeException('Failed.to.execute
6fc00 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 4f 52 27 2c 20 50 52 .regex:.PREG_BAD_UTF8_ERROR',.PR
6fc20 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 50 52 45 47 5f 42 41 EG_BAD_UTF8_ERROR);.case.PREG_BA
6fc40 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 77 20 6e 65 77 20 5c D_UTF8_OFFSET_ERROR:.throw.new.\
6fc60 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
6fc80 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 4f 46 46 53 45 54 5f ute.regex:.PREG_BAD_UTF8_OFFSET_
6fca0 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 53 45 54 5f 45 52 52 ERROR',.PREG_BAD_UTF8_OFFSET_ERR
6fcc0 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 52 75 6e 74 69 6d 65 OR);.default:.throw.new.\Runtime
6fce0 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 67 Exception('Failed.to.execute.reg
6fd00 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 0a 72 65 74 75 72 6e ex:.Unknown.error');.}.}..return
6fd20 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 0a 0a 0a 0a 0a 6e 61 .$count;.}.}.<?php............na
6fd40 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
6fd60 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
6fd80 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
6fda0 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
6fdc0 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.=
6fde0 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.=.
6fe00 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;
6fe20 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
6fe40 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
6fe60 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
6fe80 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
6fea0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f ace.Composer\Package;..use.Compo
6fec0 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 ser\Semver\Constraint\Constraint
6fee0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 ;.use.Composer\Semver\VersionPar
6ff00 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 ser;.....class.AliasPackage.exte
6ff20 6e 64 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 43 6f 6d 70 6c nds.BasePackage.implements.Compl
6ff40 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 etePackageInterface.{.protected.
6ff60 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 56 65 72 73 69 $version;.protected.$prettyVersi
6ff80 6f 6e 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 65 64 20 24 61 on;.protected.$dev;.protected.$a
6ffa0 6c 69 61 73 4f 66 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c liasOf;.protected.$rootPackageAl
6ffc0 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 ias.=.false;.protected.$stabilit
6ffe0 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 y;..protected.$requires;.protect
70000 65 64 20 24 64 65 76 52 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 ed.$devRequires;.protected.$conf
70020 6c 69 63 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 licts;.protected.$provides;.prot
70040 65 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ected.$replaces;.........public.
70060 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 function.__construct(PackageInte
70080 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 rface.$aliasOf,.$version,.$prett
700a0 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 yVersion).{.parent::__construct(
700c0 24 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 $aliasOf->getName());..$this->ve
700e0 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 rsion.=.$version;.$this->prettyV
70100 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e ersion.=.$prettyVersion;.$this->
70120 61 6c 69 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 aliasOf.=.$aliasOf;.$this->stabi
70140 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 lity.=.VersionParser::parseStabi
70160 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 lity($version);.$this->dev.=.$th
70180 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 66 6f 72 65 61 63 is->stability.===.'dev';..foreac
701a0 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 64 65 76 52 65 71 75 69 72 65 h.(array('requires',.'devRequire
701c0 73 27 2c 20 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 s',.'conflicts',.'provides',.'re
701e0 70 6c 61 63 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 places').as.$type).{.$links.=.$a
70200 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 20 2e 20 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d liasOf->{'get'...ucfirst($type)}
70220 28 29 3b 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 ();.$this->$type.=.$this->replac
70240 65 53 65 6c 66 56 65 72 73 69 6f 6e 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 6c 69 6e 6b 73 2c eSelfVersionDependencies($links,
70260 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$type);.}.}.....public.function
70280 20 67 65 74 41 6c 69 61 73 4f 66 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c .getAliasOf().{.return.$this->al
702a0 69 61 73 4f 66 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 iasOf;.}.....public.function.get
702c0 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f Version().{.return.$this->versio
702e0 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 n;.}.....public.function.getStab
70300 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 ility().{.return.$this->stabilit
70320 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 50 72 65 74 y;.}.....public.function.getPret
70340 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 tyVersion().{.return.$this->pret
70360 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tyVersion;.}.....public.function
70380 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a .isDev().{.return.$this->dev;.}.
703a0 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 69 72 65 73 28 ....public.function.getRequires(
703c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a ).{.return.$this->requires;.}...
703e0 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 28 29 ..public.function.getConflicts()
70400 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a 0a 0a .{.return.$this->conflicts;.}...
70420 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a ..public.function.getProvides().
70440 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a {.return.$this->provides;.}.....
70460 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a public.function.getReplaces().{.
70480 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 return.$this->replaces;.}.....pu
704a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b blic.function.getDevRequires().{
704c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a .return.$this->devRequires;.}...
704e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 50 ........public.function.setRootP
70500 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ackageAlias($value).{.return.$th
70520 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 76 61 6c 75 65 3b 0a 7d is->rootPackageAlias.=.$value;.}
70540 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 6f 6f 74 50 61 63 6b ......public.function.isRootPack
70560 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 ageAlias().{.return.$this->rootP
70580 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ackageAlias;.}........protected.
705a0 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 53 65 6c 66 56 65 72 73 69 6f 6e 44 65 70 65 6e function.replaceSelfVersionDepen
705c0 64 65 6e 63 69 65 73 28 61 72 72 61 79 20 24 6c 69 6e 6b 73 2c 20 24 6c 69 6e 6b 54 79 70 65 29 dencies(array.$links,.$linkType)
705e0 0a 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6c 69 6e 6b 54 79 70 65 2c 20 61 72 72 61 79 .{.if.(in_array($linkType,.array
70600 28 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 ('conflicts',.'provides',.'repla
70620 63 65 73 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 6e 65 77 4c 69 6e 6b 73 20 3d 20 61 72 72 61 ces'),.true)).{.$newLinks.=.arra
70640 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b y();.foreach.($links.as.$link).{
70660 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b 2d ...if.('self.version'.===.$link-
70680 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6e 65 77 4c 69 >getPrettyConstraint()).{.$newLi
706a0 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 nks[].=.new.Link($link->getSourc
706c0 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 43 6f 6e e(),.$link->getTarget(),.new.Con
706e0 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 6c straint('=',.$this->version),.$l
70700 69 6e 6b 54 79 70 65 2c 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a inkType,.$this->prettyVersion);.
70720 7d 0a 7d 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 6e 6b 73 2c }.}.$links.=.array_merge($links,
70740 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 .$newLinks);.}.else.{.foreach.($
70760 6c 69 6e 6b 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 links.as.$index.=>.$link).{.if.(
70780 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 'self.version'.===.$link->getPre
707a0 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 69 6e 64 65 78 ttyConstraint()).{.$links[$index
707c0 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 29 2c ].=.new.Link($link->getSource(),
707e0 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 43 6f 6e 73 74 72 61 .$link->getTarget(),.new.Constra
70800 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 6c 69 6e 6b 54 int('=',.$this->version),.$linkT
70820 79 70 65 2c 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a ype,.$this->prettyVersion);.}.}.
70840 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 }..return.$links;.}......public.
70860 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
70880 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 0a 70 75 62 6c 69 63 s->aliasOf->getType();.}..public
708a0 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 65 74 75 72 .function.getTargetDir().{.retur
708c0 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 69 72 28 29 n.$this->aliasOf->getTargetDir()
708e0 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 78 74 72 61 28 29 0a ;.}..public.function.getExtra().
70900 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 78 74 72 {.return.$this->aliasOf->getExtr
70920 61 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 a();.}..public.function.setInsta
70940 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 61 6c llationSource($type).{.$this->al
70960 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 74 79 iasOf->setInstallationSource($ty
70980 70 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 49 6e 73 74 61 pe);.}..public.function.getInsta
709a0 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 3e llationSource().{.return.$this->
709c0 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 29 aliasOf->getInstallationSource()
709e0 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 54 79 ;.}..public.function.getSourceTy
70a00 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
70a20 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tSourceType();.}..public.functio
70a40 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n.getSourceUrl().{.return.$this-
70a60 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d 0a 0a 70 75 62 >aliasOf->getSourceUrl();.}..pub
70a80 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 28 29 0a 7b 0a 72 lic.function.getSourceUrls().{.r
70aa0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 eturn.$this->aliasOf->getSourceU
70ac0 72 6c 73 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 53 6f 75 rls();.}..public.function.getSou
70ae0 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 rceReference().{.return.$this->a
70b00 6c 69 61 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 liasOf->getSourceReference();.}.
70b20 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 52 65 66 65 72 65 .public.function.setSourceRefere
70b40 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->
70b60 61 6c 69 61 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 aliasOf->setSourceReference($ref
70b80 65 72 65 6e 63 65 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 53 erence);.}..public.function.setS
70ba0 6f 75 72 63 65 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 ourceMirrors($mirrors).{.return.
70bc0 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 $this->aliasOf->setSourceMirrors
70be0 28 24 6d 69 72 72 6f 72 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ($mirrors);.}..public.function.g
70c00 65 74 53 6f 75 72 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 etSourceMirrors().{.return.$this
70c20 2d 3e 61 6c 69 61 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 ->aliasOf->getSourceMirrors();.}
70c40 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 0a ..public.function.getDistType().
70c60 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
70c80 54 79 70 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 44 69 Type();.}..public.function.getDi
70ca0 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d stUrl().{.return.$this->aliasOf-
70cc0 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >getDistUrl();.}..public.functio
70ce0 6e 20 67 65 74 44 69 73 74 55 72 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getDistUrls().{.return.$this->
70d00 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 55 72 6c 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 aliasOf->getDistUrls();.}..publi
70d20 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a c.function.getDistReference().{.
70d40 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 52 65 return.$this->aliasOf->getDistRe
70d60 66 65 72 65 6e 63 65 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 ference();.}..public.function.se
70d80 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 tDistReference($reference).{.ret
70da0 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 urn.$this->aliasOf->setDistRefer
70dc0 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ence($reference);.}..public.func
70de0 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 tion.getDistSha1Checksum().{.ret
70e00 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 urn.$this->aliasOf->getDistSha1C
70e20 68 65 63 6b 73 75 6d 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 hecksum();.}..public.function.se
70e40 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 tTransportOptions(array.$options
70e60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 54 72 ).{.return.$this->aliasOf->setTr
70e80 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 ansportOptions($options);.}..pub
70ea0 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 4f 70 74 69 6f 6e 73 lic.function.getTransportOptions
70ec0 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 54 ().{.return.$this->aliasOf->getT
70ee0 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ransportOptions();.}..public.fun
70f00 63 74 69 6f 6e 20 73 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 ction.setDistMirrors($mirrors).{
70f20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 69 73 74 4d .return.$this->aliasOf->setDistM
70f40 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 irrors($mirrors);.}..public.func
70f60 74 69 6f 6e 20 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getDistMirrors().{.return.$
70f80 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 3b this->aliasOf->getDistMirrors();
70fa0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 .}..public.function.getScripts()
70fc0 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 63 72 .{.return.$this->aliasOf->getScr
70fe0 69 70 74 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 ipts();.}..public.function.getLi
71000 63 65 6e 73 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 cense().{.return.$this->aliasOf-
71020 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >getLicense();.}..public.functio
71040 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 68 69 73 2d 3e n.getAutoload().{.return.$this->
71060 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 aliasOf->getAutoload();.}..publi
71080 63 20 66 75 6e 63 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 c.function.getDevAutoload().{.re
710a0 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 65 76 41 75 74 6f 6c turn.$this->aliasOf->getDevAutol
710c0 6f 61 64 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 49 6e 63 oad();.}..public.function.getInc
710e0 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 ludePaths().{.return.$this->alia
71100 73 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 sOf->getIncludePaths();.}..publi
71120 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 c.function.getRepositories().{.r
71140 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6f 73 69 74 eturn.$this->aliasOf->getReposit
71160 6f 72 69 65 73 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 52 ories();.}..public.function.getR
71180 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 eleaseDate().{.return.$this->ali
711a0 61 73 4f 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 asOf->getReleaseDate();.}..publi
711c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 c.function.getBinaries().{.retur
711e0 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b n.$this->aliasOf->getBinaries();
71200 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 .}..public.function.getKeywords(
71220 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4b 65 ).{.return.$this->aliasOf->getKe
71240 79 77 6f 72 64 73 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 ywords();.}..public.function.get
71260 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 61 6c Description().{.return.$this->al
71280 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 0a 0a 70 75 62 6c iasOf->getDescription();.}..publ
712a0 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 0a 72 65 74 75 ic.function.getHomepage().{.retu
712c0 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 61 67 65 28 29 rn.$this->aliasOf->getHomepage()
712e0 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 75 67 67 65 73 74 73 ;.}..public.function.getSuggests
71300 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 ().{.return.$this->aliasOf->getS
71320 75 67 67 65 73 74 73 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 uggests();.}..public.function.ge
71340 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 69 61 73 tAuthors().{.return.$this->alias
71360 4f 66 2d 3e 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 Of->getAuthors();.}..public.func
71380 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 69 73 tion.getSupport().{.return.$this
713a0 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 0a 70 75 62 6c ->aliasOf->getSupport();.}..publ
713c0 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 29 ic.function.getNotificationUrl()
713e0 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 74 .{.return.$this->aliasOf->getNot
71400 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ificationUrl();.}..public.functi
71420 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
71440 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
71460 64 65 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e des();.}..public.function.isAban
71480 64 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 doned().{.return.$this->aliasOf-
714a0 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 >isAbandoned();.}..public.functi
714c0 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 74 on.getReplacementPackage().{.ret
714e0 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 urn.$this->aliasOf->getReplaceme
71500 6e 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ntPackage();.}..public.function.
71520 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 5f 5f __toString().{.return.parent::__
71540 74 6f 53 74 72 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e toString().'.(alias.of.'.$this->
71560 61 6c 69 61 73 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c aliasOf->getVersion().')';.}.}.<
71580 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
715a0 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 43 6f 6d 70 6f 73 er\Package\Archiver;..use.Compos
715c0 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c er\Util\Filesystem;.use.Symfony\
715e0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a Component\Finder\Finder;........
71600 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 65 72 20 65 78 ..class.ArchivableFilesFinder.ex
71620 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 70 72 6f 74 65 tends.\FilterIterator.{....prote
71640 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 20 66 75 6e 63 cted.$finder;........public.func
71660 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 61 72 72 61 79 tion.__construct($sources,.array
71680 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 65 73 79 73 74 .$excludes).{.$fs.=.new.Filesyst
716a0 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 61 6c 69 7a 65 em();..$sources.=.$fs->normalize
716c0 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 20 61 72 72 61 Path($sources);..$filters.=.arra
716e0 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 72 63 65 73 29 y(.new.HgExcludeFilter($sources)
71700 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 72 63 65 73 29 ,.new.GitExcludeFilter($sources)
71720 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 28 24 73 6f 75 ,.new.ComposerExcludeFilter($sou
71740 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 2d 3e 66 69 6e rces,.$excludes),.);..$this->fin
71760 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 28 29 3b 0a 0a 24 66 69 6c 74 65 72 20 3d 20 66 der.=.new.Finder();..$filter.=.f
71780 75 6e 63 74 69 6f 6e 20 28 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 24 66 69 6c 65 29 20 75 73 65 unction.(\SplFileInfo.$file).use
717a0 20 28 24 73 6f 75 72 63 65 73 2c 20 24 66 69 6c 74 65 72 73 2c 20 24 66 73 29 20 7b 0a 69 66 20 .($sources,.$filters,.$fs).{.if.
717c0 28 24 66 69 6c 65 2d 3e 69 73 4c 69 6e 6b 28 29 20 26 26 20 73 74 72 70 6f 73 28 24 66 69 6c 65 ($file->isLink().&&.strpos($file
717e0 2d 3e 67 65 74 4c 69 6e 6b 54 61 72 67 65 74 28 29 2c 20 24 73 6f 75 72 63 65 73 29 20 21 3d 3d ->getLinkTarget(),.$sources).!==
71800 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 72 65 6c 61 74 69 76 65 .0).{.return.false;.}..$relative
71820 50 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5e 27 2e 70 72 65 67 5f 71 Path.=.preg_replace(.'#^'.preg_q
71840 75 6f 74 65 28 24 73 6f 75 72 63 65 73 2c 20 27 23 27 29 2e 27 23 27 2c 0a 27 27 2c 0a 24 66 73 uote($sources,.'#').'#',.'',.$fs
71860 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 ->normalizePath($file->getRealPa
71880 74 68 28 29 29 0a 29 3b 0a 0a 24 65 78 63 6c 75 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 th()).);..$exclude.=.false;.fore
718a0 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 24 65 78 63 ach.($filters.as.$filter).{.$exc
718c0 6c 75 64 65 20 3d 20 24 66 69 6c 74 65 72 2d 3e 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 lude.=.$filter->filter($relative
718e0 50 61 74 68 2c 20 24 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 65 78 63 Path,.$exclude);.}..return.!$exc
71900 6c 75 64 65 3b 0a 7d 3b 0a 0a 69 66 20 28 6d 65 74 68 6f 64 5f 65 78 69 73 74 73 28 24 66 69 6c lude;.};..if.(method_exists($fil
71920 74 65 72 2c 20 27 62 69 6e 64 54 6f 27 29 29 20 7b 0a 24 66 69 6c 74 65 72 20 3d 20 24 66 69 6c ter,.'bindTo')).{.$filter.=.$fil
71940 74 65 72 2d 3e 62 69 6e 64 54 6f 28 6e 75 6c 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6e ter->bindTo(null);.}..$this->fin
71960 64 65 72 0a 2d 3e 69 6e 28 24 73 6f 75 72 63 65 73 29 0a 2d 3e 66 69 6c 74 65 72 28 24 66 69 6c der.->in($sources).->filter($fil
71980 74 65 72 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 74 72 75 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 ter).->ignoreVCS(true).->ignoreD
719a0 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 otFiles(false);..parent::__const
719c0 72 75 63 74 28 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 ruct($this->finder->getIterator(
719e0 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a ));.}..public.function.accept().
71a00 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f {.return.!$this->getInnerIterato
71a20 72 28 29 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 69 73 44 69 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 r()->current()->isDir();.}.}.<?p
71a40 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
71a60 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 \Package\Archiver;..use.Composer
71a80 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
71aa0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 .Composer\Package\PackageInterfa
71ac0 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 ce;.use.Composer\Package\RootPac
71ae0 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 69 6c kageInterface;.use.Composer\Util
71b00 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 4a 73 6f 6e 5c 4a \Filesystem;.use.Composer\Json\J
71b20 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 65 4d 61 6e 61 67 sonFile;......class.ArchiveManag
71b40 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b er.{.protected.$downloadManager;
71b60 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 63 68 69 76 65 72 73 20 3d 20 61 72 72 61 79 28 29 ..protected.$archivers.=.array()
71b80 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 ;.....protected.$overwriteFiles.
71ba0 3d 20 74 72 75 65 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 =.true;.....public.function.__co
71bc0 6e 73 74 72 75 63 74 28 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 nstruct(DownloadManager.$downloa
71be0 64 4d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 dManager).{.$this->downloadManag
71c00 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 er.=.$downloadManager;.}.....pub
71c20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 63 68 69 76 65 72 28 41 72 63 68 69 76 65 lic.function.addArchiver(Archive
71c40 72 49 6e 74 65 72 66 61 63 65 20 24 61 72 63 68 69 76 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 rInterface.$archiver).{.$this->a
71c60 72 63 68 69 76 65 72 73 5b 5d 20 3d 20 24 61 72 63 68 69 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rchivers[].=.$archiver;.}.......
71c80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 76 65 72 77 72 69 74 65 46 69 ..public.function.setOverwriteFi
71ca0 6c 65 73 28 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 les($overwriteFiles).{.$this->ov
71cc0 65 72 77 72 69 74 65 46 69 6c 65 73 20 3d 20 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 3b 0a erwriteFiles.=.$overwriteFiles;.
71ce0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
71d00 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 50 61 63 6b function.getPackageFilename(Pack
71d20 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 6e 61 6d 65 50 61 ageInterface.$package).{.$namePa
71d40 72 74 73 20 3d 20 61 72 72 61 79 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5b 5e 61 2d 7a rts.=.array(preg_replace('#[^a-z
71d60 30 2d 39 2d 5f 5d 23 69 27 2c 20 27 2d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 0-9-_]#i',.'-',.$package->getNam
71d80 65 28 29 29 29 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d e()));..if.(preg_match('{^[a-f0-
71da0 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 65 66 65 9]{40}$}',.$package->getDistRefe
71dc0 72 65 6e 63 65 28 29 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f 6d rence())).{.$nameParts.=.array_m
71de0 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d erge($nameParts,.array($package-
71e00 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 >getDistReference(),.$package->g
71e20 65 74 44 69 73 74 54 79 70 65 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 50 61 etDistType()));.}.else.{.$namePa
71e40 72 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 rts.=.array_merge($nameParts,.ar
71e60 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 ray($package->getPrettyVersion()
71e80 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 ,.$package->getDistReference()))
71ea0 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 ;.}..if.($package->getSourceRefe
71ec0 72 65 6e 63 65 28 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 5b 5d 20 3d 20 73 75 62 73 74 72 rence()).{.$nameParts[].=.substr
71ee0 28 73 68 61 31 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e (sha1($package->getSourceReferen
71f00 63 65 28 29 29 2c 20 30 2c 20 36 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 69 6d 70 6c 6f 64 65 ce()),.0,.6);.}..$name.=.implode
71f20 28 27 2d 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 66 ('-',.array_filter($nameParts,.f
71f40 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 70 29 unction.($p).{.return.!empty($p)
71f60 3b 0a 7d 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 ;.}));..return.str_replace('/',.
71f80 27 2d 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c '-',.$name);.}..............publ
71fa0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 ic.function.archive(PackageInter
71fc0 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 74 61 72 67 65 74 44 face.$package,.$format,.$targetD
71fe0 69 72 2c 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 65 6d 70 74 ir,.$fileName.=.null).{.if.(empt
72000 79 28 24 66 6f 72 6d 61 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 y($format)).{.throw.new.\Invalid
72020 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 6f 72 6d 61 74 20 6d 75 73 74 20 62 ArgumentException('Format.must.b
72040 65 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 0a 20 24 75 73 61 62 6c 65 41 72 63 68 69 e.specified');.}....$usableArchi
72060 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 63 68 ver.=.null;.foreach.($this->arch
72080 69 76 65 72 73 20 61 73 20 24 61 72 63 68 69 76 65 72 29 20 7b 0a 69 66 20 28 24 61 72 63 68 69 ivers.as.$archiver).{.if.($archi
720a0 76 65 72 2d 3e 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d ver->supports($format,.$package-
720c0 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 29 20 7b 0a 24 75 73 61 62 6c 65 41 72 63 68 >getSourceType())).{.$usableArch
720e0 69 76 65 72 20 3d 20 24 61 72 63 68 69 76 65 72 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 iver.=.$archiver;.break;.}.}....
72100 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 29 20 7b 0a if.(null.===.$usableArchiver).{.
72120 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 throw.new.\RuntimeException(spri
72140 6e 74 66 28 27 4e 6f 20 61 72 63 68 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 73 75 70 70 6f 72 ntf('No.archiver.found.to.suppor
72160 74 20 25 73 20 66 6f 72 6d 61 74 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c t.%s.format',.$format));.}..$fil
72180 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 69 66 20 28 esystem.=.new.Filesystem();.if.(
721a0 6e 75 6c 6c 20 3d 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 null.===.$fileName).{.$packageNa
721c0 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 24 me.=.$this->getPackageFilename($
721e0 70 61 63 6b 61 67 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 package);.}.else.{.$packageName.
72200 3d 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 =.$fileName;.}....$filesystem->e
72220 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 nsureDirectoryExists($targetDir)
72240 3b 0a 24 74 61 72 67 65 74 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 ;.$target.=.realpath($targetDir)
72260 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 .'/'.$packageName.'.'.$format;.$
72280 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
722a0 73 28 64 69 72 6e 61 6d 65 28 24 74 61 72 67 65 74 29 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 s(dirname($target));..if.(!$this
722c0 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 ->overwriteFiles.&&.file_exists(
722e0 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 69 $target)).{.return.$target;.}..i
72300 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 f.($package.instanceof.RootPacka
72320 67 65 49 6e 74 65 72 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 geInterface).{.$sourcePath.=.rea
72340 6c 70 61 74 68 28 27 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 lpath('.');.}.else.{...$sourcePa
72360 74 68 20 3d 20 73 79 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 th.=.sys_get_temp_dir().'/compos
72380 65 72 5f 61 72 63 68 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 er_archive'.uniqid();.$filesyste
723a0 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 73 6f 75 72 63 65 m->ensureDirectoryExists($source
723c0 50 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 Path);....$this->downloadManager
723e0 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 73 6f 75 72 63 65 50 61 74 68 ->download($package,.$sourcePath
72400 29 3b 0a 0a 0a 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 63 6f 6d 70 6f 73 65 72 4a );....if.(file_exists($composerJ
72420 73 6f 6e 50 61 74 68 20 3d 20 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 63 6f 6d 70 6f 73 65 72 sonPath.=.$sourcePath.'/composer
72440 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 .json')).{.$jsonFile.=.new.JsonF
72460 69 6c 65 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 29 3b 0a 24 6a 73 6f 6e 44 61 74 ile($composerJsonPath);.$jsonDat
72480 61 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 a.=.$jsonFile->read();.if.(!empt
724a0 79 28 24 6a 73 6f 6e 44 61 74 61 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 y($jsonData['archive']['exclude'
724c0 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 ])).{.$package->setArchiveExclud
724e0 65 73 28 24 6a 73 6f 6e 44 61 74 61 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 es($jsonData['archive']['exclude
72500 27 5d 29 3b 0a 7d 0a 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 ']);.}.}.}....$tempTarget.=.sys_
72520 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 76 get_temp_dir().'/composer_archiv
72540 65 27 2e 75 6e 69 71 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 e'.uniqid().'.'.$format;.$filesy
72560 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
72580 61 6d 65 28 24 74 65 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 ame($tempTarget));..$archivePath
725a0 20 3d 20 24 75 73 61 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 .=.$usableArchiver->archive($sou
725c0 72 63 65 50 61 74 68 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 rcePath,.$tempTarget,.$format,.$
725e0 70 61 63 6b 61 67 65 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 package->getArchiveExcludes());.
72600 72 65 6e 61 6d 65 28 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 rename($archivePath,.$target);..
72620 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 ..if.(!$package.instanceof.RootP
72640 61 63 6b 61 67 65 49 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 ackageInterface).{.$filesystem->
72660 72 65 6d 6f 76 65 44 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 removeDirectory($sourcePath);.}.
72680 24 66 69 6c 65 73 79 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 $filesystem->remove($tempTarget)
726a0 3b 0a 0a 72 65 74 75 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 ;..return.$target;.}.}.<?php....
726c0 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
726e0 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 72 63 ge\Archiver;.......interface.Arc
72700 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 hiverInterface.{...........publi
72720 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 73 2c 20 24 74 61 c.function.archive($sources,.$ta
72740 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 20 3d rget,.$format,.array.$excludes.=
72760 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .array());..........public.funct
72780 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 ion.supports($format,.$sourceTyp
727a0 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 e);.}.<?php............namespace
727c0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 .Composer\Package\Archiver;..use
727e0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 61 .Symfony\Component\Finder;.....a
72800 62 73 74 72 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 bstract.class.BaseExcludeFilter.
72820 7b 0a 0a 0a 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 {....protected.$sourcePath;.....
72840 70 72 6f 74 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 protected.$excludePatterns;.....
72860 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
72880 72 63 65 50 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 rcePath).{.$this->sourcePath.=.$
728a0 73 6f 75 72 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 sourcePath;.$this->excludePatter
728c0 6e 73 20 3d 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 ns.=.array();.}............publi
728e0 63 20 66 75 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 c.function.filter($relativePath,
72900 20 24 65 78 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 .$exclude).{.foreach.($this->exc
72920 6c 75 64 65 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 ludePatterns.as.$patternData).{.
72940 6c 69 73 74 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 list($pattern,.$negate,.$stripLe
72960 61 64 69 6e 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 adingSlash).=.$patternData;..if.
72980 28 24 73 74 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 ($stripLeadingSlash).{.$path.=.s
729a0 75 62 73 74 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 ubstr($relativePath,.1);.}.else.
729c0 7b 0a 24 70 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 {.$path.=.$relativePath;.}..if.(
729e0 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 preg_match($pattern,.$path)).{.$
72a00 65 78 63 6c 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 exclude.=.!$negate;.}.}..return.
72a20 24 65 78 63 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 $exclude;.}..........protected.f
72a40 75 6e 63 74 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 unction.parseLines(array.$lines,
72a60 20 24 6c 69 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 .$lineParser).{.return.array_fil
72a80 74 65 72 28 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 ter(.array_map(.function.($line)
72aa0 20 75 73 65 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 .use.($lineParser).{.$line.=.tri
72ac0 6d 28 24 6c 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 m($line);..if.(!$line.||.0.===.s
72ae0 74 72 70 6f 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 trpos($line,.'#')).{.return;.}..
72b00 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 6c 69 6e 65 50 61 72 73 65 return.call_user_func($lineParse
72b20 72 2c 20 24 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 r,.$line);.},.$lines.),.function
72b40 20 28 24 70 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 .($pattern).{.return.$pattern.!=
72b60 3d 20 6e 75 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 =.null;.}.);.}.........protected
72b80 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 73 28 24 72 75 6c 65 .function.generatePatterns($rule
72ba0 73 29 0a 7b 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 s).{.$patterns.=.array();.foreac
72bc0 68 20 28 24 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 h.($rules.as.$rule).{.$patterns[
72be0 5d 20 3d 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 72 75 6c 65 ].=.$this->generatePattern($rule
72c00 29 3b 0a 7d 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 );.}..return.$patterns;.}.......
72c20 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 50 61 74 ..protected.function.generatePat
72c40 74 65 72 6e 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 tern($rule).{.$negate.=.false;.$
72c60 70 61 74 74 65 72 6e 20 3d 20 27 7b 27 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 pattern.=.'{';..if.(strlen($rule
72c80 29 20 26 26 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 ).&&.$rule[0].===.'!').{.$negate
72ca0 20 3d 20 74 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 .=.true;.$rule.=.substr($rule,.1
72cc0 29 3b 0a 7d 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 );.}..if.(strlen($rule).&&.$rule
72ce0 5b 30 5d 20 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 [0].===.'/').{.$pattern..=.'^/';
72d00 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 20 65 6c 73 .$rule.=.substr($rule,.1);.}.els
72d20 65 69 66 20 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 eif.(strlen($rule).-.1.===.strpo
72d40 73 28 24 72 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 s($rule,.'/')).{.$pattern..=.'/'
72d60 3b 0a 24 72 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 ;.$rule.=.substr($rule,.0,.-1);.
72d80 7d 20 65 6c 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 }.elseif.(false.===.strpos($rule
72da0 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 7d 0a 0a 0a 20 ,.'/')).{.$pattern..=.'/';.}....
72dc0 24 70 61 74 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 $pattern..=.substr(Finder\Glob::
72de0 74 6f 52 65 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 toRegex($rule),.2,.-2)...'(?=$|/
72e00 29 27 3b 0a 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 7d 27 )';..return.array($pattern...'}'
72e20 2c 20 24 6e 65 67 61 74 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ,.$negate,.false);.}.}.<?php....
72e40 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
72e60 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 ge\Archiver;.......class.Compose
72e80 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 rExcludeFilter.extends.BaseExclu
72ea0 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f deFilter.{.....public.function._
72ec0 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 2c 20 61 72 72 61 79 20 24 65 _construct($sourcePath,.array.$e
72ee0 78 63 6c 75 64 65 52 75 6c 65 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 xcludeRules).{.parent::__constru
72f00 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 ct($sourcePath);.$this->excludeP
72f20 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e atterns.=.$this->generatePattern
72f40 73 28 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a s($excludeRules);.}.}.<?php.....
72f60 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
72f80 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 45 78 63 e\Archiver;.........class.GitExc
72fa0 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 ludeFilter.extends.BaseExcludeFi
72fc0 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f lter.{......public.function.__co
72fe0 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f nstruct($sourcePath).{.parent::_
73000 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 69 66 20 28 66 69 _construct($sourcePath);..if.(fi
73020 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 69 67 6e 6f le_exists($sourcePath.'/.gitigno
73040 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d re')).{.$this->excludePatterns.=
73060 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 .$this->parseLines(.file($source
73080 50 61 74 68 2e 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 Path.'/.gitignore'),.array($this
730a0 2c 20 27 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 69 66 20 ,.'parseGitIgnoreLine').);.}.if.
730c0 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 (file_exists($sourcePath.'/.gita
730e0 74 74 72 69 62 75 74 65 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 ttributes')).{.$this->excludePat
73100 74 65 72 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 65 78 63 6c terns.=.array_merge(.$this->excl
73120 75 64 65 50 61 74 74 65 72 6e 73 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a udePatterns,.$this->parseLines(.
73140 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 74 72 69 62 75 74 65 file($sourcePath.'/.gitattribute
73160 73 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 41 74 74 72 69 s'),.array($this,.'parseGitAttri
73180 62 75 74 65 73 4c 69 6e 65 27 29 0a 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c butesLine').));.}.}.........publ
731a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 28 24 ic.function.parseGitIgnoreLine($
731c0 6c 69 6e 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 line).{.return.$this->generatePa
731e0 74 74 65 72 6e 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ttern($line);.}.........public.f
73200 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 6e 65 28 24 unction.parseGitAttributesLine($
73220 6c 69 6e 65 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 23 5c 73 line).{.$parts.=.preg_split('#\s
73240 2b 23 27 2c 20 24 6c 69 6e 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 72 74 73 29 20 +#',.$line);..if.(count($parts).
73260 21 3d 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 72 !=.2).{.return.null;.}..if.($par
73280 74 73 5b 31 5d 20 3d 3d 3d 20 27 65 78 70 6f 72 74 2d 69 67 6e 6f 72 65 27 29 20 7b 0a 72 65 74 ts[1].===.'export-ignore').{.ret
732a0 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 70 61 72 74 urn.$this->generatePattern($part
732c0 73 5b 30 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 s[0]);.}.}.}.<?php............na
732e0 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 69 76 65 mespace.Composer\Package\Archive
73300 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 72 r;..use.Symfony\Component\Finder
73320 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 20 65 78 ;.......class.HgExcludeFilter.ex
73340 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 73 74 20 tends.BaseExcludeFilter.{.const.
73360 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 5f 49 47 HG_IGNORE_REGEX.=.1;.const.HG_IG
73380 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 20 24 70 NORE_GLOB.=.2;......protected.$p
733a0 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 74 69 6f atternMode;.......public.functio
733c0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 n.__construct($sourcePath).{.par
733e0 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a ent::__construct($sourcePath);..
73400 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 5f 49 47 $this->patternMode.=.self::HG_IG
73420 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 24 73 6f NORE_REGEX;..if.(file_exists($so
73440 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 69 73 2d urcePath.'/.hgignore')).{.$this-
73460 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 73 65 4c >excludePatterns.=.$this->parseL
73480 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 67 6e 6f ines(.file($sourcePath.'/.hgigno
734a0 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 6e 6f 72 re'),.array($this,.'parseHgIgnor
734c0 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 20 66 75 eLine').);.}.}.........public.fu
734e0 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 65 29 0a nction.parseHgIgnoreLine($line).
73500 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 3a 5c 73 {.if.(preg_match('#^syntax\s*:\s
73520 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 74 63 68 *(glob|regexp)$#',.$line,.$match
73540 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 6c 6f 62 es)).{.if.($matches[1].===.'glob
73560 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 66 3a 3a ').{.$this->patternMode.=.self::
73580 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 73 2d 3e HG_IGNORE_GLOB;.}.else.{.$this->
735a0 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 patternMode.=.self::HG_IGNORE_RE
735c0 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 74 68 69 GEX;.}..return.null;.}..if.($thi
735e0 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 4e 4f 52 s->patternMode.==.self::HG_IGNOR
73600 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 72 6e 46 E_GLOB).{.return.$this->patternF
73620 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 72 6e 20 romGlob($line);.}.else.{.return.
73640 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 29 3b 0a $this->patternFromRegex($line);.
73660 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 70 }.}.........protected.function.p
73680 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 65 72 6e atternFromGlob($line).{.$pattern
736a0 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 52 65 67 .=.'#'.substr(Finder\Glob::toReg
736c0 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 72 6e 20 ex($line),.2,.-1).'#';.$pattern.
736e0 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 24 70 61 =.str_replace('[^/]*',.'.*',.$pa
73700 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 6e 2c 20 ttern);..return.array($pattern,.
73720 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 63 20 66 false,.true);.}.........public.f
73740 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 65 29 0a unction.patternFromRegex($line).
73760 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 63 65 28 {...$pattern.=.'#'.preg_replace(
73780 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 27 5c 31 '/((?:\\\\\\\\)*)(\\\\?)#/',.'\1
737a0 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 20 61 72 \2\2\\#',.$line).'#';..return.ar
737c0 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 0a 7d 0a ray($pattern,.false,.true);.}.}.
737e0 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
73800 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 ser\Package\Archiver;.......clas
73820 73 20 50 68 61 72 41 72 63 68 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 72 63 68 69 76 s.PharArchiver.implements.Archiv
73840 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 erInterface.{.protected.static.$
73860 66 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 27 7a 69 70 27 20 3d 3e 20 5c 50 68 61 72 3a formats.=.array(.'zip'.=>.\Phar:
73880 3a 5a 49 50 2c 0a 27 74 61 72 27 20 3d 3e 20 5c 50 68 61 72 3a 3a 54 41 52 2c 0a 29 3b 0a 0a 0a :ZIP,.'tar'.=>.\Phar::TAR,.);...
738a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 ..public.function.archive($sourc
738c0 65 73 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 es,.$target,.$format,.array.$exc
738e0 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 6f 75 72 63 65 73 20 3d 20 72 65 ludes.=.array()).{.$sources.=.re
73900 61 6c 70 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 0a 20 69 66 20 28 66 69 6c 65 5f 65 78 alpath($sources);....if.(file_ex
73920 69 73 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 61 72 67 65 74 29 ists($target)).{.unlink($target)
73940 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 ;.}..try.{.$phar.=.new.\PharData
73960 28 24 74 61 72 67 65 74 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 24 66 ($target,.null,.null,.static::$f
73980 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 24 66 69 6c 65 73 20 3d 20 6e 65 77 20 41 ormats[$format]);.$files.=.new.A
739a0 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 28 24 73 6f 75 72 63 65 73 2c 20 24 rchivableFilesFinder($sources,.$
739c0 65 78 63 6c 75 64 65 73 29 3b 0a 24 70 68 61 72 2d 3e 62 75 69 6c 64 46 72 6f 6d 49 74 65 72 61 excludes);.$phar->buildFromItera
739e0 74 6f 72 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 tor($files,.$sources);..return.$
73a00 74 61 72 67 65 74 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 target;.}.catch.(\UnexpectedValu
73a20 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 eException.$e).{.$message.=.spri
73a40 6e 74 66 28 22 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 72 63 68 69 76 65 20 27 25 ntf("Could.not.create.archive.'%
73a60 73 27 20 66 72 6f 6d 20 27 25 73 27 3a 20 25 73 22 2c 0a 24 74 61 72 67 65 74 2c 0a 24 73 6f 75 s'.from.'%s':.%s",.$target,.$sou
73a80 72 63 65 73 2c 0a 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 0a 74 68 72 6f 77 rces,.$e->getMessage().);..throw
73aa0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c .new.\RuntimeException($message,
73ac0 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 .$e->getCode(),.$e);.}.}.....pub
73ae0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 lic.function.supports($format,.$
73b00 73 6f 75 72 63 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 74 61 74 69 sourceType).{.return.isset(stati
73b20 63 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 c::$formats[$format]);.}.}.<?php
73b40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ............namespace.Composer\P
73b60 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ackage;..use.Composer\Repository
73b80 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 73 \RepositoryInterface;.use.Compos
73ba0 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 79 er\Repository\PlatformRepository
73bc0 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 50 61 63 6b 61 ;.......abstract.class.BasePacka
73be0 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b ge.implements.PackageInterface.{
73c00 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 .public.static.$supportedLinkTyp
73c20 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 27 es.=.array(.'require'.=>.array('
73c40 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 20 27 6d 65 74 description'.=>.'requires',.'met
73c60 68 6f 64 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c 69 63 74 27 20 hod'.=>.'requires'),.'conflict'.
73c80 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 63 6f 6e 66 6c =>.array('description'.=>.'confl
73ca0 69 63 74 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 2c icts',.'method'.=>.'conflicts'),
73cc0 0a 27 70 72 6f 76 69 64 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e .'provide'.=>.array('description
73ce0 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 70 72 '.=>.'provides',.'method'.=>.'pr
73d00 6f 76 69 64 65 73 27 29 2c 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 ovides'),.'replace'.=>.array('de
73d20 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 6d 65 74 68 6f scription'.=>.'replaces',.'metho
73d40 64 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 d'.=>.'replaces'),.'require-dev'
73d60 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 .=>.array('description'.=>.'requ
73d80 69 72 65 73 20 28 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 65 74 68 6f 64 ires.(for.development)',.'method
73da0 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f 6e 73 74 20 53 '.=>.'devRequires'),.);..const.S
73dc0 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 TABILITY_STABLE.=.0;.const.STABI
73de0 4c 49 54 59 5f 52 43 20 3d 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 42 45 54 LITY_RC.=.5;.const.STABILITY_BET
73e00 41 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 20 3d 20 A.=.10;.const.STABILITY_ALPHA.=.
73e20 31 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 30 3b 0a 0a 70 15;.const.STABILITY_DEV.=.20;..p
73e40 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 ublic.static.$stabilities.=.arra
73e60 79 28 0a 27 73 74 61 62 6c 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 53 y(.'stable'.=>.self::STABILITY_S
73e80 54 41 42 4c 45 2c 0a 27 52 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 52 TABLE,.'RC'.=>.self::STABILITY_R
73ea0 43 2c 0a 27 62 65 74 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 42 45 54 C,.'beta'.=>.self::STABILITY_BET
73ec0 41 2c 0a 27 61 6c 70 68 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 41 4c A,.'alpha'.=>.self::STABILITY_AL
73ee0 50 48 41 2c 0a 27 64 65 76 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 44 45 PHA,.'dev'.=>.self::STABILITY_DE
73f00 56 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 24 69 64 3b 0a 0a 70 72 6f 74 65 63 74 65 V,.);......public.$id;..protecte
73f20 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 4e 61 6d 65 3b 0a d.$name;.protected.$prettyName;.
73f40 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 .protected.$repository;.protecte
73f60 64 20 24 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 d.$transportOptions;.......publi
73f80 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 29 0a 7b 0a c.function.__construct($name).{.
73fa0 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 $this->prettyName.=.$name;.$this
73fc0 2d 3e 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 ->name.=.strtolower($name);.$thi
73fe0 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 s->id.=.-1;.$this->transportOpti
74000 6f 6e 73 20 3d 20 61 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 ons.=.array();.}.....public.func
74020 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e tion.getName().{.return.$this->n
74040 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 ame;.}.....public.function.getPr
74060 65 74 74 79 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 ettyName().{.return.$this->prett
74080 79 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 yName;.}.....public.function.get
740a0 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d Names().{.$names.=.array(.$this-
740c0 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 >getName().=>.true,.);..foreach.
740e0 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 ($this->getProvides().as.$link).
74100 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 20 74 {.$names[$link->getTarget()].=.t
74120 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6c 61 rue;.}..foreach.($this->getRepla
74140 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e ces().as.$link).{.$names[$link->
74160 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 getTarget()].=.true;.}..return.a
74180 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rray_keys($names);.}.....public.
741a0 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 function.setId($id).{.$this->id.
741c0 3d 20 24 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 =.$id;.}.....public.function.get
741e0 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 Id().{.return.$this->id;.}.....p
74200 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 ublic.function.setRepository(Rep
74220 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a ositoryInterface.$repository).{.
74240 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 73 69 if.($this->repository.&&.$reposi
74260 74 6f 72 79 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 74 68 tory.!==.$this->repository).{.th
74280 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 41 20 70 61 63 6b 61 row.new.\LogicException('A.packa
742a0 67 65 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 6f 6e 65 20 72 65 70 6f ge.can.only.be.added.to.one.repo
742c0 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 sitory');.}.$this->repository.=.
742e0 24 72 65 70 6f 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 $repository;.}.....public.functi
74300 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 on.getRepository().{.return.$thi
74320 73 2d 3e 72 65 70 6f 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 s->repository;.}.....public.func
74340 74 69 6f 6e 20 67 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 tion.getTransportOptions().{.ret
74360 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a urn.$this->transportOptions;.}..
74380 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 72 61 6e 73 70 6f 72 .....public.function.setTranspor
743a0 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
743c0 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d ->transportOptions.=.$options;.}
743e0 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 6c 61 74 66 6f 72 .......public.function.isPlatfor
74400 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 m().{.return.$this->getRepositor
74420 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 y().instanceof.PlatformRepositor
74440 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 67 65 74 55 6e y;.}.......public.function.getUn
74460 69 71 75 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 iqueName().{.return.$this->getNa
74480 6d 65 28 29 2e 27 2d 27 2e 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a me().'-'.$this->getVersion();.}.
744a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 50 61 63 6b 61 67 65 49 .public.function.equals(PackageI
744c0 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 nterface.$package).{.$self.=.$th
744e0 69 73 3b 0a 69 66 20 28 24 74 68 69 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 is;.if.($this.instanceof.AliasPa
74500 63 6b 61 67 65 29 20 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 ckage).{.$self.=.$this->getAlias
74520 4f 66 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 Of();.}.if.($package.instanceof.
74540 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b AliasPackage).{.$package.=.$pack
74560 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 age->getAliasOf();.}..return.$pa
74580 63 6b 61 67 65 20 3d 3d 3d 20 24 73 65 6c 66 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ckage.===.$self;.}.......public.
745a0 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.__toString().{.return.$
745c0 74 68 69 73 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 this->getUniqueName();.}..public
745e0 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 29 0a 7b 0a 72 65 .function.getPrettyString().{.re
74600 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 27 2e turn.$this->getPrettyName().'.'.
74620 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a $this->getPrettyVersion();.}....
74640 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 65 .public.function.getFullPrettyVe
74660 72 73 69 6f 6e 28 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 21 24 rsion($truncate.=.true).{.if.(!$
74680 74 68 69 73 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 this->isDev().||.!in_array($this
746a0 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 68 67 27 2c 20 27 ->getSourceType(),.array('hg',.'
746c0 67 69 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 git'))).{.return.$this->getPrett
746e0 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 72 75 6e 63 61 74 65 20 26 yVersion();.}....if.($truncate.&
74700 26 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e &.strlen($this->getSourceReferen
74720 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 ce()).===.40).{.return.$this->ge
74740 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 73 75 62 73 74 72 28 tPrettyVersion()...'.'...substr(
74760 24 74 68 69 73 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 $this->getSourceReference(),.0,.
74780 37 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 56 65 7);.}..return.$this->getPrettyVe
747a0 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 53 6f 75 72 63 65 rsion()...'.'...$this->getSource
747c0 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Reference();.}..public.function.
747e0 67 65 74 53 74 61 62 69 6c 69 74 79 50 72 69 6f 72 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 getStabilityPriority().{.return.
74800 73 65 6c 66 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 74 68 69 73 2d 3e 67 65 74 53 74 61 self::$stabilities[$this->getSta
74820 62 69 6c 69 74 79 28 29 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f bility()];.}..public.function.__
74840 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 6e 75 clone().{.$this->repository.=.nu
74860 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 0a 0a ll;.$this->id.=.-1;.}.}.<?php...
74880 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b .........namespace.Composer\Pack
748a0 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 age;.......class.CompletePackage
748c0 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6d 70 .extends.Package.implements.Comp
748e0 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 letePackageInterface.{.protected
74900 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 63 65 6e .$repositories;.protected.$licen
74920 73 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6b 65 79 77 6f 72 64 se.=.array();.protected.$keyword
74940 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 s;.protected.$authors;.protected
74960 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 6f 6d 65 70 61 .$description;.protected.$homepa
74980 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 73 20 3d 20 61 72 72 61 79 28 29 ge;.protected.$scripts.=.array()
749a0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 79 28 29 3b 0a ;.protected.$support.=.array();.
749c0 70 72 6f 74 65 63 74 65 64 20 24 61 62 61 6e 64 6f 6e 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a protected.$abandoned.=.false;...
749e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 63 72 69 70 74 73 28 61 72 72 ..public.function.setScripts(arr
74a00 61 79 20 24 73 63 72 69 70 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 20 3d 20 ay.$scripts).{.$this->scripts.=.
74a20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $scripts;.}.....public.function.
74a40 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 73 63 72 getScripts().{.return.$this->scr
74a60 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ipts;.}.......public.function.se
74a80 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 tRepositories($repositories).{.$
74aa0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 69 this->repositories.=.$repositori
74ac0 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
74ae0 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f ositories().{.return.$this->repo
74b00 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f sitories;.}.......public.functio
74b20 6e 20 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 20 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 n.setLicense(array.$license).{.$
74b40 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a this->license.=.$license;.}.....
74b60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 public.function.getLicense().{.r
74b80 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 0a 0a 70 75 eturn.$this->license;.}.......pu
74ba0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4b 65 79 77 6f 72 64 73 28 61 72 72 61 79 20 blic.function.setKeywords(array.
74bc0 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 20 3d 20 24 $keywords).{.$this->keywords.=.$
74be0 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 keywords;.}.....public.function.
74c00 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6b 65 getKeywords().{.return.$this->ke
74c20 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ywords;.}.......public.function.
74c40 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 79 20 24 61 75 74 68 6f 72 73 29 0a 7b 0a 24 74 68 setAuthors(array.$authors).{.$th
74c60 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 is->authors.=.$authors;.}.....pu
74c80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 blic.function.getAuthors().{.ret
74ca0 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c urn.$this->authors;.}.......publ
74cc0 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 64 65 73 63 ic.function.setDescription($desc
74ce0 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 6e 20 3d 20 ription).{.$this->description.=.
74d00 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $description;.}.....public.funct
74d20 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ion.getDescription().{.return.$t
74d40 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 his->description;.}.......public
74d60 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 6d 65 70 61 67 65 28 24 68 6f 6d 65 70 61 67 65 29 .function.setHomepage($homepage)
74d80 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 20 3d 20 24 68 6f 6d 65 70 61 67 65 3b 0a .{.$this->homepage.=.$homepage;.
74da0 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 48 6f 6d 65 70 61 67 }.....public.function.getHomepag
74dc0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a e().{.return.$this->homepage;.}.
74de0 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 75 70 70 6f 72 74 ......public.function.setSupport
74e00 28 61 72 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 (array.$support).{.$this->suppor
74e20 74 20 3d 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 t.=.$support;.}.....public.funct
74e40 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 69 73 2d ion.getSupport().{.return.$this-
74e60 3e 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >support;.}.....public.function.
74e80 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 65 61 6e 29 isAbandoned().{.return.(boolean)
74ea0 20 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this->abandoned;.}.....public.
74ec0 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 62 61 6e 64 6f 6e 65 64 28 24 61 62 61 6e 64 6f 6e 65 64 function.setAbandoned($abandoned
74ee0 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 20 3d 20 24 61 62 61 6e 64 6f 6e 65 ).{.$this->abandoned.=.$abandone
74f00 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 67 65 74 52 65 d;.}.......public.function.getRe
74f20 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 6e 20 69 73 5f 73 placementPackage().{.return.is_s
74f40 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 29 20 3f 20 24 74 68 69 73 2d tring($this->abandoned).?.$this-
74f60 3e 61 62 61 6e 64 6f 6e 65 64 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a >abandoned.:.null;.}.}.<?php....
74f80 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
74fa0 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b ge;.......interface.CompletePack
74fc0 61 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 49 6e 74 65 ageInterface.extends.PackageInte
74fe0 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 rface.{......public.function.get
75000 53 63 72 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Scripts();.........public.functi
75020 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c on.getRepositories();.......publ
75040 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a ic.function.getLicense();.......
75060 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 0a public.function.getKeywords();..
75080 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 .....public.function.getDescript
750a0 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 65 74 ion();.......public.function.get
750c0 48 6f 6d 65 70 61 67 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Homepage();.........public.funct
750e0 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ion.getAuthors();.......public.f
75100 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c unction.getSupport();.......publ
75120 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 3b 0a 0a 0a 0a 0a 0a ic.function.isAbandoned();......
75140 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 .public.function.getReplacementP
75160 61 63 6b 61 67 65 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 ackage();.}.<?php............nam
75180 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 3b 0a espace.Composer\Package\Dumper;.
751a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 .use.Composer\Package\BasePackag
751c0 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 e;.use.Composer\Package\PackageI
751e0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 nterface;.use.Composer\Package\C
75200 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 6d ompletePackageInterface;.use.Com
75220 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 poser\Package\RootPackageInterfa
75240 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d 70 65 72 0a 7b 0a 70 75 62 ce;......class.ArrayDumper.{.pub
75260 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 lic.function.dump(PackageInterfa
75280 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 62 ce.$package).{.$keys.=.array(.'b
752a0 69 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 74 79 70 65 27 2c 0a 27 65 78 74 72 inaries'.=>.'bin',.'type',.'extr
752c0 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 27 20 3d 3e 20 27 69 6e 73 a',.'installationSource'.=>.'ins
752e0 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 2c 0a 27 tallation-source',.'autoload',.'
75300 64 65 76 41 75 74 6f 6c 6f 61 64 27 20 3d 3e 20 27 61 75 74 6f 6c 6f 61 64 2d 64 65 76 27 2c 0a devAutoload'.=>.'autoload-dev',.
75320 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 27 20 3d 3e 20 27 6e 6f 74 69 66 69 63 61 74 69 'notificationUrl'.=>.'notificati
75340 6f 6e 2d 75 72 6c 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 69 6e 63 6c on-url',.'includePaths'.=>.'incl
75360 75 64 65 2d 70 61 74 68 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a ude-path',.);..$data.=.array();.
75380 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 $data['name'].=.$package->getPre
753a0 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 ttyName();.$data['version'].=.$p
753c0 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 64 61 74 ackage->getPrettyVersion();.$dat
753e0 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 70 61 63 6b 61 a['version_normalized'].=.$packa
75400 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d ge->getVersion();..if.($package-
75420 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 61 72 67 65 74 >getTargetDir()).{.$data['target
75440 2d 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 -dir'].=.$package->getTargetDir(
75460 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 );.}..if.($package->getSourceTyp
75480 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 20 3d e()).{.$data['source']['type'].=
754a0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 .$package->getSourceType();.$dat
754c0 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 a['source']['url'].=.$package->g
754e0 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 etSourceUrl();.$data['source']['
75500 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 reference'].=.$package->getSourc
75520 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 20 3d 20 24 70 61 eReference();.if.($mirrors.=.$pa
75540 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 29 20 7b 0a 24 64 61 ckage->getSourceMirrors()).{.$da
75560 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 20 3d 20 24 6d 69 72 72 6f ta['source']['mirrors'].=.$mirro
75580 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 44 69 73 74 54 79 rs;.}.}..if.($package->getDistTy
755a0 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 pe()).{.$data['dist']['type'].=.
755c0 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 24 64 61 74 61 5b 27 $package->getDistType();.$data['
755e0 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 dist']['url'].=.$package->getDis
75600 74 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 tUrl();.$data['dist']['reference
75620 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 '].=.$package->getDistReference(
75640 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3d 20 24 70 61 );.$data['dist']['shasum'].=.$pa
75660 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 6d 28 29 3b 0a 69 66 ckage->getDistSha1Checksum();.if
75680 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 44 69 73 74 4d 69 .($mirrors.=.$package->getDistMi
756a0 72 72 6f 72 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 6d 69 72 72 6f 72 rrors()).{.$data['dist']['mirror
756c0 73 27 5d 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 s'].=.$mirrors;.}.}..if.($packag
756e0 65 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 20 7b 0a 24 64 61 74 61 e->getArchiveExcludes()).{.$data
75700 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 ['archive']['exclude'].=.$packag
75720 65 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 e->getArchiveExcludes();.}..fore
75740 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b ach.(BasePackage::$supportedLink
75760 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 24 Types.as.$type.=>.$opts).{.if.($
75780 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 links.=.$package->{'get'.ucfirst
757a0 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 ($opts['method'])}()).{.foreach.
757c0 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 70 65 5d ($links.as.$link).{.$data[$type]
757e0 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 [$link->getTarget()].=.$link->ge
75800 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 64 61 tPrettyConstraint();.}.ksort($da
75820 74 61 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d ta[$type]);.}.}..if.($packages.=
75840 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 6b 73 6f 72 .$package->getSuggests()).{.ksor
75860 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d t($packages);.$data['suggest'].=
75880 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 .$packages;.}..if.($package->get
758a0 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d 65 27 5d 20 3d ReleaseDate()).{.$data['time'].=
758c0 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 2d 3e 66 6f 72 .$package->getReleaseDate()->for
758e0 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 mat('Y-m-d.H:i:s');.}..$data.=.$
75900 74 68 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 this->dumpValues($package,.$keys
75920 2c 20 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 ,.$data);..if.($package.instance
75940 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 of.CompletePackageInterface).{.$
75960 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c 69 63 65 6e 73 keys.=.array(.'scripts',.'licens
75980 65 27 2c 0a 27 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 0a 27 68 e',.'authors',.'description',.'h
759a0 6f 6d 65 70 61 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 omepage',.'keywords',.'repositor
759c0 69 65 73 27 2c 0a 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 ies',.'support',.);..$data.=.$th
759e0 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 is->dumpValues($package,.$keys,.
75a00 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 $data);..if.(isset($data['keywor
75a20 64 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 ds']).&&.is_array($data['keyword
75a40 73 27 5d 29 29 20 7b 0a 73 6f 72 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b s'])).{.sort($data['keywords']);
75a60 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 29 .}..if.($package->isAbandoned())
75a80 20 7b 0a 24 64 61 74 61 5b 27 61 62 61 6e 64 6f 6e 65 64 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 .{.$data['abandoned'].=.$package
75aa0 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 20 3f 3a 20 74 72 75 ->getReplacementPackage().?:.tru
75ac0 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 e;.}.}..if.($package.instanceof.
75ae0 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6d 69 6e 69 6d 75 6d RootPackageInterface).{.$minimum
75b00 53 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d Stability.=.$package->getMinimum
75b20 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 Stability();.if.($minimumStabili
75b40 74 79 29 20 7b 0a 24 64 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d ty).{.$data['minimum-stability']
75b60 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 .=.$minimumStability;.}.}..if.(c
75b80 6f 75 6e 74 28 24 70 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 ount($package->getTransportOptio
75ba0 6e 73 28 29 29 20 3e 20 30 29 20 7b 0a 24 64 61 74 61 5b 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 ns()).>.0).{.$data['transport-op
75bc0 74 69 6f 6e 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 tions'].=.$package->getTransport
75be0 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 Options();.}..return.$data;.}..p
75c00 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 56 61 6c 75 65 73 28 50 61 63 6b 61 rivate.function.dumpValues(Packa
75c20 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 6b 65 79 geInterface.$package,.array.$key
75c40 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6b 65 79 73 s,.array.$data).{.foreach.($keys
75c60 20 61 73 20 24 6d 65 74 68 6f 64 20 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 5f 6e 75 .as.$method.=>.$key).{.if.(is_nu
75c80 6d 65 72 69 63 28 24 6d 65 74 68 6f 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6b 65 79 meric($method)).{.$method.=.$key
75ca0 3b 0a 7d 0a 0a 24 67 65 74 74 65 72 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6d 65 ;.}..$getter.=.'get'.ucfirst($me
75cc0 74 68 6f 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 74 74 65 thod);.$value.=.$package->$gette
75ce0 72 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 28 69 r();..if.(null.!==.$value.&&.!(i
75d00 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 s_array($value).&&.0.===.count($
75d20 76 61 6c 75 65 29 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 75 65 3b value))).{.$data[$key].=.$value;
75d40 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .}.}..return.$data;.}.}.<?php...
75d60 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b .........namespace.Composer\Pack
75d80 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 age;..use.Composer\Semver\Constr
75da0 61 69 6e 74 5c 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 0a 0a aint\ConstraintInterface;.......
75dc0 63 6c 61 73 73 20 4c 69 6e 6b 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 class.Link.{....protected.$sourc
75de0 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 3b 0a 0a 0a 0a 0a 70 72 e;.....protected.$target;.....pr
75e00 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 otected.$constraint;.....protect
75e20 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 ed.$description;.....protected.$
75e40 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c prettyConstraint;...........publ
75e60 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 2c ic.function.__construct($source,
75e80 20 24 74 61 72 67 65 74 2c 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 .$target,.ConstraintInterface.$c
75ea0 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d onstraint.=.null,.$description.=
75ec0 20 27 72 65 6c 61 74 65 73 20 74 6f 27 2c 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 .'relates.to',.$prettyConstraint
75ee0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 20 3d 20 73 74 72 74 6f .=.null).{.$this->source.=.strto
75f00 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 lower($source);.$this->target.=.
75f20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 strtolower($target);.$this->cons
75f40 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 64 65 73 traint.=.$constraint;.$this->des
75f60 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e cription.=.$description;.$this->
75f80 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 prettyConstraint.=.$prettyConstr
75fa0 61 69 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 aint;.}.....public.function.getS
75fc0 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 3b 0a ource().{.return.$this->source;.
75fe0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 }.....public.function.getTarget(
76000 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a ).{.return.$this->target;.}.....
76020 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a public.function.getConstraint().
76040 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 0a {.return.$this->constraint;.}...
76060 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 43 6f 6e 73 ...public.function.getPrettyCons
76080 74 72 61 69 6e 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 traint().{.if.(null.===.$this->p
760a0 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e rettyConstraint).{.throw.new.\Un
760c0 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('
760e0 4c 69 6e 6b 20 25 73 20 68 61 73 20 62 65 65 6e 20 6d 69 73 63 6f 6e 66 69 67 75 72 65 64 20 61 Link.%s.has.been.misconfigured.a
76100 6e 64 20 68 61 64 20 6e 6f 20 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 67 69 76 65 6e nd.had.no.prettyConstraint.given
76120 2e 27 2c 20 24 74 68 69 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 .',.$this));.}..return.$this->pr
76140 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ettyConstraint;.}.....public.fun
76160 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.__toString().{.return.$thi
76180 73 2d 3e 73 6f 75 72 63 65 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e s->source.'.'.$this->description
761a0 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 63 .'.'.$this->target.'.('.$this->c
761c0 6f 6e 73 74 72 61 69 6e 74 2e 27 29 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e onstraint.')';.}......public.fun
761e0 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 50 61 63 6b 61 67 65 49 6e 74 ction.getPrettyString(PackageInt
76200 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 erface.$sourcePackage).{.return.
76220 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 $sourcePackage->getPrettyString(
76240 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 ).'.'.$this->description.'.'.$th
76260 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 is->target.'.'.$this->constraint
76280 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ->getPrettyString().'';.}.}.<?ph
762a0 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\
762c0 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 75 73 65 20 43 6f 6d Package\LinkConstraint;..use.Com
762e0 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e poser\Semver\Constraint\EmptyCon
76300 73 74 72 61 69 6e 74 20 61 73 20 53 65 6d 76 65 72 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 straint.as.SemverEmptyConstraint
76320 3b 0a 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 27 20 2e 20 5f 5f 4e 41 4d 45 ;..trigger_error('The.'...__NAME
76340 53 50 41 43 45 5f 5f 20 2e 20 27 5c 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 63 6c 61 73 SPACE__...'\EmptyConstraint.clas
76360 73 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 s.is.deprecated,.use.Composer\Se
76380 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 mver\Constraint\EmptyConstraint.
763a0 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a instead.',.E_USER_DEPRECATED);..
763c0 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 65 78 74 65 6e 64 73 ...class.EmptyConstraint.extends
763e0 20 53 65 6d 76 65 72 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 .SemverEmptyConstraint.implement
76400 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f s.LinkConstraintInterface.{.}.<?
76420 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
76440 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 75 73 65 20 43 r\Package\LinkConstraint;..use.C
76460 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 omposer\Semver\Constraint\Constr
76480 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 aintInterface;..trigger_error('T
764a0 68 65 20 27 20 2e 20 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 20 2e 20 27 5c 4c 69 6e 6b 43 6f 6e he.'...__NAMESPACE__...'\LinkCon
764c0 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 69 6e 74 65 72 66 61 63 65 20 69 73 20 64 65 straintInterface.interface.is.de
764e0 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f precated,.use.Composer\Semver\Co
76500 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 69 6e 73 nstraint\ConstraintInterface.ins
76520 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 0a 0a 0a tead.',.E_USER_DEPRECATED);.....
76540 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 interface.LinkConstraintInterfac
76560 65 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a e.extends.ConstraintInterface.{.
76580 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
765a0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 75 poser\Package\LinkConstraint;..u
765c0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 4d 75 se.Composer\Semver\Constraint\Mu
765e0 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 61 73 20 53 65 6d 76 65 72 4d 75 6c 74 69 43 6f 6e 73 ltiConstraint.as.SemverMultiCons
76600 74 72 61 69 6e 74 3b 0a 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 27 20 2e 20 traint;..trigger_error('The.'...
76620 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 20 2e 20 27 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e __NAMESPACE__...'\MultiConstrain
76640 74 20 63 6c 61 73 73 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 43 6f 6d 70 6f t.class.is.deprecated,.use.Compo
76660 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 74 ser\Semver\Constraint\MultiConst
76680 72 61 69 6e 74 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 raint.instead.',.E_USER_DEPRECAT
766a0 45 44 29 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 65 ED);.....class.MultiConstraint.e
766c0 78 74 65 6e 64 73 20 53 65 6d 76 65 72 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 xtends.SemverMultiConstraint.imp
766e0 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 0a lements.LinkConstraintInterface.
76700 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 {.}.<?php............namespace.C
76720 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a omposer\Package\LinkConstraint;.
76740 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c .use.Composer\Semver\Constraint\
76760 41 62 73 74 72 61 63 74 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 74 72 69 67 67 65 72 5f 65 72 72 AbstractConstraint;..trigger_err
76780 6f 72 28 27 54 68 65 20 27 20 2e 20 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 20 2e 20 27 5c 53 70 or('The.'...__NAMESPACE__...'\Sp
767a0 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 20 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 ecificConstraint.abstract.class.
767c0 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 72 65 70 6c 61 is.deprecated,.there.is.no.repla
767e0 63 65 6d 65 6e 74 20 66 6f 72 20 69 74 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 cement.for.it.',.E_USER_DEPRECAT
76800 45 44 29 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 66 69 63 ED);.....abstract.class.Specific
76820 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 43 6f 6e 73 74 Constraint.extends.AbstractConst
76840 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 6e 74 49 raint.implements.LinkConstraintI
76860 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 nterface.{.}.<?php............na
76880 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e mespace.Composer\Package\LinkCon
768a0 73 74 72 61 69 6e 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f straint;..use.Composer\Semver\Co
768c0 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 74 72 69 67 67 65 72 5f 65 72 nstraint\Constraint;..trigger_er
768e0 72 6f 72 28 27 54 68 65 20 27 20 2e 20 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 20 2e 20 27 5c 56 ror('The.'...__NAMESPACE__...'\V
76900 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 63 6c 61 73 73 20 69 73 20 64 65 70 72 65 63 ersionConstraint.class.is.deprec
76920 61 74 65 64 2c 20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 ated,.use.Composer\Semver\Constr
76940 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 aint\Constraint.instead.',.E_USE
76960 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e R_DEPRECATED);.....class.Version
76980 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 20 69 6d Constraint.extends.Constraint.im
769a0 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
769c0 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .{.}.<?php............namespace.
769e0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f Composer\Package\Loader;..use.Co
76a00 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 mposer\Package;.use.Composer\Pac
76a20 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c kage\AliasPackage;.use.Composer\
76a40 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 Package\Link;.use.Composer\Packa
76a60 67 65 5c 52 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 ge\RootAliasPackage;.use.Compose
76a80 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 0a r\Package\RootPackageInterface;.
76aa0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 use.Composer\Semver\VersionParse
76ac0 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 6d 70 6c 65 6d r;......class.ArrayLoader.implem
76ae0 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 65 63 74 65 64 ents.LoaderInterface.{.protected
76b00 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 6c 6f 61 64 .$versionParser;.protected.$load
76b20 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 5f 63 6f 6e 73 Options;..public.function.__cons
76b40 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 truct(VersionParser.$parser.=.nu
76b60 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 0a 69 66 20 28 ll,.$loadOptions.=.false).{.if.(
76b80 21 24 70 61 72 73 65 72 29 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f !$parser).{.$parser.=.new.Versio
76ba0 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 nParser;.}.$this->versionParser.
76bc0 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 6e 73 20 3d 20 =.$parser;.$this->loadOptions.=.
76be0 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 63 74 69 6f 6e $loadOptions;.}..public.function
76c00 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 .load(array.$config,.$class.=.'C
76c20 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 67 65 27 omposer\Package\CompletePackage'
76c40 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 ).{.if.(!isset($config['name']))
76c60 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
76c80 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 20 6e 6f 20 6e eption('Unknown.package.has.no.n
76ca0 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 24 63 6f 6e 66 ame.defined.('.json_encode($conf
76cc0 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 6e 66 69 67 5b ig).').');.}.if.(!isset($config[
76ce0 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 6e 65 78 70 65 'version'])).{.throw.new.\Unexpe
76d00 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 63 ctedValueException('Package.'.$c
76d20 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 69 6f 6e 20 64 onfig['name'].'.has.no.version.d
76d40 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 63 6f 6e 66 69 efined.');.}....if.(isset($confi
76d60 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 0a 24 76 65 72 g['version_normalized'])).{.$ver
76d80 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 6d 61 6c 69 7a sion.=.$config['version_normaliz
76da0 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 74 68 69 73 2d ed'];.}.else.{.$version.=.$this-
76dc0 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 63 6f 6e 66 69 >versionParser->normalize($confi
76de0 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 20 6e 65 77 20 g['version']);.}.$package.=.new.
76e00 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 72 73 69 6f 6e $class($config['name'],.$version
76e20 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 6b 61 67 65 2d ,.$config['version']);.$package-
76e40 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 65 27 5d 29 20 >setType(isset($config['type']).
76e60 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 5d 29 20 3a 20 ?.strtolower($config['type']).:.
76e80 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 66 69 67 5b 27 'library');..if.(isset($config['
76ea0 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 73 65 74 54 61 target-dir'])).{.$package->setTa
76ec0 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 27 5d 29 3b 0a rgetDir($config['target-dir']);.
76ee0 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 27 5d 29 20 26 }..if.(isset($config['extra']).&
76f00 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 29 29 20 7b 0a &.is_array($config['extra'])).{.
76f20 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 27 65 78 74 72 $package->setExtra($config['extr
76f40 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 27 62 69 6e 27 a']);.}..if.(isset($config['bin'
76f60 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 5b 27 62 69 6e ])).{.if.(!is_array($config['bin
76f80 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 75 '])).{.throw.new.\UnexpectedValu
76fa0 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 69 67 5b 27 6e eException('Package.'.$config['n
76fc0 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 65 20 61 6e 20 ame'].'\'s.bin.key.should.be.an.
76fe0 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 69 6e 27 5d 29 array,.'.gettype($config['bin'])
77000 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 6e 66 69 67 5b .'.given.');.}.foreach.($config[
77020 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 63 6f 6e 66 69 'bin'].as.$key.=>.$bin).{.$confi
77040 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 2c 20 27 2f 27 g['bin'][$key].=.ltrim($bin,.'/'
77060 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 24 63 6f 6e 66 );.}.$package->setBinaries($conf
77080 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 6f 6e 66 69 67 ig['bin']);.}..if.(isset($config
770a0 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 0a 24 70 61 63 ['installation-source'])).{.$pac
770c0 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 28 24 63 6f 6e kage->setInstallationSource($con
770e0 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 3b 0a 7d 0a 0a fig['installation-source']);.}..
77100 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 29 29 20 7b 0a if.(isset($config['source'])).{.
77120 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 5d 5b 27 74 79 if.(!isset($config['source']['ty
77140 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 75 72 63 65 27 pe']).||.!isset($config['source'
77160 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 5b 27 73 6f 75 ]['url']).||.!isset($config['sou
77180 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 77 20 6e 65 77 rce']['reference'])).{.throw.new
771a0 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\UnexpectedValueException(sprin
771c0 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 79 20 73 68 6f tf(."Package.%s's.source.key.sho
771e0 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 5c 22 3a 20 2e uld.be.specified.as.{\"type\":..
77200 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 63 65 5c 22 3a ..,.\"url\":....,.\"reference\":
77220 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
77240 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 6f 75 72 63 65 e'],.json_encode($config['source
77260 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 63 65 54 79 70 ']).));.}.$package->setSourceTyp
77280 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 29 3b 0a 24 70 e($config['source']['type']);.$p
772a0 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 67 5b 27 73 6f ackage->setSourceUrl($config['so
772c0 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 65 74 53 6f 75 urce']['url']);.$package->setSou
772e0 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 65 27 5d 5b 27 rceReference($config['source']['
77300 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 6e 66 69 67 5b reference']);.if.(isset($config[
77320 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 61 63 6b 61 67 'source']['mirrors'])).{.$packag
77340 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 5b 27 73 6f 75 e->setSourceMirrors($config['sou
77360 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 28 69 73 73 65 rce']['mirrors']);.}.}..if.(isse
77380 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 69 73 73 65 74 t($config['dist'])).{.if.(!isset
773a0 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 7c 20 21 69 73 ($config['dist']['type']).||.!is
773c0 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 29 20 7b 0a 74 set($config['dist']['url'])).{.t
773e0 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
77400 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 69 73 74 20 6b on(sprintf(."Package.%s's.dist.k
77420 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 2e 0a 22 7b 5c ey.should.be.specified.as.".."{\
77440 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 72 65 "type\":....,.\"url\":....,.\"re
77460 66 65 72 65 6e 63 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a 20 2e 2e 2e 7d ference\":....,.\"shasum\":....}
77480 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 65 27 5d 2c 0a ,\n%s.given.",.$config['name'],.
774a0 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 29 0a 29 29 3b json_encode($config['dist']).));
774c0 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 6f 6e 66 69 67 .}.$package->setDistType($config
774e0 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 2d 3e 73 65 74 ['dist']['type']);.$package->set
77500 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 6c 27 5d 29 3b DistUrl($config['dist']['url']);
77520 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 69 73 73 65 .$package->setDistReference(isse
77540 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 65 27 5d 29 20 t($config['dist']['reference']).
77560 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 65 27 5d 20 3a ?.$config['dist']['reference'].:
77580 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 61 31 43 68 65 .null);.$package->setDistSha1Che
775a0 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 5b 27 73 68 61 cksum(isset($config['dist']['sha
775c0 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 68 61 73 75 6d sum']).?.$config['dist']['shasum
775e0 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 69 67 5b 27 64 '].:.null);.if.(isset($config['d
77600 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 67 65 2d 3e 73 ist']['mirrors'])).{.$package->s
77620 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 27 5d 5b 27 6d etDistMirrors($config['dist']['m
77640 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 63 6b 61 67 65 irrors']);.}.}..foreach.(Package
77660 5c 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 \BasePackage::$supportedLinkType
77680 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 s.as.$type.=>.$opts).{.if.(isset
776a0 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 ($config[$type])).{.$method.=.'s
776c0 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 et'.ucfirst($opts['method']);.$p
776e0 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 70 61 72 73 65 4c ackage->{$method}(.$this->parseL
77700 69 6e 6b 73 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 70 61 63 6b inks(.$package->getName(),.$pack
77720 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 24 6f 70 74 73 5b 27 age->getPrettyVersion(),.$opts['
77740 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 0a 29 0a description'],.$config[$type].).
77760 29 3b 0a 7d 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 67 67 65 );.}.}..if.(isset($config['sugge
77780 73 74 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 st']).&&.is_array($config['sugge
777a0 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 st'])).{.foreach.($config['sugge
777c0 73 74 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 st'].as.$target.=>.$reason).{.if
777e0 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 74 72 69 6d 28 24 72 65 61 73 6f .('self.version'.===.trim($reaso
77800 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 74 61 72 67 65 74 n)).{.$config['suggest'][$target
77820 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 ].=.$package->getPrettyVersion()
77840 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 63 6f 6e ;.}.}.$package->setSuggests($con
77860 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 fig['suggest']);.}..if.(isset($c
77880 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e onfig['autoload'])).{.$package->
778a0 73 65 74 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 setAutoload($config['autoload'])
778c0 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 6f 61 64 ;.}..if.(isset($config['autoload
778e0 2d 64 65 76 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 41 75 74 6f 6c -dev'])).{.$package->setDevAutol
77900 6f 61 64 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 3b 0a 7d 0a oad($config['autoload-dev']);.}.
77920 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 .if.(isset($config['include-path
77940 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 '])).{.$package->setIncludePaths
77960 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 ($config['include-path']);.}..if
77980 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 69 .(!empty($config['time'])).{.$ti
779a0 6d 65 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 64 2b 2b 24 2f 44 27 2c 20 24 63 6f me.=.preg_match('/^\d++$/D',.$co
779c0 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 20 3f 20 27 40 27 2e 24 63 6f 6e 66 69 67 5b 27 74 69 6d nfig['time']).?.'@'.$config['tim
779e0 65 27 5d 20 3a 20 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 3b 0a 0a 74 72 79 20 7b 0a 24 64 e'].:.$config['time'];..try.{.$d
77a00 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 69 6d 65 2c 20 6e 65 77 20 5c ate.=.new.\DateTime($time,.new.\
77a20 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e DateTimeZone('UTC'));.$package->
77a40 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 64 61 74 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 setReleaseDate($date);.}.catch.(
77a60 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 \Exception.$e).{.}.}..if.(!empty
77a80 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 29 20 7b ($config['notification-url'])).{
77aa0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 24 63 .$package->setNotificationUrl($c
77ac0 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 69 onfig['notification-url']);.}..i
77ae0 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 f.(!empty($config['archive']['ex
77b00 63 6c 75 64 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 72 63 68 69 76 65 clude'])).{.$package->setArchive
77b20 45 78 63 6c 75 64 65 73 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 Excludes($config['archive']['exc
77b40 6c 75 64 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 lude']);.}..if.($package.instanc
77b60 65 6f 66 20 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 eof.Package\CompletePackageInter
77b80 66 61 63 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 face).{.if.(isset($config['scrip
77ba0 74 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 ts']).&&.is_array($config['scrip
77bc0 74 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 ts'])).{.foreach.($config['scrip
77be0 74 73 27 5d 20 61 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e 65 72 73 29 20 7b 0a ts'].as.$event.=>.$listeners).{.
77c00 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 20 3d 20 28 61 72 $config['scripts'][$event].=.(ar
77c20 72 61 79 29 20 24 6c 69 73 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 ray).$listeners;.}.$package->set
77c40 53 63 72 69 70 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 3b 0a 7d 0a 0a Scripts($config['scripts']);.}..
77c60 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 if.(!empty($config['description'
77c80 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 ]).&&.is_string($config['descrip
77ca0 74 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 tion'])).{.$package->setDescript
77cc0 69 6f 6e 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a 0a ion($config['description']);.}..
77ce0 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 if.(!empty($config['homepage']).
77d00 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d &&.is_string($config['homepage']
77d20 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 65 28 24 63 6f 6e 66 )).{.$package->setHomepage($conf
77d40 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 ig['homepage']);.}..if.(!empty($
77d60 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 config['keywords']).&&.is_array(
77d80 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 $config['keywords'])).{.$package
77da0 2d 3e 73 65 74 4b 65 79 77 6f 72 64 73 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 ->setKeywords($config['keywords'
77dc0 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 6c 69 63 65 6e ]);.}..if.(!empty($config['licen
77de0 73 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e 73 65 28 69 73 se'])).{.$package->setLicense(is
77e00 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 20 3f 20 24 63 6f _array($config['license']).?.$co
77e20 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b nfig['license'].:.array($config[
77e40 27 6c 69 63 65 6e 73 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 'license']));.}..if.(!empty($con
77e60 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e fig['authors']).&&.is_array($con
77e80 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 fig['authors'])).{.$package->set
77ea0 41 75 74 68 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 0a Authors($config['authors']);.}..
77ec0 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b if.(isset($config['support'])).{
77ee0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f 6e 66 69 67 5b 27 73 .$package->setSupport($config['s
77f00 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b upport']);.}..if.(isset($config[
77f20 27 61 62 61 6e 64 6f 6e 65 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 62 'abandoned'])).{.$package->setAb
77f40 61 6e 64 6f 6e 65 64 28 24 63 6f 6e 66 69 67 5b 27 61 62 61 6e 64 6f 6e 65 64 27 5d 29 3b 0a 7d andoned($config['abandoned']);.}
77f60 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 .}..if.($aliasNormalized.=.$this
77f80 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 63 6f 6e 66 69 67 29 29 20 7b 0a 69 66 20 ->getBranchAlias($config)).{.if.
77fa0 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 ($package.instanceof.RootPackage
77fc0 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 52 6f 6f 74 Interface).{.$package.=.new.Root
77fe0 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 4e 6f 72 AliasPackage($package,.$aliasNor
78000 6d 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 malized,.preg_replace('{(\.9{7})
78020 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d +}',.'.x',.$aliasNormalized));.}
78040 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b .else.{.$package.=.new.AliasPack
78060 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 age($package,.$aliasNormalized,.
78080 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 preg_replace('{(\.9{7})+}',.'.x'
780a0 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 ,.$aliasNormalized));.}.}..if.($
780c0 74 68 69 73 2d 3e 6c 6f 61 64 4f 70 74 69 6f 6e 73 20 26 26 20 69 73 73 65 74 28 24 63 6f 6e 66 this->loadOptions.&&.isset($conf
780e0 69 67 5b 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 70 61 63 ig['transport-options'])).{.$pac
78100 6b 61 67 65 2d 3e 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 63 6f 6e 66 69 kage->setTransportOptions($confi
78120 67 5b 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 g['transport-options']);.}..retu
78140 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rn.$package;.}.........public.fu
78160 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c 69 6e 6b 73 28 24 73 6f 75 72 63 65 2c 20 24 73 6f 75 72 nction.parseLinks($source,.$sour
78180 63 65 56 65 72 73 69 6f 6e 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 ceVersion,.$description,.$links)
781a0 0a 7b 0a 24 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e .{.$res.=.array();.foreach.($lin
781c0 6b 73 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a ks.as.$target.=>.$constraint).{.
781e0 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 if.('self.version'.===.$constrai
78200 6e 74 29 20 7b 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d nt).{.$parsedConstraint.=.$this-
78220 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 >versionParser->parseConstraints
78240 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 0a 24 70 61 72 73 ($sourceVersion);.}.else.{.$pars
78260 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 edConstraint.=.$this->versionPar
78280 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e ser->parseConstraints($constrain
782a0 74 29 3b 0a 7d 0a 0a 24 72 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d t);.}..$res[strtolower($target)]
782c0 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 70 .=.new.Link($source,.$target,.$p
782e0 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 arsedConstraint,.$description,.$
78300 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a constraint);.}..return.$res;.}..
78320 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 41 ......public.function.getBranchA
78340 6c 69 61 73 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 28 27 64 65 76 2d lias(array.$config).{.if.(('dev-
78360 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 73 69 6f 6e 27 5d 2c '.!==.substr($config['version'],
78380 20 30 2c 20 34 29 20 26 26 20 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e .0,.4).&&.'-dev'.!==.substr($con
783a0 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 2d 34 29 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 fig['version'],.-4)).||.!isset($
783c0 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 config['extra']['branch-alias'])
783e0 0a 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 .||.!is_array($config['extra']['
78400 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 0a 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 branch-alias']).).{.return;.}..f
78420 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 oreach.($config['extra']['branch
78440 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 -alias'].as.$sourceBranch.=>.$ta
78460 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 rgetBranch).{...if.('-dev'.!==.s
78480 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 ubstr($targetBranch,.-4)).{.cont
784a0 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 inue;.}....$validatedTargetBranc
784c0 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c h.=.$this->versionParser->normal
784e0 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 izeBranch(substr($targetBranch,.
78500 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 0,.-4));.if.('-dev'.!==.substr($
78520 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f validatedTargetBranch,.-4)).{.co
78540 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e ntinue;.}....if.(strtolower($con
78560 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 21 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 fig['version']).!==.strtolower($
78580 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 sourceBranch)).{.continue;.}....
785a0 69 66 20 28 28 24 73 6f 75 72 63 65 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 if.(($sourcePrefix.=.$this->vers
785c0 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 ionParser->parseNumericAliasPref
785e0 69 78 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 0a 26 26 20 28 24 74 61 72 67 65 74 50 72 ix($sourceBranch)).&&.($targetPr
78600 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 2d 3e 70 61 72 efix.=.$this->versionParser->par
78620 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 74 61 72 67 65 74 42 72 61 6e seNumericAliasPrefix($targetBran
78640 63 68 29 29 0a 26 26 20 28 73 74 72 69 70 6f 73 28 24 74 61 72 67 65 74 50 72 65 66 69 78 2c 20 ch)).&&.(stripos($targetPrefix,.
78660 24 73 6f 75 72 63 65 50 72 65 66 69 78 29 20 21 3d 3d 20 30 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e $sourcePrefix).!==.0).).{.contin
78680 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 ue;.}..return.$validatedTargetBr
786a0 61 6e 63 68 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 anch;.}.}.}.<?php............nam
786c0 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;.
786e0 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
78700 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.$
78720 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
78740 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
78760 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
78780 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
787a0 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.=
787c0 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;
787e0 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
78800 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("
78820 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
78840 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
78860 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
78880 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
788a0 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
788c0 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
788e0 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..........
78900 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
78920 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
78940 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
78960 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
78980 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).
789a0 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;.}....
789c0 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).{.
789e0 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).{
78a00 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
78a20 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
78a40 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
78a60 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
78a80 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.
78aa0 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);.}.
78ac0 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
78ae0 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
78b00 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;...
78b20 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.{.
78b40 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
78b60 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
78b80 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
78ba0 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\
78bc0 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
78be0 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 5c ckage\BasePackage;.use.Composer\
78c00 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f Package\PackageInterface;.use.Co
78c20 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 mposer\Package\AliasPackage;.use
78c40 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 .Composer\Config;.use.Composer\F
78c60 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 56 65 72 actory;.use.Composer\Package\Ver
78c80 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 47 75 65 73 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 sion\VersionGuesser;.use.Compose
78ca0 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 r\Semver\VersionParser;.use.Comp
78cc0 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
78ce0 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 78 65 63 r;.use.Composer\Util\ProcessExec
78d00 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 4c utor;.........class.RootPackageL
78d20 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 oader.extends.ArrayLoader.{....p
78d40 72 69 76 61 74 65 20 24 6d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f rivate.$manager;.....private.$co
78d60 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 47 75 65 73 73 65 nfig;.....private.$versionGuesse
78d80 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 r;..public.function.__construct(
78da0 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 2c 20 43 6f 6e 66 RepositoryManager.$manager,.Conf
78dc0 69 67 20 24 63 6f 6e 66 69 67 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 ig.$config,.VersionParser.$parse
78de0 72 20 3d 20 6e 75 6c 6c 2c 20 56 65 72 73 69 6f 6e 47 75 65 73 73 65 72 20 24 76 65 72 73 69 6f r.=.null,.VersionGuesser.$versio
78e00 6e 47 75 65 73 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e nGuesser.=.null).{.parent::__con
78e20 73 74 72 75 63 74 28 24 70 61 72 73 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 struct($parser);..$this->manager
78e40 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 6f .=.$manager;.$this->config.=.$co
78e60 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 47 75 65 73 73 65 72 20 3d 20 24 76 nfig;.$this->versionGuesser.=.$v
78e80 65 72 73 69 6f 6e 47 75 65 73 73 65 72 20 3f 3a 20 6e 65 77 20 56 65 72 73 69 6f 6e 47 75 65 73 ersionGuesser.?:.new.VersionGues
78ea0 73 65 72 28 24 63 6f 6e 66 69 67 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 ser($config,.new.ProcessExecutor
78ec0 28 29 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 7d 0a 0a 0a 0a (),.$this->versionParser);.}....
78ee0 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 79 20 24 ....public.function.load(array.$
78f00 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 config,.$class.=.'Composer\Packa
78f20 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 27 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ge\RootPackage',.$cwd.=.null).{.
78f40 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 if.(!isset($config['name'])).{.$
78f60 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 3b 0a 7d 0a 24 config['name'].=.'__root__';.}.$
78f80 61 75 74 6f 56 65 72 73 69 6f 6e 65 64 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 21 69 73 73 65 autoVersioned.=.false;.if.(!isse
78fa0 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 67 t($config['version'])).{...if.(g
78fc0 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 29 20 etenv('COMPOSER_ROOT_VERSION')).
78fe0 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f {.$version.=.getenv('COMPOSER_RO
79000 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 OT_VERSION');.}.else.{.$version.
79020 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 47 75 65 73 73 65 72 2d 3e 67 75 65 73 73 56 65 =.$this->versionGuesser->guessVe
79040 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 2c 20 24 63 77 64 20 3f 3a 20 67 65 74 63 77 64 28 29 29 rsion($config,.$cwd.?:.getcwd())
79060 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d ;.}..if.(!$version).{.$version.=
79080 20 27 31 2e 30 2e 30 27 3b 0a 24 61 75 74 6f 56 65 72 73 69 6f 6e 65 64 20 3d 20 74 72 75 65 3b .'1.0.0';.$autoVersioned.=.true;
790a0 0a 7d 0a 0a 24 63 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 .}..$config['version'].=.$versio
790c0 6e 3b 0a 7d 0a 0a 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 n;.}..$realPackage.=.$package.=.
790e0 70 61 72 65 6e 74 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 69 parent::load($config,.$class);.i
79100 66 20 28 24 72 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 f.($realPackage.instanceof.Alias
79120 50 61 63 6b 61 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 Package).{.$realPackage.=.$packa
79140 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 75 74 6f 56 65 ge->getAliasOf();.}..if.($autoVe
79160 72 73 69 6f 6e 65 64 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 72 65 70 6c 61 63 65 rsioned).{.$realPackage->replace
79180 56 65 72 73 69 6f 6e 28 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e Version($realPackage->getVersion
791a0 28 29 2c 20 27 4e 6f 20 76 65 72 73 69 6f 6e 20 73 65 74 20 28 70 61 72 73 65 64 20 61 73 20 31 (),.'No.version.set.(parsed.as.1
791c0 2e 30 2e 30 29 27 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6d .0.0)');.}..if.(isset($config['m
791e0 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 50 61 63 6b inimum-stability'])).{.$realPack
79200 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 73 69 6f 6e age->setMinimumStability(Version
79220 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 63 6f 6e 66 Parser::normalizeStability($conf
79240 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 0a 0a 24 61 ig['minimum-stability']));.}..$a
79260 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 46 6c 61 67 liases.=.array();.$stabilityFlag
79280 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 72 72 61 79 s.=.array();.$references.=.array
792a0 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 2c 20 27 72 ();.foreach.(array('require',.'r
792c0 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 0a 69 66 20 equire-dev').as.$linkType).{.if.
792e0 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 7b 0a 24 6c (isset($config[$linkType])).{.$l
79300 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 6f 72 74 65 inkInfo.=.BasePackage::$supporte
79320 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 6f 64 20 3d dLinkTypes[$linkType];.$method.=
79340 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 74 68 6f 64 .'get'.ucfirst($linkInfo['method
79360 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 63 68 20 28 ']);.$links.=.array();.foreach.(
79380 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 6c 69 6e 6b $realPackage->$method().as.$link
793a0 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 29 5d 20 3d ).{.$links[$link->getTarget()].=
793c0 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 50 72 65 74 .$link->getConstraint()->getPret
793e0 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 69 73 2d 3e tyString();.}.$aliases.=.$this->
79400 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 73 65 73 29 extractAliases($links,.$aliases)
79420 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 78 74 72 61 ;.$stabilityFlags.=.$this->extra
79440 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 61 62 69 6c ctStabilityFlags($links,.$stabil
79460 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 69 6e 69 6d ityFlags,.$realPackage->getMinim
79480 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 3d 20 24 74 umStability());.$references.=.$t
794a0 68 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 24 6c 69 6e 6b 73 2c 20 24 his->extractReferences($links,.$
794c0 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 67 65 2d 3e references);.}.}..$realPackage->
794e0 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 61 63 6b 61 setAliases($aliases);.$realPacka
79500 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 6c 69 74 79 ge->setStabilityFlags($stability
79520 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 65 72 65 6e Flags);.$realPackage->setReferen
79540 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 28 24 63 6f ces($references);..if.(isset($co
79560 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 65 61 6c 50 nfig['prefer-stable'])).{.$realP
79580 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 6c 29 20 24 ackage->setPreferStable((bool).$
795a0 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 0a 24 72 65 config['prefer-stable']);.}..$re
795c0 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
795e0 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 2c 20 24 74 sitories(null,.$this->config,.$t
79600 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 6f 73 20 61 his->manager);.foreach.($repos.a
79620 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 64 64 52 65 s.$repo).{.$this->manager->addRe
79640 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 61 67 65 2d pository($repo);.}.$realPackage-
79660 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 69 67 2d 3e >setRepositories($this->config->
79680 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 24 70 61 63 getRepositories());..return.$pac
796a0 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 74 72 61 63 kage;.}..private.function.extrac
796c0 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 72 61 79 20 tAliases(array.$requires,.array.
796e0 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 65 73 20 61 $aliases).{.foreach.($requires.a
79700 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 0a 69 66 20 s.$reqName.=>.$reqVersion).{.if.
79720 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 23 5b 5e 20 (preg_match('{^([^,\s#]+)(?:#[^.
79740 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 56 65 72 73 ]+)?.+as.+([^,\s]+)$}',.$reqVers
79760 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 5b 5d 20 3d 20 61 72 72 ion,.$match)).{.$aliases[].=.arr
79780 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 ay(.'package'.=>.strtolower($req
797a0 4e 61 6d 65 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 Name),.'version'.=>.$this->versi
797c0 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 24 onParser->normalize($match[1],.$
797e0 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 63 68 5b 32 reqVersion),.'alias'.=>.$match[2
79800 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 69 73 2d 3e ],.'alias_normalized'.=>.$this->
79820 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 74 63 68 5b versionParser->normalize($match[
79840 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 74 75 72 6e 2],.$reqVersion),.);.}.}..return
79860 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 6f 6e 20 65 .$aliases;.}..private.function.e
79880 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 72 65 71 75 xtractStabilityFlags(array.$requ
798a0 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 20 24 6d 69 ires,.array.$stabilityFlags,.$mi
798c0 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 65 73 20 3d nimumStability).{.$stabilities.=
798e0 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 24 6d 69 6e .BasePackage::$stabilities;.$min
79900 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 5b 24 6d 69 imumStability.=.$stabilities[$mi
79920 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 65 71 75 69 nimumStability];.foreach.($requi
79940 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 res.as.$reqName.=>.$reqVersion).
79960 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 6f 72 {.$constraints.=.array();....$or
79980 53 70 6c 69 74 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 7c 5c 7c 3f 5c 73 2a Split.=.preg_split('{\s*\|\|?\s*
799a0 7d 27 2c 20 74 72 69 6d 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 3b 0a 66 6f 72 65 61 63 68 20 }',.trim($reqVersion));.foreach.
799c0 28 24 6f 72 53 70 6c 69 74 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 61 6e 64 ($orSplit.as.$constraint).{.$and
799e0 53 70 6c 69 74 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 28 3f 3c 21 5e 7c 61 73 7c 5b 3d Split.=.preg_split('{(?<!^|as|[=
79a00 3e 3c 20 2c 5d 29 20 2a 28 3f 3c 21 2d 29 5b 2c 20 5d 28 3f 21 2d 29 20 2a 28 3f 21 2c 7c 61 73 ><.,]).*(?<!-)[,.](?!-).*(?!,|as
79a20 7c 24 29 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 |$)}',.$constraint);.foreach.($a
79a40 6e 64 53 70 6c 69 74 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 ndSplit.as.$constraint).{.$const
79a60 72 61 69 6e 74 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 0a 0a 0a 20 24 raints[].=.$constraint;.}.}....$
79a80 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 63 6f 6e 73 74 72 61 match.=.false;.foreach.($constra
79aa0 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 28 70 72 65 67 5f ints.as.$constraint).{.if.(preg_
79ac0 6d 61 74 63 68 28 27 7b 5e 5b 5e 40 5d 2a 3f 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 match('{^[^@]*?@('.implode('|',.
79ae0 61 72 72 61 79 5f 6b 65 79 73 28 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 array_keys($stabilities)).')$}i'
79b00 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6e 61 6d 65 20 ,.$constraint,.$match)).{.$name.
79b20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 =.strtolower($reqName);.$stabili
79b40 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a ty.=.$stabilities[VersionParser:
79b60 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 5d 3b :normalizeStability($match[1])];
79b80 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d ..if.(isset($stabilityFlags[$nam
79ba0 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 e]).&&.$stabilityFlags[$name].>.
79bc0 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 $stability).{.continue;.}.$stabi
79be0 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 lityFlags[$name].=.$stability;.$
79c00 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 61 74 63 68 29 20 7b match.=.true;.}.}..if.($match).{
79c20 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 .continue;.}......$reqVersion.=.
79c40 70 72 65 67 5f 72 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 preg_replace('{^([^,\s@]+).as..+
79c60 24 7d 27 2c 20 27 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 $}',.'$1',.$reqVersion);.if.(pre
79c80 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 24 7d 27 2c 20 24 72 65 71 56 65 72 73 g_match('{^[^,\s@]+$}',.$reqVers
79ca0 69 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 20 21 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 ion).&&.'stable'.!==.($stability
79cc0 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 Name.=.VersionParser::parseStabi
79ce0 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 lity($reqVersion))).{.$name.=.st
79d00 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d rtolower($reqName);.$stability.=
79d20 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 5d 3b 0a 69 .$stabilities[$stabilityName];.i
79d40 66 20 28 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d f.((isset($stabilityFlags[$name]
79d60 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 ).&&.$stabilityFlags[$name].>.$s
79d80 74 61 62 69 6c 69 74 79 29 20 7c 7c 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 tability).||.($minimumStability.
79da0 3e 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 >.$stability)).{.continue;.}.$st
79dc0 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 abilityFlags[$name].=.$stability
79de0 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d ;.}.}..return.$stabilityFlags;.}
79e00 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 52 65 66 65 72 65 ..private.function.extractRefere
79e20 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 65 66 nces(array.$requires,.array.$ref
79e40 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 erences).{.foreach.($requires.as
79e60 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 24 72 65 71 .$reqName.=>.$reqVersion).{.$req
79e80 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 Version.=.preg_replace('{^([^,\s
79ea0 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e @]+).as..+$}',.'$1',.$reqVersion
79ec0 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 );.if.(preg_match('{^[^,\s@]+?#(
79ee0 5b 61 2d 66 30 2d 39 5d 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 [a-f0-9]+)$}',.$reqVersion,.$mat
79f00 63 68 29 20 26 26 20 27 64 65 76 27 20 3d 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 ch).&&.'dev'.===.($stabilityName
79f20 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 .=.VersionParser::parseStability
79f40 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c ($reqVersion))).{.$name.=.strtol
79f60 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d ower($reqName);.$references[$nam
79f80 65 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 e].=.$match[1];.}.}..return.$ref
79fa0 65 72 65 6e 63 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 erences;.}.}.<?php............na
79fc0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b mespace.Composer\Package\Loader;
79fe0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 ..use.Composer\Package;.use.Comp
7a000 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f oser\Package\BasePackage;.use.Co
7a020 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 mposer\Semver\Constraint\Constra
7a040 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e int;.use.Composer\Semver\Version
7a060 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 79 5c Parser;.use.Composer\Repository\
7a080 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 PlatformRepository;.....class.Va
7a0a0 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c lidatingArrayLoader.implements.L
7a0c0 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 41 4c 4c oaderInterface.{.const.CHECK_ALL
7a0e0 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 55 4e 42 4f 55 4e 44 5f 43 4f 4e 53 54 52 .=.1;.const.CHECK_UNBOUND_CONSTR
7a100 41 49 4e 54 53 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 AINTS.=.1;..private.$loader;.pri
7a120 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 69 76 61 74 65 20 24 65 72 vate.$versionParser;.private.$er
7a140 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 74 65 rors;.private.$warnings;.private
7a160 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 70 .$config;.private.$strictName;.p
7a180 72 69 76 61 74 65 20 24 66 6c 61 67 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rivate.$flags;..public.function.
7a1a0 5f 5f 63 6f 6e 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 __construct(LoaderInterface.$loa
7a1c0 64 65 72 2c 20 24 73 74 72 69 63 74 4e 61 6d 65 20 3d 20 74 72 75 65 2c 20 56 65 72 73 69 6f 6e der,.$strictName.=.true,.Version
7a1e0 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 24 66 6c 61 67 73 20 3d 20 Parser.$parser.=.null,.$flags.=.
7a200 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 24 74 0).{.$this->loader.=.$loader;.$t
7a220 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 20 3f 3a 20 his->versionParser.=.$parser.?:.
7a240 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 72 69 new.VersionParser();.$this->stri
7a260 63 74 4e 61 6d 65 20 3d 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 66 6c 61 ctName.=.$strictName;.$this->fla
7a280 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 gs.=.$flags;.}..public.function.
7a2a0 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f load(array.$config,.$class.=.'Co
7a2c0 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 27 29 mposer\Package\CompletePackage')
7a2e0 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 24 74 68 69 .{.$this->errors.=.array();.$thi
7a300 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f s->warnings.=.array();.$this->co
7a320 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 72 69 nfig.=.$config;..if.($this->stri
7a340 63 74 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 ctName).{.$this->validateRegex('
7a360 6e 61 6d 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d name',.'[A-Za-z0-9][A-Za-z0-9_.-
7a380 5d 2a 2f 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d 2a 27 2c 20 ]*/[A-Za-z0-9][A-Za-z0-9_.-]*',.
7a3a0 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 true);.}.else.{.$this->validateS
7a3c0 74 72 69 6e 67 28 27 6e 61 6d 65 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 tring('name',.true);.}..if.(!emp
7a3e0 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a ty($this->config['version'])).{.
7a400 74 72 79 20 7b 0a 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 try.{.$this->versionParser->norm
7a420 61 6c 69 7a 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b alize($this->config['version']);
7a440 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 .}.catch.(\Exception.$e).{.$this
7a460 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 76 65 72 73 69 6f 6e 20 3a 20 69 6e 76 61 6c 69 64 20 ->errors[].=.'version.:.invalid.
7a480 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 value.('.$this->config['version'
7a4a0 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 74 28 ].'):.'.$e->getMessage();.unset(
7a4c0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a $this->config['version']);.}.}..
7a4e0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 74 79 70 65 27 2c 20 27 5b 41 $this->validateRegex('type',.'[A
7a500 2d 5a 61 2d 7a 30 2d 39 2d 5d 2b 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 -Za-z0-9-]+');.$this->validateSt
7a520 72 69 6e 67 28 27 74 61 72 67 65 74 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 ring('target-dir');.$this->valid
7a540 61 74 65 41 72 72 61 79 28 27 65 78 74 72 61 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 ateArray('extra');.$this->valida
7a560 74 65 46 6c 61 74 41 72 72 61 79 28 27 62 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 teFlatArray('bin');.$this->valid
7a580 61 74 65 41 72 72 61 79 28 27 73 63 72 69 70 74 73 27 29 3b 20 0a 20 24 74 68 69 73 2d 3e 76 61 ateArray('scripts');...$this->va
7a5a0 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 3b 0a 24 74 68 lidateString('description');.$th
7a5c0 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 6c 28 27 68 6f 6d 65 70 61 67 65 27 29 3b 0a 24 74 68 is->validateUrl('homepage');.$th
7a5e0 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6b 65 79 77 6f 72 64 73 27 is->validateFlatArray('keywords'
7a600 2c 20 27 5b 5c 70 7b 4e 7d 5c 70 7b 4c 7d 20 2e 5f 2d 5d 2b 27 29 3b 0a 0a 69 66 20 28 69 73 73 ,.'[\p{N}\p{L}.._-]+');..if.(iss
7a620 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a et($this->config['license'])).{.
7a640 69 66 20 28 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 6c 69 63 if.(is_string($this->config['lic
7a660 65 6e 73 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 ense'])).{.$this->validateRegex(
7a680 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 'license',.'[A-Za-z0-9+..()-]+')
7a6a0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 ;.}.else.{.$this->validateFlatAr
7a6c0 72 61 79 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d ray('license',.'[A-Za-z0-9+..()-
7a6e0 5d 2b 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 ]+');.}.}..$this->validateString
7a700 28 27 74 69 6d 65 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 ('time');.if.(!empty($this->conf
7a720 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 ig['time'])).{.try.{.$date.=.new
7a740 20 5c 44 61 74 65 54 69 6d 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d .\DateTime($this->config['time']
7a760 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 20 63 ,.new.\DateTimeZone('UTC'));.}.c
7a780 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 65 72 atch.(\Exception.$e).{.$this->er
7a7a0 72 6f 72 73 5b 5d 20 3d 20 27 74 69 6d 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 rors[].=.'time.:.invalid.value.(
7a7c0 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 2e 27 29 3a 20 27 2e 24 65 '.$this->config['time'].'):.'.$e
7a7e0 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e ->getMessage();.unset($this->con
7a800 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 fig['time']);.}.}..if.($this->va
7a820 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 68 6f 72 73 27 29 20 26 26 20 21 65 6d 70 74 79 lidateArray('authors').&&.!empty
7a840 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 66 6f ($this->config['authors'])).{.fo
7a860 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 68 6f 72 73 27 5d 20 reach.($this->config['authors'].
7a880 61 73 20 24 6b 65 79 20 3d 3e 20 24 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 as.$key.=>.$author).{.if.(!is_ar
7a8a0 72 61 79 28 24 61 75 74 68 6f 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 ray($author)).{.$this->errors[].
7a8c0 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 =.'authors.'.$key.'.:.should.be.
7a8e0 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 61 75 74 68 6f 72 29 2e 27 20 67 an.array,.'.gettype($author).'.g
7a900 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 27 61 75 74 68 iven';.unset($this->config['auth
7a920 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 ors'][$key]);.continue;.}.foreac
7a940 68 20 28 61 72 72 61 79 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 65 6d 61 69 6c 27 2c 20 27 6e h.(array('homepage',.'email',.'n
7a960 61 6d 65 27 2c 20 27 72 6f 6c 65 27 29 20 61 73 20 24 61 75 74 68 6f 72 44 61 74 61 29 20 7b 0a ame',.'role').as.$authorData).{.
7a980 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 20 if.(isset($author[$authorData]).
7a9a0 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b 24 61 75 74 68 6f 72 44 61 74 &&.!is_string($author[$authorDat
7a9c0 61 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 a])).{.$this->errors[].=.'author
7a9e0 73 2e 27 2e 24 6b 65 79 2e 27 2e 27 2e 24 61 75 74 68 6f 72 44 61 74 61 2e 27 20 3a 20 69 6e 76 s.'.$key.'.'.$authorData.'.:.inv
7aa00 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 alid.value,.must.be.a.string';.u
7aa20 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b nset($this->config['authors'][$k
7aa40 65 79 5d 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 ey][$authorData]);.}.}.if.(isset
7aa60 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d ($author['homepage']).&&.!$this-
7aa80 3e 66 69 6c 74 65 72 55 72 6c 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 >filterUrl($author['homepage']))
7aaa0 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e .{.$this->warnings[].=.'authors.
7aac0 27 2e 24 6b 65 79 2e 27 2e 68 6f 6d 65 70 61 67 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 '.$key.'.homepage.:.invalid.valu
7aae0 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 2e 27 29 2c 20 6d 75 73 e.('.$author['homepage'].'),.mus
7ab00 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 t.be.an.http/https.URL';.unset($
7ab20 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 68 this->config['authors'][$key]['h
7ab40 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b omepage']);.}.if.(isset($author[
7ab60 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 61 75 74 68 6f 72 'email']).&&.!filter_var($author
7ab80 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c ['email'],.FILTER_VALIDATE_EMAIL
7aba0 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 61 75 74 68 6f 72 )).{.$this->warnings[].=.'author
7abc0 73 2e 27 2e 24 6b 65 79 2e 27 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 s.'.$key.'.email.:.invalid.value
7abe0 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 .('.$author['email'].'),.must.be
7ac00 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($
7ac20 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 65 this->config['authors'][$key]['e
7ac40 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 mail']);.}.if.(empty($this->conf
7ac60 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 ig['authors'][$key])).{.unset($t
7ac80 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 3b 0a 7d his->config['authors'][$key]);.}
7aca0 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 .}.if.(empty($this->config['auth
7acc0 6f 72 73 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 ors'])).{.unset($this->config['a
7ace0 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 uthors']);.}.}..if.($this->valid
7ad00 61 74 65 41 72 72 61 79 28 27 73 75 70 70 6f 72 74 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 ateArray('support').&&.!empty($t
7ad20 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 his->config['support'])).{.forea
7ad40 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f 72 75 6d 27 2c 20 27 77 69 ch.(array('issues',.'forum',.'wi
7ad60 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 65 6d 61 69 6c 27 2c 20 27 69 72 63 27 2c 20 27 ki',.'source',.'email',.'irc',.'
7ad80 64 6f 63 73 27 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 docs').as.$key).{.if.(isset($thi
7ada0 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 s->config['support'][$key]).&&.!
7adc0 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 is_string($this->config['support
7ade0 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 '][$key])).{.$this->errors[].=.'
7ae00 73 75 70 70 6f 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 support.'.$key.'.:.invalid.value
7ae20 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 ,.must.be.a.string';.unset($this
7ae40 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a ->config['support'][$key]);.}.}.
7ae60 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 .if.(isset($this->config['suppor
7ae80 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 74 68 t']['email']).&&.!filter_var($th
7aea0 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 2c 20 is->config['support']['email'],.
7aec0 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d FILTER_VALIDATE_EMAIL)).{.$this-
7aee0 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 65 6d 61 69 6c 20 3a 20 69 >warnings[].=.'support.email.:.i
7af00 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 nvalid.value.('.$this->config['s
7af20 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 upport']['email'].'),.must.be.a.
7af40 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 valid.email.address';.unset($thi
7af60 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a s->config['support']['email']);.
7af80 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 }..if.(isset($this->config['supp
7afa0 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 ort']['irc']).&&.!$this->filterU
7afc0 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 rl($this->config['support']['irc
7afe0 27 5d 2c 20 61 72 72 61 79 28 27 69 72 63 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e '],.array('irc'))).{.$this->warn
7b000 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 69 72 63 20 3a 20 69 6e 76 61 6c 69 64 20 ings[].=.'support.irc.:.invalid.
7b020 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 value.('.$this->config['support'
7b040 5d 5b 27 69 72 63 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 69 72 63 3a 2f 2f 3c 73 65 ]['irc'].'),.must.be.a.irc://<se
7b060 72 76 65 72 3e 2f 3c 63 68 61 6e 6e 65 6c 3e 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 rver>/<channel>.URL';.unset($thi
7b080 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 3b 0a 7d 0a s->config['support']['irc']);.}.
7b0a0 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f 72 75 6d .foreach.(array('issues',.'forum
7b0c0 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 64 6f 63 73 27 29 20 61 73 20 ',.'wiki',.'source',.'docs').as.
7b0e0 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b $key).{.if.(isset($this->config[
7b100 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 'support'][$key]).&&.!$this->fil
7b120 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b terUrl($this->config['support'][
7b140 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 $key])).{.$this->warnings[].=.'s
7b160 75 70 70 6f 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 upport.'.$key.'.:.invalid.value.
7b180 28 27 2e 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 ('.$this->config['support'][$key
7b1a0 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 ].'),.must.be.an.http/https.URL'
7b1c0 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 70 70 6f 72 74 27 5d ;.unset($this->config['support']
7b1e0 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f [$key]);.}.}.if.(empty($this->co
7b200 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d nfig['support'])).{.unset($this-
7b220 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 75 6e 62 6f 75 >config['support']);.}.}..$unbou
7b240 6e 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d ndConstraint.=.new.Constraint('=
7b260 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 ',.$this->versionParser->normali
7b280 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 72 72 ze('dev-master'));..foreach.(arr
7b2a0 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c ay_keys(BasePackage::$supportedL
7b2c0 69 6e 6b 54 79 70 65 73 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 inkTypes).as.$linkType).{.if.($t
7b2e0 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 6c 69 6e 6b 54 79 70 65 29 20 26 26 his->validateArray($linkType).&&
7b300 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 .isset($this->config[$linkType])
7b320 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b ).{.foreach.($this->config[$link
7b340 54 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 Type].as.$package.=>.$constraint
7b360 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d ).{.if.(!preg_match('{^[A-Za-z0-
7b380 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 9_./-]+$}',.$package)).{.$this->
7b3a0 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b warnings[].=.$linkType.'.'.$pack
7b3c0 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 6b 65 79 2c 20 70 61 63 6b 61 67 65 20 6e 61 6d age.'.:.invalid.key,.package.nam
7b3e0 65 73 20 6d 75 73 74 20 62 65 20 73 74 72 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e es.must.be.strings.containing.on
7b400 6c 79 20 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 27 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 ly.[A-Za-z0-9_./-]';.}.if.(!is_s
7b420 74 72 69 6e 67 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 tring($constraint)).{.$this->err
7b440 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 ors[].=.$linkType.'.'.$package.'
7b460 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 .:.invalid.value,.must.be.a.stri
7b480 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 ng.containing.a.version.constrai
7b4a0 6e 74 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 nt';.unset($this->config[$linkTy
7b4c0 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 65 6c 66 2e pe][$package]);.}.elseif.('self.
7b4e0 76 65 72 73 69 6f 6e 27 20 21 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 72 79 20 version'.!==.$constraint).{.try.
7b500 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 73 69 {.$linkConstraint.=.$this->versi
7b520 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 onParser->parseConstraints($cons
7b540 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 65 29 traint);.}.catch.(\Exception.$e)
7b560 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 .{.$this->errors[].=.$linkType.'
7b580 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 6e 20 .'.$package.'.:.invalid.version.
7b5a0 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 2e 27 constraint.('.$e->getMessage().'
7b5c0 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 79 70 )';.unset($this->config[$linkTyp
7b5e0 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 69 66 e][$package]);.continue;.}....if
7b600 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 5f 55 .(.($this->flags.&.self::CHECK_U
7b620 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 65 27 NBOUND_CONSTRAINTS).&&.'require'
7b640 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 69 6e .===.$linkType.&&.$linkConstrain
7b660 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 0a 26 t->matches($unboundConstraint).&
7b680 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 72 79 &.!preg_match(PlatformRepository
7b6a0 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 6b 61 ::PLATFORM_PACKAGE_REGEX,.$packa
7b6c0 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 69 6e ge).).{.$this->warnings[].=.$lin
7b6e0 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 20 76 kType.'.'.$package.'.:.unbound.v
7b700 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 69 6e ersion.constraints.('.$constrain
7b720 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 0a 7d t.').should.be.avoided';.}.}.}.}
7b740 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 73 75 .}..if.($this->validateArray('su
7b760 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 67 5b ggest').&&.!empty($this->config[
7b780 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 3e 63 'suggest'])).{.foreach.($this->c
7b7a0 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 3e 20 onfig['suggest'].as.$package.=>.
7b7c0 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 28 24 $description).{.if.(!is_string($
7b7e0 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 5d 20 description)).{.$this->errors[].
7b800 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 6c 69 =.'suggest.'.$package.'.:.invali
7b820 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 72 69 d.value,.must.be.a.string.descri
7b840 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 74 65 bing.why.the.package.is.suggeste
7b860 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 73 74 d';.unset($this->config['suggest
7b880 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 73 2d '][$package]);.}.}.}..if.($this-
7b8a0 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 6c 69 >validateString('minimum-stabili
7b8c0 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 6d 69 ty').&&.!empty($this->config['mi
7b8e0 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 65 74 nimum-stability'])).{.if.(!isset
7b900 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 69 73 (BasePackage::$stabilities[$this
7b920 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 29 29 ->config['minimum-stability']]))
7b940 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 73 74 .{.$this->errors[].=.'minimum-st
7b960 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 69 73 ability.:.invalid.value.('.$this
7b980 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 27 29 ->config['minimum-stability'].')
7b9a0 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 27 2c ,.must.be.one.of.'.implode(',.',
7b9c0 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 69 6c .array_keys(BasePackage::$stabil
7b9e0 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 6d 69 ities));.unset($this->config['mi
7ba00 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 74 68 nimum-stability']);.}.}..if.($th
7ba20 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 26 26 is->validateArray('autoload').&&
7ba40 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 64 27 .!empty($this->config['autoload'
7ba60 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 27 70 ])).{.$types.=.array('psr-0',.'p
7ba80 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 2c 20 27 65 78 63 sr-4',.'classmap',.'files',.'exc
7baa0 6c 75 64 65 2d 66 72 6f 6d 2d 63 6c 61 73 73 6d 61 70 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 lude-from-classmap');.foreach.($
7bac0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 20 61 73 20 24 74 79 70 this->config['autoload'].as.$typ
7bae0 65 20 3d 3e 20 24 74 79 70 65 43 6f 6e 66 69 67 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 e.=>.$typeConfig).{.if.(!in_arra
7bb00 79 28 24 74 79 70 65 2c 20 24 74 79 70 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 y($type,.$types)).{.$this->error
7bb20 73 5b 5d 20 3d 20 27 61 75 74 6f 6c 6f 61 64 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 s[].=.'autoload.:.invalid.value.
7bb40 28 27 2e 24 74 79 70 65 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d ('.$type.'),.must.be.one.of.'.im
7bb60 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 74 79 70 65 73 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 plode(',.',.$types);.unset($this
7bb80 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a ->config['autoload'][$type]);.}.
7bba0 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 29 20 7b 0a 66 6f 72 65 61 63 68 if.($type.===.'psr-4').{.foreach
7bbc0 20 28 24 74 79 70 65 43 6f 6e 66 69 67 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 .($typeConfig.as.$namespace.=>.$
7bbe0 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.!==.''.&&
7bc00 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)
7bc20 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 6f 6c 6f 61 64 2e ).{.$this->errors[].=.'autoload.
7bc40 70 73 72 2d 34 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 6e 61 6d 65 73 70 psr-4.:.invalid.value.('.$namesp
7bc60 61 63 65 2e 27 29 2c 20 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 ace.'),.namespaces.must.end.with
7bc80 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2c 20 73 68 6f 75 6c 64 20 62 .a.namespace.separator,.should.b
7bca0 65 20 27 2e 24 6e 61 6d 65 73 70 61 63 65 2e 27 5c 5c 27 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a e.'.$namespace.'\\';.}.}.}.}.}..
7bcc0 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 61 75 74 6f 6c 6f if.(!empty($this->config['autolo
7bce0 61 64 27 5d 5b 27 70 73 72 2d 34 27 5d 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e ad']['psr-4']).&&.!empty($this->
7bd00 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e config['target-dir'])).{.$this->
7bd20 65 72 72 6f 72 73 5b 5d 20 3d 20 27 74 61 72 67 65 74 2d 64 69 72 20 3a 20 74 68 69 73 20 63 61 errors[].=.'target-dir.:.this.ca
7bd40 6e 20 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 74 68 65 20 n.not.be.used.together.with.the.
7bd60 61 75 74 6f 6c 6f 61 64 2e 70 73 72 2d 34 20 73 65 74 74 69 6e 67 2c 20 72 65 6d 6f 76 65 20 74 autoload.psr-4.setting,.remove.t
7bd80 61 72 67 65 74 2d 64 69 72 20 74 6f 20 75 70 67 72 61 64 65 20 74 6f 20 70 73 72 2d 34 27 3b 0a arget-dir.to.upgrade.to.psr-4';.
7bda0 0a 20 0a 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 ....unset($this->config['autoloa
7bdc0 64 27 5d 5b 27 70 73 72 2d 34 27 5d 29 3b 0a 7d 0a 0a 0a 20 0a 0a 0a 20 0a 0a 24 74 68 69 73 2d d']['psr-4']);.}..........$this-
7bde0 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 >validateFlatArray('include-path
7be00 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 74 72 61 6e 73 70 ');.$this->validateArray('transp
7be20 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 ort-options');....if.(isset($thi
7be40 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 s->config['extra']['branch-alias
7be60 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 '])).{.if.(!is_array($this->conf
7be80 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a ig['extra']['branch-alias'])).{.
7bea0 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d $this->errors[].=.'extra.branch-
7bec0 61 6c 69 61 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 76 65 72 73 alias.:.must.be.an.array.of.vers
7bee0 69 6f 6e 73 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 ions.=>.aliases';.}.else.{.forea
7bf00 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e ch.($this->config['extra']['bran
7bf20 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 ch-alias'].as.$sourceBranch.=>.$
7bf40 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d targetBranch).{...if.('-dev'.!==
7bf60 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 .substr($targetBranch,.-4)).{.$t
7bf80 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d his->warnings[].=.'extra.branch-
7bfa0 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 alias.'.$sourceBranch.'.:.the.ta
7bfc0 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 rget.branch.('.$targetBranch.').
7bfe0 6d 75 73 74 20 65 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e must.end.in.-dev';.unset($this->
7c000 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b config['extra']['branch-alias'][
7c020 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a $sourceBranch]);..continue;.}...
7c040 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d .$validatedTargetBranch.=.$this-
7c060 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 >versionParser->normalizeBranch(
7c080 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 substr($targetBranch,.0,.-4));.i
7c0a0 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 f.('-dev'.!==.substr($validatedT
7c0c0 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 argetBranch,.-4)).{.$this->warni
7c0e0 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 ngs[].=.'extra.branch-alias.'.$s
7c100 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 ourceBranch.'.:.the.target.branc
7c120 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 62 65 20 61 20 h.('.$targetBranch.').must.be.a.
7c140 70 61 72 73 65 61 62 6c 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 2e 30 2d 64 65 76 27 3b 0a parseable.number.like.2.0-dev';.
7c160 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 unset($this->config['extra']['br
7c180 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 anch-alias'][$sourceBranch]);..c
7c1a0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 28 24 73 6f 75 72 63 65 50 72 65 66 69 78 ontinue;.}....if.(($sourcePrefix
7c1c0 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 70 61 72 73 65 4e 75 .=.$this->versionParser->parseNu
7c1e0 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 mericAliasPrefix($sourceBranch))
7c200 0a 26 26 20 28 24 74 61 72 67 65 74 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 .&&.($targetPrefix.=.$this->vers
7c220 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 ionParser->parseNumericAliasPref
7c240 69 78 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 29 0a 26 26 20 28 73 74 72 69 70 6f 73 28 24 ix($targetBranch)).&&.(stripos($
7c260 74 61 72 67 65 74 50 72 65 66 69 78 2c 20 24 73 6f 75 72 63 65 50 72 65 66 69 78 29 20 21 3d 3d targetPrefix,.$sourcePrefix).!==
7c280 20 30 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 27 65 78 74 .0).).{.$this->warnings[].=.'ext
7c2a0 72 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 ra.branch-alias.'.$sourceBranch.
7c2c0 27 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 '.:.the.target.branch.('.$target
7c2e0 42 72 61 6e 63 68 2e 27 29 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 6e 75 6d 65 72 69 63 Branch.').is.not.a.valid.numeric
7c300 20 61 6c 69 61 73 20 66 6f 72 20 74 68 69 73 20 76 65 72 73 69 6f 6e 27 3b 0a 75 6e 73 65 74 28 .alias.for.this.version';.unset(
7c320 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 2d 61 $this->config['extra']['branch-a
7c340 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a lias'][$sourceBranch]);.}.}.}.}.
7c360 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 .if.($this->errors).{.throw.new.
7c380 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 65 InvalidPackageException($this->e
7c3a0 72 72 6f 72 73 2c 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 2c 20 24 63 6f 6e 66 69 67 29 rrors,.$this->warnings,.$config)
7c3c0 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c ;.}..$package.=.$this->loader->l
7c3e0 6f 61 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 29 3b 0a 24 74 68 69 oad($this->config,.$class);.$thi
7c400 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 s->config.=.null;..return.$packa
7c420 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 6e ge;.}..public.function.getWarnin
7c440 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a 7d gs().{.return.$this->warnings;.}
7c460 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a ..public.function.getErrors().{.
7c480 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 return.$this->errors;.}..private
7c4a0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 70 72 6f 70 65 72 74 .function.validateRegex($propert
7c4c0 79 2c 20 24 72 65 67 65 78 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b y,.$regex,.$mandatory.=.false).{
7c4e0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f .if.(!$this->validateString($pro
7c500 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c perty,.$mandatory)).{.return.fal
7c520 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 se;.}..if.(!preg_match('{^'.$reg
7c540 65 78 2e 27 24 7d 75 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 ex.'$}u',.$this->config[$propert
7c560 79 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 y])).{.$message.=.$property.'.:.
7c580 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 invalid.value.('.$this->config[$
7c5a0 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 property].'),.must.match.'.$rege
7c5c0 78 3b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f x;.if.($mandatory).{.$this->erro
7c5e0 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d rs[].=.$message;.}.else.{.$this-
7c600 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 75 6e 73 65 74 28 >warnings[].=.$message;.}.unset(
7c620 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 75 $this->config[$property]);..retu
7c640 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 69 rn.false;.}..return.true;.}..pri
7c660 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 vate.function.validateString($pr
7c680 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 operty,.$mandatory.=.false).{.if
7c6a0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d .(isset($this->config[$property]
7c6c0 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 ).&&.!is_string($this->config[$p
7c6e0 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 roperty])).{.$this->errors[].=.$
7c700 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 69 6e 67 2c property.'.:.should.be.a.string,
7c720 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 .'.gettype($this->config[$proper
7c740 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 ty]).'.given';.unset($this->conf
7c760 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d ig[$property]);..return.false;.}
7c780 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 ..if.(!isset($this->config[$prop
7c7a0 65 72 74 79 5d 29 20 7c 7c 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 erty]).||.trim($this->config[$pr
7c7c0 6f 70 65 72 74 79 5d 29 20 3d 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 operty]).===.'').{.if.($mandator
7c7e0 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 79 y).{.$this->errors[].=.$property
7c800 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 .'.:.must.be.present';.}.unset($
7c820 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 75 72 this->config[$property]);..retur
7c840 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 69 76 n.false;.}..return.true;.}..priv
7c860 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 ate.function.validateArray($prop
7c880 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 erty,.$mandatory.=.false).{.if.(
7c8a0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 isset($this->config[$property]).
7c8c0 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 &&.!is_array($this->config[$prop
7c8e0 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f erty])).{.$this->errors[].=.$pro
7c900 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e perty.'.:.should.be.an.array,.'.
7c920 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d gettype($this->config[$property]
7c940 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b ).'.given';.unset($this->config[
7c960 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 $property]);..return.false;.}..i
7c980 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 f.(!isset($this->config[$propert
7c9a0 79 5d 29 20 7c 7c 20 21 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f y]).||.!count($this->config[$pro
7c9c0 70 65 72 74 79 5d 29 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 perty])).{.if.($mandatory).{.$th
7c9e0 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 is->errors[].=.$property.'.:.mus
7ca00 74 20 62 65 20 70 72 65 73 65 6e 74 20 61 6e 64 20 63 6f 6e 74 61 69 6e 20 61 74 20 6c 65 61 73 t.be.present.and.contain.at.leas
7ca20 74 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 t.one.element';.}.unset($this->c
7ca40 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 onfig[$property]);..return.false
7ca60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ;.}..return.true;.}..private.fun
7ca80 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 ction.validateFlatArray($propert
7caa0 79 2c 20 24 72 65 67 65 78 20 3d 20 6e 75 6c 6c 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 y,.$regex.=.null,.$mandatory.=.f
7cac0 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 41 72 72 61 alse).{.if.(!$this->validateArra
7cae0 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 y($property,.$mandatory)).{.retu
7cb00 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 73 73 20 3d 20 74 72 75 65 3b 0a 66 6f 72 65 61 rn.false;.}..$pass.=.true;.forea
7cb20 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 20 61 73 20 ch.($this->config[$property].as.
7cb40 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 $key.=>.$value).{.if.(!is_string
7cb60 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 ($value).&&.!is_numeric($value))
7cb80 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 .{.$this->errors[].=.$property.'
7cba0 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 6f 72 20 .'.$key.'.:.must.be.a.string.or.
7cbc0 69 6e 74 2c 20 27 2e 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 2e 27 20 67 69 76 65 6e 27 3b int,.'.gettype($value).'.given';
7cbe0 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 5b .unset($this->config[$property][
7cc00 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 63 6f 6e 74 69 6e 75 65 $key]);.$pass.=.false;..continue
7cc20 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 67 65 78 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 ;.}..if.($regex.&&.!preg_match('
7cc40 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 {^'.$regex.'$}u',.$value)).{.$th
7cc60 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 2e 24 is->warnings[].=.$property.'.'.$
7cc80 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 76 61 6c 75 65 2e key.'.:.invalid.value.('.$value.
7cca0 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 75 6e 73 65 74 28 24 '),.must.match.'.$regex;.unset($
7ccc0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a this->config[$property][$key]);.
7cce0 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 $pass.=.false;.}.}..return.$pass
7cd00 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 55 72 ;.}..private.function.validateUr
7cd20 6c 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 l($property,.$mandatory.=.false)
7cd40 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 .{.if.(!$this->validateString($p
7cd60 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 roperty,.$mandatory)).{.return.f
7cd80 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 alse;.}..if.(!$this->filterUrl($
7cda0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 this->config[$property])).{.$thi
7cdc0 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e s->warnings[].=.$property.'.:.in
7cde0 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 valid.value.('.$this->config[$pr
7ce00 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 operty].'),.must.be.an.http/http
7ce20 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f s.URL';.unset($this->config[$pro
7ce40 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 perty]);..return.false;.}..retur
7ce60 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 n.true;.}..private.function.filt
7ce80 65 72 55 72 6c 28 24 76 61 6c 75 65 2c 20 61 72 72 61 79 20 24 73 63 68 65 6d 65 73 20 3d 20 61 erUrl($value,.array.$schemes.=.a
7cea0 72 72 61 79 28 27 68 74 74 70 27 2c 20 27 68 74 74 70 73 27 29 29 0a 7b 0a 69 66 20 28 24 76 61 rray('http',.'https')).{.if.($va
7cec0 6c 75 65 20 3d 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 62 lue.===.'').{.return.true;.}..$b
7cee0 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 76 61 6c 75 65 29 3b 0a 69 66 20 28 65 6d 70 its.=.parse_url($value);.if.(emp
7cf00 74 79 28 24 62 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 79 28 24 62 69 ty($bits['scheme']).||.empty($bi
7cf20 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ts['host'])).{.return.false;.}..
7cf40 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 62 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 2c 20 24 if.(!in_array($bits['scheme'],.$
7cf60 73 63 68 65 6d 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a schemes,.true)).{.return.false;.
7cf80 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a }..return.true;.}.}.<?php.......
7cfa0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b .....namespace.Composer\Package;
7cfc0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 ..use.Composer\Json\JsonFile;.us
7cfe0 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f e.Composer\Installer\Installatio
7d000 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nManager;.use.Composer\Repositor
7d020 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 y\RepositoryManager;.use.Compose
7d040 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 r\Util\ProcessExecutor;.use.Comp
7d060 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 72 79 3b oser\Repository\ArrayRepository;
7d080 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 .use.Composer\Package\Dumper\Arr
7d0a0 61 79 44 75 6d 70 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c ayDumper;.use.Composer\Package\L
7d0c0 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 5c oader\ArrayLoader;.use.Composer\
7d0e0 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Util\Git.as.GitUtil;.use.Compose
7d100 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c r\IO\IOInterface;.use.Seld\JsonL
7d120 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 int\ParsingException;........cla
7d140 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 65 3b 0a 70 ss.Locker.{.private.$lockFile;.p
7d160 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 72 69 76 61 rivate.$repositoryManager;.priva
7d180 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 76 61 74 65 te.$installationManager;.private
7d1a0 20 24 68 61 73 68 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 65 6e 74 48 61 73 68 3b 0a 70 72 .$hash;.private.$contentHash;.pr
7d1c0 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 64 75 6d 70 65 72 3b 0a ivate.$loader;.private.$dumper;.
7d1e0 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 private.$process;.private.$lockD
7d200 61 74 61 43 61 63 68 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ataCache;...........public.funct
7d220 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,
7d240 20 4a 73 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d .JsonFile.$lockFile,.RepositoryM
7d260 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 49 6e 73 74 61 anager.$repositoryManager,.Insta
7d280 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 llationManager.$installationMana
7d2a0 67 65 72 2c 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 43 6f 6e 74 65 6e 74 73 29 0a 7b 0a 24 74 ger,.$composerFileContents).{.$t
7d2c0 68 69 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 his->lockFile.=.$lockFile;.$this
7d2e0 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 ->repositoryManager.=.$repositor
7d300 79 4d 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 yManager;.$this->installationMan
7d320 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 ager.=.$installationManager;.$th
7d340 69 73 2d 3e 68 61 73 68 20 3d 20 6d 64 35 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 43 6f 6e 74 is->hash.=.md5($composerFileCont
7d360 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 48 61 73 68 20 3d 20 73 65 6c 66 ents);.$this->contentHash.=.self
7d380 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 48 61 73 68 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 43 6f ::getContentHash($composerFileCo
7d3a0 6e 74 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 ntents);.$this->loader.=.new.Arr
7d3c0 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 69 73 2d 3e 64 75 6d ayLoader(null,.true);.$this->dum
7d3e0 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 24 74 68 69 73 2d 3e per.=.new.ArrayDumper();.$this->
7d400 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 process.=.new.ProcessExecutor($i
7d420 6f 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 o);.}.........public.static.func
7d440 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 48 61 73 68 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c tion.getContentHash($composerFil
7d460 65 43 6f 6e 74 65 6e 74 73 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 6a 73 6f 6e 5f 64 65 63 eContents).{.$content.=.json_dec
7d480 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 43 6f 6e 74 65 6e 74 73 2c 20 74 72 75 65 29 ode($composerFileContents,.true)
7d4a0 3b 0a 0a 24 72 65 6c 65 76 61 6e 74 4b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 ;..$relevantKeys.=.array(.'name'
7d4c0 2c 0a 27 76 65 72 73 69 6f 6e 27 2c 0a 27 72 65 71 75 69 72 65 27 2c 0a 27 72 65 71 75 69 72 65 ,.'version',.'require',.'require
7d4e0 2d 64 65 76 27 2c 0a 27 63 6f 6e 66 6c 69 63 74 27 2c 0a 27 72 65 70 6c 61 63 65 27 2c 0a 27 70 -dev',.'conflict',.'replace',.'p
7d500 72 6f 76 69 64 65 27 2c 0a 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 2c 0a 27 70 rovide',.'minimum-stability',.'p
7d520 72 65 66 65 72 2d 73 74 61 62 6c 65 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 27 refer-stable',.'repositories',.'
7d540 65 78 74 72 61 27 2c 0a 29 3b 0a 0a 24 72 65 6c 65 76 61 6e 74 43 6f 6e 74 65 6e 74 20 3d 20 61 extra',.);..$relevantContent.=.a
7d560 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 rray();..foreach.(array_intersec
7d580 74 28 24 72 65 6c 65 76 61 6e 74 4b 65 79 73 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 63 6f 6e t($relevantKeys,.array_keys($con
7d5a0 74 65 6e 74 29 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 24 72 65 6c 65 76 61 6e 74 43 6f 6e 74 65 tent)).as.$key).{.$relevantConte
7d5c0 6e 74 5b 24 6b 65 79 5d 20 3d 20 24 63 6f 6e 74 65 6e 74 5b 24 6b 65 79 5d 3b 0a 7d 0a 69 66 20 nt[$key].=.$content[$key];.}.if.
7d5e0 28 69 73 73 65 74 28 24 63 6f 6e 74 65 6e 74 5b 27 63 6f 6e 66 69 67 27 5d 5b 27 70 6c 61 74 66 (isset($content['config']['platf
7d600 6f 72 6d 27 5d 29 29 20 7b 0a 24 72 65 6c 65 76 61 6e 74 43 6f 6e 74 65 6e 74 5b 27 63 6f 6e 66 orm'])).{.$relevantContent['conf
7d620 69 67 27 5d 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3d 20 24 63 6f 6e 74 65 6e 74 5b 27 63 6f 6e ig']['platform'].=.$content['con
7d640 66 69 67 27 5d 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 3b 0a 7d 0a 0a 6b 73 6f 72 74 28 24 72 65 6c fig']['platform'];.}..ksort($rel
7d660 65 76 61 6e 74 43 6f 6e 74 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 6d 64 35 28 6a 73 6f 6e 5f evantContent);..return.md5(json_
7d680 65 6e 63 6f 64 65 28 24 72 65 6c 65 76 61 6e 74 43 6f 6e 74 65 6e 74 29 29 3b 0a 7d 0a 0a 0a 0a encode($relevantContent));.}....
7d6a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 6b 65 64 28 29 0a 7b 0a ...public.function.isLocked().{.
7d6c0 69 66 20 28 21 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 if.(!$this->lockFile->exists()).
7d6e0 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 {.return.false;.}..$data.=.$this
7d700 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 ->getLockData();..return.isset($
7d720 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 data['packages']);.}.......publi
7d740 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 46 72 65 73 68 28 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 24 c.function.isFresh().{.$lock.=.$
7d760 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 65 6d this->lockFile->read();..if.(!em
7d780 70 74 79 28 24 6c 6f 63 6b 5b 27 63 6f 6e 74 65 6e 74 2d 68 61 73 68 27 5d 29 29 20 7b 0a 0a 20 pty($lock['content-hash'])).{...
7d7a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 48 61 73 68 20 3d 3d 3d 20 24 6c return.$this->contentHash.===.$l
7d7c0 6f 63 6b 5b 27 63 6f 6e 74 65 6e 74 2d 68 61 73 68 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ock['content-hash'];.}..return.$
7d7e0 74 68 69 73 2d 3e 68 61 73 68 20 3d 3d 3d 20 24 6c 6f 63 6b 5b 27 68 61 73 68 27 5d 3b 0a 7d 0a this->hash.===.$lock['hash'];.}.
7d800 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 ........public.function.getLocke
7d820 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 dRepository($withDevReqs.=.false
7d840 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 ).{.$lockData.=.$this->getLockDa
7d860 74 61 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 ta();.$packages.=.new.ArrayRepos
7d880 69 74 6f 72 79 28 29 3b 0a 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 6c 6f 63 itory();..$lockedPackages.=.$loc
7d8a0 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 3b 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 kData['packages'];.if.($withDevR
7d8c0 65 71 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b eqs).{.if.(isset($lockData['pack
7d8e0 61 67 65 73 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d ages-dev'])).{.$lockedPackages.=
7d900 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 2c 20 24 6c .array_merge($lockedPackages,.$l
7d920 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 20 65 6c 73 65 ockData['packages-dev']);.}.else
7d940 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('
7d960 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 72 The.lock.file.does.not.contain.r
7d980 65 71 75 69 72 65 2d 64 65 76 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 72 75 6e 20 69 6e 73 74 equire-dev.information,.run.inst
7d9a0 61 6c 6c 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 20 6f 72 20 all.with.the.--no-dev.option.or.
7d9c0 72 75 6e 20 75 70 64 61 74 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 6f 73 65 20 70 61 63 6b run.update.to.install.those.pack
7d9e0 61 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 ages.');.}.}..if.(empty($lockedP
7da00 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a ackages)).{.return.$packages;.}.
7da20 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 5b 30 5d 5b 27 6e .if.(isset($lockedPackages[0]['n
7da40 61 6d 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 ame'])).{.foreach.($lockedPackag
7da60 65 73 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 2d 3e 61 64 64 50 61 63 es.as.$info).{.$packages->addPac
7da80 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 69 6e 66 6f 29 29 kage($this->loader->load($info))
7daa0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 74 68 72 6f 77 20 ;.}..return.$packages;.}..throw.
7dac0 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 72 20 63 6f 6d 70 new.\RuntimeException('Your.comp
7dae0 6f 73 65 72 2e 6c 6f 63 6b 20 77 61 73 20 63 72 65 61 74 65 64 20 62 65 66 6f 72 65 20 32 30 31 oser.lock.was.created.before.201
7db00 32 2d 30 39 2d 31 35 2c 20 61 6e 64 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 61 6e 2-09-15,.and.is.not.supported.an
7db20 79 6d 6f 72 65 2e 20 52 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 22 20 74 6f 20 ymore..Run."composer.update".to.
7db40 67 65 6e 65 72 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a generate.a.new.one.');.}........
7db60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 public.function.getPlatformRequi
7db80 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a rements($withDevReqs.=.false).{.
7dba0 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()
7dbc0 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 ;.$requirements.=.array();..if.(
7dbe0 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 29 20 7b !empty($lockData['platform'])).{
7dc00 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e .$requirements.=.$this->loader->
7dc20 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 2e 30 2e 30 27 2c parseLinks(.'__ROOT__',.'1.0.0',
7dc40 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 74 61 5b 27 70 6c .'requires',.isset($lockData['pl
7dc60 61 74 66 6f 72 6d 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 atform']).?.$lockData['platform'
7dc80 5d 20 3a 20 61 72 72 61 79 28 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 ].:.array().);.}..if.($withDevRe
7dca0 71 73 20 26 26 20 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d qs.&&.!empty($lockData['platform
7dcc0 2d 64 65 76 27 5d 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 -dev'])).{.$devRequirements.=.$t
7dce0 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 5f 5f 52 4f 4f 54 his->loader->parseLinks(.'__ROOT
7dd00 5f 5f 27 2c 0a 27 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 2c 0a 69 73 73 65 74 28 __',.'1.0.0',.'requires',.isset(
7dd20 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 20 3f 20 24 6c 6f $lockData['platform-dev']).?.$lo
7dd40 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3a 20 61 72 72 61 79 28 29 ckData['platform-dev'].:.array()
7dd60 0a 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 .);..$requirements.=.array_merge
7dd80 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 ($requirements,.$devRequirements
7dda0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 3b 0a 7d 0a 0a 70 );.}..return.$requirements;.}..p
7ddc0 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 69 6c 69 ublic.function.getMinimumStabili
7dde0 74 79 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 ty().{.$lockData.=.$this->getLoc
7de00 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 kData();..return.isset($lockData
7de20 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 ['minimum-stability']).?.$lockDa
7de40 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3a 20 27 73 74 61 62 6c ta['minimum-stability'].:.'stabl
7de60 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c e';.}..public.function.getStabil
7de80 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e ityFlags().{.$lockData.=.$this->
7dea0 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f getLockData();..return.isset($lo
7dec0 63 6b 44 61 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 20 3f 20 24 6c 6f ckData['stability-flags']).?.$lo
7dee0 63 6b 44 61 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 3a 20 61 72 72 61 ckData['stability-flags'].:.arra
7df00 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 y();.}..public.function.getPrefe
7df20 72 53 74 61 62 6c 65 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 rStable().{.$lockData.=.$this->g
7df40 65 74 4c 6f 63 6b 44 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 etLockData();......return.isset(
7df60 24 6c 6f 63 6b 44 61 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 $lockData['prefer-stable']).?.$l
7df80 6f 63 6b 44 61 74 61 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 ockData['prefer-stable'].:.null;
7dfa0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 4c 6f 77 .}..public.function.getPreferLow
7dfc0 65 73 74 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 est().{.$lockData.=.$this->getLo
7dfe0 63 6b 44 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 ckData();......return.isset($loc
7e000 6b 44 61 74 61 5b 27 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 kData['prefer-lowest']).?.$lockD
7e020 61 74 61 5b 27 70 72 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 ata['prefer-lowest'].:.null;.}..
7e040 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 4f 76 65 72 72 public.function.getPlatformOverr
7e060 69 64 65 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 ides().{.$lockData.=.$this->getL
7e080 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 ockData();..return.isset($lockDa
7e0a0 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 6f 76 65 72 72 69 64 65 73 27 5d 29 20 3f 20 24 6c 6f 63 ta['platform-overrides']).?.$loc
7e0c0 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 6f 76 65 72 72 69 64 65 73 27 5d 20 3a 20 61 72 kData['platform-overrides'].:.ar
7e0e0 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 ray();.}..public.function.getAli
7e100 61 73 65 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 ases().{.$lockData.=.$this->getL
7e120 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 ockData();..return.isset($lockDa
7e140 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 ta['aliases']).?.$lockData['alia
7e160 73 65 73 27 5d 20 3a 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 ses'].:.array();.}..public.funct
7e180 69 6f 6e 20 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d ion.getLockData().{.if.(null.!==
7e1a0 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 .$this->lockDataCache).{.return.
7e1c0 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 $this->lockDataCache;.}..if.(!$t
7e1e0 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 74 68 72 6f 77 his->lockFile->exists()).{.throw
7e200 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c .new.\LogicException('No.lockfil
7e220 65 20 66 6f 75 6e 64 2e 20 55 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 e.found..Unable.to.read.locked.p
7e240 61 63 6b 61 67 65 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b ackages');.}..return.$this->lock
7e260 44 61 74 61 43 61 63 68 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 DataCache.=.$this->lockFile->rea
7e280 64 28 29 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 d();.}..................public.f
7e2a0 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 44 61 74 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 unction.setLockData(array.$packa
7e2c0 67 65 73 2c 20 24 64 65 76 50 61 63 6b 61 67 65 73 2c 20 61 72 72 61 79 20 24 70 6c 61 74 66 6f ges,.$devPackages,.array.$platfo
7e2e0 72 6d 52 65 71 73 2c 20 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 2c 20 61 72 72 61 79 20 rmReqs,.$platformDevReqs,.array.
7e300 24 61 6c 69 61 73 65 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 20 61 72 72 $aliases,.$minimumStability,.arr
7e320 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 70 72 65 66 65 72 53 74 61 62 6c ay.$stabilityFlags,.$preferStabl
7e340 65 2c 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 2c 20 61 72 72 61 79 20 24 70 6c 61 74 66 6f 72 e,.$preferLowest,.array.$platfor
7e360 6d 4f 76 65 72 72 69 64 65 73 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 5f 72 mOverrides).{.$lock.=.array(.'_r
7e380 65 61 64 6d 65 27 20 3d 3e 20 61 72 72 61 79 28 27 54 68 69 73 20 66 69 6c 65 20 6c 6f 63 6b 73 eadme'.=>.array('This.file.locks
7e3a0 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 .the.dependencies.of.your.projec
7e3c0 74 20 74 6f 20 61 20 6b 6e 6f 77 6e 20 73 74 61 74 65 27 2c 0a 27 52 65 61 64 20 6d 6f 72 65 20 t.to.a.known.state',.'Read.more.
7e3e0 61 62 6f 75 74 20 69 74 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e about.it.at.https://getcomposer.
7e400 6f 72 67 2f 64 6f 63 2f 30 31 2d 62 61 73 69 63 2d 75 73 61 67 65 2e 6d 64 23 63 6f 6d 70 6f 73 org/doc/01-basic-usage.md#compos
7e420 65 72 2d 6c 6f 63 6b 2d 74 68 65 2d 6c 6f 63 6b 2d 66 69 6c 65 27 2c 0a 27 54 68 69 73 20 66 69 er-lock-the-lock-file',.'This.fi
7e440 6c 65 20 69 73 20 40 67 65 6e 65 72 27 2e 27 61 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c le.is.@gener'.'ated.automaticall
7e460 79 27 2c 20 29 2c 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d 3e 68 61 73 68 2c 0a 27 63 y',.),.'hash'.=>.$this->hash,.'c
7e480 6f 6e 74 65 6e 74 2d 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 48 61 ontent-hash'.=>.$this->contentHa
7e4a0 73 68 2c 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 61 63 6b 61 67 65 sh,.'packages'.=>.null,.'package
7e4c0 73 2d 64 65 76 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e 20 61 72 72 s-dev'.=>.null,.'aliases'.=>.arr
7e4e0 61 79 28 29 2c 0a 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 20 3d 3e 20 24 6d 69 ay(),.'minimum-stability'.=>.$mi
7e500 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 0a 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 nimumStability,.'stability-flags
7e520 27 20 3d 3e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 0a 27 70 72 65 66 65 72 2d 73 74 '.=>.$stabilityFlags,.'prefer-st
7e540 61 62 6c 65 27 20 3d 3e 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 2c 0a 27 70 72 65 66 65 72 2d able'.=>.$preferStable,.'prefer-
7e560 6c 6f 77 65 73 74 27 20 3d 3e 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 2c 0a 29 3b 0a 0a 66 6f lowest'.=>.$preferLowest,.);..fo
7e580 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 reach.($aliases.as.$package.=>.$
7e5a0 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 versions).{.foreach.($versions.a
7e5c0 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 61 s.$version.=>.$alias).{.$lock['a
7e5e0 6c 69 61 73 65 73 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 liases'][].=.array(.'alias'.=>.$
7e600 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 alias['alias'],.'alias_normalize
7e620 64 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d d'.=>.$alias['alias_normalized']
7e640 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 70 61 63 6b 61 67 ,.'version'.=>.$version,.'packag
7e660 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 e'.=>.$package,.);.}.}..$lock['p
7e680 61 63 6b 61 67 65 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 ackages'].=.$this->lockPackages(
7e6a0 24 70 61 63 6b 61 67 65 73 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 76 50 61 63 $packages);.if.(null.!==.$devPac
7e6c0 6b 61 67 65 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 20 3d kages).{.$lock['packages-dev'].=
7e6e0 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 64 65 76 50 61 63 6b 61 67 65 .$this->lockPackages($devPackage
7e700 73 29 3b 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3d 20 24 70 6c 61 74 s);.}..$lock['platform'].=.$plat
7e720 66 6f 72 6d 52 65 71 73 3b 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 formReqs;.$lock['platform-dev'].
7e740 3d 20 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 3b 0a 69 66 20 28 24 70 6c 61 74 66 6f 72 =.$platformDevReqs;.if.($platfor
7e760 6d 4f 76 65 72 72 69 64 65 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 2d 6f 76 mOverrides).{.$lock['platform-ov
7e780 65 72 72 69 64 65 73 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 4f 76 65 72 72 69 64 65 73 3b 0a errides'].=.$platformOverrides;.
7e7a0 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 }..if.(empty($lock['packages']).
7e7c0 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 20 &&.empty($lock['packages-dev']).
7e7e0 26 26 20 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 &&.empty($lock['platform']).&&.e
7e800 6d 70 74 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 mpty($lock['platform-dev'])).{.i
7e820 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a f.($this->lockFile->exists()).{.
7e840 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 unlink($this->lockFile->getPath(
7e860 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 69 ));.}..return.false;.}..try.{.$i
7e880 73 4c 6f 63 6b 65 64 20 3d 20 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 3b 0a 7d 20 63 sLocked.=.$this->isLocked();.}.c
7e8a0 61 74 63 68 20 28 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 69 73 atch.(ParsingException.$e).{.$is
7e8c0 4c 6f 63 6b 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 21 24 69 73 4c 6f 63 6b 65 64 Locked.=.false;.}.if.(!$isLocked
7e8e0 20 7c 7c 20 24 6c 6f 63 6b 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 .||.$lock.!==.$this->getLockData
7e900 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 28 24 6c 6f ()).{.$this->lockFile->write($lo
7e920 63 6b 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 6e 75 6c 6c ck);.$this->lockDataCache.=.null
7e940 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ;..return.true;.}..return.false;
7e960 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 50 61 63 6b 61 67 65 .}..private.function.lockPackage
7e980 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 20 3d 20 61 s(array.$packages).{.$locked.=.a
7e9a0 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 rray();..foreach.($packages.as.$
7e9c0 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 61 6e 63 65 package).{.if.($package.instance
7e9e0 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 0a 7d 0a 0a of.AliasPackage).{.continue;.}..
7ea00 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 $name.=.$package->getPrettyName(
7ea20 29 3b 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 50 72 65 74 74 );.$version.=.$package->getPrett
7ea40 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 7c 7c 20 21 24 76 65 72 yVersion();..if.(!$name.||.!$ver
7ea60 73 69 6f 6e 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 sion).{.throw.new.\LogicExceptio
7ea80 6e 28 73 70 72 69 6e 74 66 28 0a 27 50 61 63 6b 61 67 65 20 22 25 73 22 20 68 61 73 20 6e 6f 20 n(sprintf(.'Package."%s".has.no.
7eaa0 76 65 72 73 69 6f 6e 20 6f 72 20 6e 61 6d 65 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 6c version.or.name.and.can.not.be.l
7eac0 6f 63 6b 65 64 27 2c 20 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 ocked',.$package.));.}..$spec.=.
7eae0 24 74 68 69 73 2d 3e 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 75 $this->dumper->dump($package);.u
7eb00 6e 73 65 74 28 24 73 70 65 63 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d nset($spec['version_normalized']
7eb20 29 3b 0a 0a 0a 20 24 74 69 6d 65 20 3d 20 69 73 73 65 74 28 24 73 70 65 63 5b 27 74 69 6d 65 27 );....$time.=.isset($spec['time'
7eb40 5d 29 20 3f 20 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 75 6e 73 65 74 ]).?.$spec['time'].:.null;.unset
7eb60 28 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 ($spec['time']);.if.($package->i
7eb80 73 44 65 76 28 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 sDev().&&.$package->getInstallat
7eba0 69 6f 6e 53 6f 75 72 63 65 28 29 20 3d 3d 3d 20 27 73 6f 75 72 63 65 27 29 20 7b 0a 0a 20 24 74 ionSource().===.'source').{...$t
7ebc0 69 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 54 69 6d 65 28 24 70 61 63 ime.=.$this->getPackageTime($pac
7ebe0 6b 61 67 65 29 20 3f 3a 20 24 74 69 6d 65 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 kage).?:.$time;.}.if.(null.!==.$
7ec00 74 69 6d 65 29 20 7b 0a 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3d 20 24 74 69 6d 65 3b 0a 7d time).{.$spec['time'].=.$time;.}
7ec20 0a 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 ..unset($spec['installation-sour
7ec40 63 65 27 5d 29 3b 0a 0a 24 6c 6f 63 6b 65 64 5b 5d 20 3d 20 24 73 70 65 63 3b 0a 7d 0a 0a 75 73 ce']);..$locked[].=.$spec;.}..us
7ec60 6f 72 74 28 24 6c 6f 63 6b 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b ort($locked,.function.($a,.$b).{
7ec80 0a 24 63 6f 6d 70 61 72 69 73 6f 6e 20 3d 20 73 74 72 63 6d 70 28 24 61 5b 27 6e 61 6d 65 27 5d .$comparison.=.strcmp($a['name']
7eca0 2c 20 24 62 5b 27 6e 61 6d 65 27 5d 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 ,.$b['name']);..if.(0.!==.$compa
7ecc0 72 69 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a rison).{.return.$comparison;.}..
7ece0 0a 20 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 ..return.strcmp($a['version'],.$
7ed00 62 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 63 6b b['version']);.});..return.$lock
7ed20 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 ed;.}........private.function.ge
7ed40 74 50 61 63 6b 61 67 65 54 69 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 tPackageTime(PackageInterface.$p
7ed60 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 ackage).{.if.(!function_exists('
7ed80 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 proc_open')).{.return.null;.}..$
7eda0 70 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 path.=.realpath($this->installat
7edc0 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b ionManager->getInstallPath($pack
7ede0 61 67 65 29 29 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 age));.$sourceType.=.$package->g
7ee00 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 75 6c 6c etSourceType();.$datetime.=.null
7ee20 3b 0a 0a 69 66 20 28 24 70 61 74 68 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 73 6f 75 72 63 65 ;..if.($path.&&.in_array($source
7ee40 54 79 70 65 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 73 6f Type,.array('git',.'hg'))).{.$so
7ee60 75 72 63 65 52 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 urceRef.=.$package->getSourceRef
7ee80 65 72 65 6e 63 65 28 29 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 erence().?:.$package->getDistRef
7eea0 65 72 65 6e 63 65 28 29 3b 0a 73 77 69 74 63 68 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b erence();.switch.($sourceType).{
7eec0 0a 63 61 73 65 20 27 67 69 74 27 3a 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 .case.'git':.GitUtil::cleanEnv()
7eee0 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 ;..if.(0.===.$this->process->exe
7ef00 63 75 74 65 28 27 67 69 74 20 6c 6f 67 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 63 74 20 27 cute('git.log.-n1.--pretty=%ct.'
7ef20 2e 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 73 6f 75 72 63 65 .ProcessExecutor::escape($source
7ef40 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 Ref),.$output,.$path).&&.preg_ma
7ef60 74 63 68 28 27 7b 5e 5c 73 2a 5c 64 2b 5c 73 2a 24 7d 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b tch('{^\s*\d+\s*$}',.$output)).{
7ef80 0a 24 64 61 74 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 74 .$datetime.=.new.\DateTime('@'.t
7efa0 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 6d 65 5a 6f 6e 65 28 rim($output),.new.\DateTimeZone(
7efc0 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 67 27 3a 0a 69 66 'UTC'));.}.break;..case.'hg':.if
7efe0 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(
7f000 27 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 68 67 64 61 74 65 'hg.log.--template."{date|hgdate
7f020 7d 22 20 2d 72 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 65 28 }".-r.'.ProcessExecutor::escape(
7f040 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 20 26 26 20 $sourceRef),.$output,.$path).&&.
7f060 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 64 2b 29 5c 73 2a 7d 27 2c 20 24 6f 75 preg_match('{^\s*(\d+)\s*}',.$ou
7f080 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 65 77 tput,.$match)).{.$datetime.=.new
7f0a0 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 77 20 5c 44 .\DateTime('@'.$match[1],.new.\D
7f0c0 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a ateTimeZone('UTC'));.}.break;.}.
7f0e0 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 65 74 69 6d 65 20 3f 20 24 64 61 74 65 74 69 6d 65 2d }..return.$datetime.?.$datetime-
7f100 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 20 3a 20 6e 75 6c 6c 3b 0a 7d >format('Y-m-d.H:i:s').:.null;.}
7f120 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
7f140 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 53 65 mposer\Package;..use.Composer\Se
7f160 6d 76 65 72 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 mver\VersionParser;.use.Composer
7f180 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 0a 0a 0a 63 6c 61 73 \Util\ComposerMirror;.......clas
7f1a0 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 6b 61 67 65 0a 7b 0a s.Package.extends.BasePackage.{.
7f1c0 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 74 61 72 67 protected.$type;.protected.$targ
7f1e0 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 61 74 69 6f 6e 53 6f etDir;.protected.$installationSo
7f200 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 70 65 3b 0a 70 72 6f urce;.protected.$sourceType;.pro
7f220 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 74 65 64 20 24 73 6f tected.$sourceUrl;.protected.$so
7f240 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 24 73 6f 75 72 63 65 urceReference;.protected.$source
7f260 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 79 70 65 3b 0a 70 72 Mirrors;.protected.$distType;.pr
7f280 6f 74 65 63 74 65 64 20 24 64 69 73 74 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 otected.$distUrl;.protected.$dis
7f2a0 74 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 53 68 61 31 43 tReference;.protected.$distSha1C
7f2c0 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 69 72 72 6f 72 73 3b hecksum;.protected.$distMirrors;
7f2e0 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .protected.$version;.protected.$
7f300 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6c 65 61 73 prettyVersion;.protected.$releas
7f320 65 44 61 74 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 20 3d 20 61 72 72 61 79 28 eDate;.protected.$extra.=.array(
7f340 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 );.protected.$binaries.=.array()
7f360 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 65 64 20 24 73 74 61 ;.protected.$dev;.protected.$sta
7f380 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 63 61 74 69 6f 6e 55 bility;.protected.$notificationU
7f3a0 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 3d 20 61 72 72 61 79 rl;..protected.$requires.=.array
7f3c0 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 3d 20 61 72 72 61 79 ();.protected.$conflicts.=.array
7f3e0 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 20 61 72 72 61 79 28 ();.protected.$provides.=.array(
7f400 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 61 72 72 61 79 28 29 );.protected.$replaces.=.array()
7f420 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 3d 20 61 72 72 61 79 ;.protected.$devRequires.=.array
7f440 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 20 61 72 72 61 79 28 ();.protected.$suggests.=.array(
7f460 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 61 72 72 61 79 28 29 );.protected.$autoload.=.array()
7f480 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 3d 20 61 72 72 61 79 ;.protected.$devAutoload.=.array
7f4a0 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 68 73 20 3d 20 61 72 ();.protected.$includePaths.=.ar
7f4c0 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 45 78 63 6c 75 64 65 ray();.protected.$archiveExclude
7f4e0 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 6e 63 s.=.array();.........public.func
7f500 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e tion.__construct($name,.$version
7f520 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ,.$prettyVersion).{.parent::__co
7f540 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 nstruct($name);..$this->version.
7f560 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e =.$version;.$this->prettyVersion
7f580 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 .=.$prettyVersion;..$this->stabi
7f5a0 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 lity.=.VersionParser::parseStabi
7f5c0 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 lity($version);.$this->dev.=.$th
7f5e0 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 7d 0a 0a 0a 0a 0a 70 is->stability.===.'dev';.}.....p
7f600 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ublic.function.isDev().{.return.
7f620 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $this->dev;.}.....public.functio
7f640 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d n.setType($type).{.$this->type.=
7f660 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 .$type;.}.....public.function.ge
7f680 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 20 3f 3a 20 tType().{.return.$this->type.?:.
7f6a0 27 6c 69 62 72 61 72 79 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 'library';.}.....public.function
7f6c0 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 2d 3e .getStability().{.return.$this->
7f6e0 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 6f 6e stability;.}.....public.function
7f700 20 73 65 74 54 61 72 67 65 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 74 68 69 .setTargetDir($targetDir).{.$thi
7f720 73 2d 3e 74 61 72 67 65 74 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 72 3b 0a 7d 0a 0a 0a 0a s->targetDir.=.$targetDir;.}....
7f740 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 0a .public.function.getTargetDir().
7f760 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 67 65 74 44 69 72 29 {.if.(null.===.$this->targetDir)
7f780 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 6d 28 70 72 65 67 5f .{.return;.}..return.ltrim(preg_
7f7a0 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 20 5c 2e 5c 2e 3f 20 replace('{.(?:^|[\\\\/]+).\.\.?.
7f7c0 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 3f 3a 5b 5c 5c 5c 5c (?:[\\\\/]+|$).(?:\.\.?.(?:[\\\\
7f7e0 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 3e 74 61 72 67 65 74 /]+|$).)*}x',.'/',.$this->target
7f800 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 66 75 6e 63 74 69 6f Dir),.'/');.}.....public.functio
7f820 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 7b 0a 24 74 68 69 73 n.setExtra(array.$extra).{.$this
7f840 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 75 62 6c 69 63 20 66 ->extra.=.$extra;.}.....public.f
7f860 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 72 6e 20 24 74 68 69 unction.getExtra().{.return.$thi
7f880 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 6e 63 74 69 6f 6e 20 s->extra;.}.....public.function.
7f8a0 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 65 73 29 0a 7b 0a 24 setBinaries(array.$binaries).{.$
7f8c0 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 73 3b 0a 7d 0a 0a 0a this->binaries.=.$binaries;.}...
7f8e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a ..public.function.getBinaries().
7f900 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 0a 7d 0a 0a 0a 0a 0a {.return.$this->binaries;.}.....
7f920 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 public.function.setInstallationS
7f940 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 ource($type).{.$this->installati
7f960 6f 6e 53 6f 75 72 63 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 onSource.=.$type;.}.....public.f
7f980 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a unction.getInstallationSource().
7f9a0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 {.return.$this->installationSour
7f9c0 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 73 65 74 53 6f 75 ce;.}.....public.function.setSou
7f9e0 72 63 65 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 79 rceType($type).{.$this->sourceTy
7fa00 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f pe.=.$type;.}.....public.functio
7fa20 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 n.getSourceType().{.return.$this
7fa40 2d 3e 73 6f 75 72 63 65 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ->sourceType;.}.....public.funct
7fa60 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e ion.setSourceUrl($url).{.$this->
7fa80 73 6f 75 72 63 65 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 sourceUrl.=.$url;.}.....public.f
7faa0 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.getSourceUrl().{.return.
7fac0 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $this->sourceUrl;.}.....public.f
7fae0 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 24 72 65 66 65 unction.setSourceReference($refe
7fb00 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 20 rence).{.$this->sourceReference.
7fb20 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 74 =.$reference;.}.....public.funct
7fb40 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 ion.getSourceReference().{.retur
7fb60 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a n.$this->sourceReference;.}.....
7fb80 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 4d 69 72 72 6f 72 73 public.function.setSourceMirrors
7fba0 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 65 4d 69 72 72 6f 72 ($mirrors).{.$this->sourceMirror
7fbc0 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 63 20 66 75 6e 63 74 s.=.$mirrors;.}.....public.funct
7fbe0 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 72 65 74 75 72 6e 20 ion.getSourceMirrors().{.return.
7fc00 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 0a 0a 0a 70 75 62 6c $this->sourceMirrors;.}.....publ
7fc20 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 28 29 0a 7b 0a 72 65 ic.function.getSourceUrls().{.re
7fc40 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 73 6f 75 72 63 turn.$this->getUrls($this->sourc
7fc60 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 73 2c 20 24 74 68 69 eUrl,.$this->sourceMirrors,.$thi
7fc80 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 2d 3e 73 6f 75 72 63 s->sourceReference,.$this->sourc
7fca0 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 75 62 6c 69 63 20 66 eType,.'source');.}.....public.f
7fcc0 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 unction.setDistType($type).{.$th
7fce0 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c is->distType.=.$type;.}.....publ
7fd00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 ic.function.getDistType().{.retu
7fd20 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->distType;.}.....public
7fd40 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 .function.setDistUrl($url).{.$th
7fd60 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 is->distUrl.=.$url;.}.....public
7fd80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getDistUrl().{.return.
7fda0 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->distUrl;.}.....public.fun
7fdc0 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 ction.setDistReference($referenc
7fde0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 20 3d 20 24 72 65 66 e).{.$this->distReference.=.$ref
7fe00 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 erence;.}.....public.function.ge
7fe20 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tDistReference().{.return.$this-
7fe40 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >distReference;.}.....public.fun
7fe60 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 24 73 68 61 31 63 ction.setDistSha1Checksum($sha1c
7fe80 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 hecksum).{.$this->distSha1Checks
7fea0 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 um.=.$sha1checksum;.}.....public
7fec0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a .function.getDistSha1Checksum().
7fee0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d {.return.$this->distSha1Checksum
7ff00 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 4d ;.}.....public.function.setDistM
7ff20 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 64 69 73 74 4d 69 irrors($mirrors).{.$this->distMi
7ff40 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 63 20 66 rrors.=.$mirrors;.}.....public.f
7ff60 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 7b 0a 72 65 74 75 72 unction.getDistMirrors().{.retur
7ff80 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 0a 0a 0a 70 75 62 6c n.$this->distMirrors;.}.....publ
7ffa0 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 0a 7b 0a 72 65 74 75 ic.function.getDistUrls().{.retu
7ffc0 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 64 69 73 74 55 72 6c rn.$this->getUrls($this->distUrl
7ffe0 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 69 73 2d 3e 64 69 73 ,.$this->distMirrors,.$this->dis
80000 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 70 65 2c 20 27 64 69 tReference,.$this->distType,.'di
80020 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 6f 6e 20 67 65 74 56 st');.}.....public.function.getV
80040 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e ersion().{.return.$this->version
80060 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 ;.}.....public.function.getPrett
80080 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 yVersion().{.return.$this->prett
800a0 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f yVersion;.}.......public.functio
800c0 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 65 20 24 72 65 6c 65 n.setReleaseDate(\DateTime.$rele
800e0 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 44 61 74 65 20 3d 20 aseDate).{.$this->releaseDate.=.
80100 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 63 20 66 75 6e 63 74 $releaseDate;.}.....public.funct
80120 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 74 ion.getReleaseDate().{.return.$t
80140 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 0a 70 75 62 6c 69 63 his->releaseDate;.}.......public
80160 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
80180 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 3d 20 24 72 65 71 75 uires).{.$this->requires.=.$requ
801a0 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 52 ires;.}.....public.function.getR
801c0 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 69 72 equires().{.return.$this->requir
801e0 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 65 74 43 es;.}.......public.function.setC
80200 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 29 0a 7b 0a 24 74 68 onflicts(array.$conflicts).{.$th
80220 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 73 3b 0a 7d 0a 0a 0a is->conflicts.=.$conflicts;.}...
80240 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 28 29 ..public.function.getConflicts()
80260 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a 0a 0a .{.return.$this->conflicts;.}...
80280 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 6f 76 69 64 65 73 28 ....public.function.setProvides(
802a0 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 3e 70 72 6f 76 69 64 array.$provides).{.$this->provid
802c0 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 6c 69 63 20 66 75 6e es.=.$provides;.}.....public.fun
802e0 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 75 72 6e 20 24 74 68 ction.getProvides().{.return.$th
80300 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 6c 69 63 20 66 75 6e is->provides;.}.......public.fun
80320 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 72 65 70 6c 61 63 65 ction.setReplaces(array.$replace
80340 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 65 70 6c 61 63 65 73 s).{.$this->replaces.=.$replaces
80360 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 6c 61 ;.}.....public.function.getRepla
80380 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 3b 0a ces().{.return.$this->replaces;.
803a0 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 76 52 65 }.......public.function.setDevRe
803c0 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 29 0a 7b 0a 24 74 68 quires(array.$devRequires).{.$th
803e0 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 75 69 72 65 73 3b 0a is->devRequires.=.$devRequires;.
80400 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 71 75 }.....public.function.getDevRequ
80420 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 69 72 ires().{.return.$this->devRequir
80440 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 65 74 53 es;.}.......public.function.setS
80460 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 7b 0a 24 74 68 69 73 uggests(array.$suggests).{.$this
80480 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 0a 0a 0a 0a 0a 70 75 ->suggests.=.$suggests;.}.....pu
804a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b 0a 72 65 blic.function.getSuggests().{.re
804c0 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 0a 0a 0a 0a 0a 70 75 turn.$this->suggests;.}.......pu
804e0 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 28 61 72 72 61 79 20 blic.function.setAutoload(array.
80500 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 6f 61 64 20 3d 20 24 $autoload).{.$this->autoload.=.$
80520 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 6e 63 74 69 6f 6e 20 autoload;.}.....public.function.
80540 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 68 69 73 2d 3e 61 75 getAutoload().{.return.$this->au
80560 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 6e 63 74 69 6f 6e 20 toload;.}.......public.function.
80580 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 41 75 74 6f 6c 6f 61 setDevAutoload(array.$devAutoloa
805a0 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 20 24 64 65 76 41 75 d).{.$this->devAutoload.=.$devAu
805c0 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 74 69 6f 6e 20 67 65 toload;.}.....public.function.ge
805e0 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 74 68 69 73 2d 3e 64 tDevAutoload().{.return.$this->d
80600 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 63 20 66 75 6e 63 74 evAutoload;.}.......public.funct
80620 69 6f 6e 20 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 20 24 69 6e 63 6c 75 ion.setIncludePaths(array.$inclu
80640 64 65 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d dePaths).{.$this->includePaths.=
80660 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$includePaths;.}.....public.fun
80680 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e ction.getIncludePaths().{.return
806a0 20 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 .$this->includePaths;.}.......pu
806c0 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 74 69 6f 6e 55 72 6c blic.function.setNotificationUrl
806e0 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 73 2d 3e 6e 6f 74 69 ($notificationUrl).{.$this->noti
80700 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 6f 6e 55 72 6c 3b 0a ficationUrl.=.$notificationUrl;.
80720 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 6f 74 69 66 69 63 }.....public.function.getNotific
80740 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 2d 3e 6e 6f 74 69 66 ationUrl().{.return.$this->notif
80760 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 63 20 66 75 6e 63 74 icationUrl;.}.......public.funct
80780 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 72 61 79 20 24 65 78 ion.setArchiveExcludes(array.$ex
807a0 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 78 63 6c 75 64 65 73 cludes).{.$this->archiveExcludes
807c0 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 63 20 66 75 6e 63 74 .=.$excludes;.}.....public.funct
807e0 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 7b 0a 72 65 74 75 72 ion.getArchiveExcludes().{.retur
80800 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 0a 7d 0a 0a 0a 0a 0a n.$this->archiveExcludes;.}.....
80820 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 63 65 56 65 72 73 69 ....public.function.replaceVersi
80840 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 6f 6e 29 0a 7b 0a 24 on($version,.$prettyVersion).{.$
80860 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d this->version.=.$version;.$this-
80880 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b >prettyVersion.=.$prettyVersion;
808a0 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 69 6f 6e 50 61 72 73 ..$this->stability.=.VersionPars
808c0 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 6f 6e 29 3b 0a 24 74 er::parseStability($version);.$t
808e0 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 74 79 20 3d 3d 3d 20 his->dev.=.$this->stability.===.
80900 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 69 6f 6e 20 67 65 74 'dev';.}..protected.function.get
80920 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 2c 20 24 74 79 70 65 Urls($url,.$mirrors,.$ref,.$type
80940 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 7b 0a 72 65 74 75 72 ,.$urlType).{.if.(!$url).{.retur
80960 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 79 28 24 75 72 6c 29 n.array();.}.$urls.=.array($url)
80980 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 20 28 24 6d 69 72 72 ;.if.($mirrors).{.foreach.($mirr
809a0 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 6c 54 79 70 65 20 3d ors.as.$mirror).{.if.($urlType.=
809c0 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 20 43 6f 6d 70 6f 73 ==.'dist').{.$mirrorUrl.=.Compos
809e0 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 72 6f 72 5b 27 75 72 erMirror::processUrl($mirror['ur
80a00 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 76 65 72 73 69 6f 6e l'],.$this->name,.$this->version
80a20 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 28 24 75 72 6c 54 79 ,.$ref,.$type);.}.elseif.($urlTy
80a40 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 3d 3d 3d 20 27 67 69 pe.===.'source'.&&.$type.===.'gi
80a60 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 65 72 4d 69 72 72 6f t').{.$mirrorUrl.=.ComposerMirro
80a80 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 27 75 72 6c 27 5d 2c r::processGitUrl($mirror['url'],
80aa0 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 29 3b 0a 7d 20 65 6c .$this->name,.$url,.$type);.}.el
80ac0 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 65 27 20 26 26 20 24 seif.($urlType.===.'source'.&&.$
80ae0 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 72 6c 20 3d 20 43 6f type.===.'hg').{.$mirrorUrl.=.Co
80b00 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 6c 28 24 6d 69 72 72 mposerMirror::processHgUrl($mirr
80b20 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 75 72 6c 2c 20 24 74 or['url'],.$this->name,.$url,.$t
80b40 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 72 72 6f 72 55 72 6c ype);.}.if.(!in_array($mirrorUrl
80b60 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 6f 72 5b 27 70 72 65 ,.$urls)).{.$func.=.$mirror['pre
80b80 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 27 20 3a 20 27 61 72 ferred'].?.'array_unshift'.:.'ar
80ba0 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 6d 69 72 72 6f 72 55 ray_push';.$func($urls,.$mirrorU
80bc0 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 0a 7d 0a 7d 0a 3c 3f rl);.}.}.}..return.$urls;.}.}.<?
80be0 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
80c00 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 52 65 70 6f 73 69 74 r\Package;..use.Composer\Reposit
80c20 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 ory\RepositoryInterface;.......i
80c40 6e 74 65 72 66 61 63 65 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a nterface.PackageInterface.{.....
80c60 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 0a 0a 0a 0a .public.function.getName();.....
80c80 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 4e 61 6d 65 28 ..public.function.getPrettyName(
80ca0 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 67 65 74 4e );..........public.function.getN
80cc0 61 6d 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 73 65 ames();.......public.function.se
80ce0 74 49 64 28 24 69 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tId($id);.......public.function.
80d00 67 65 74 49 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 69 getId();.......public.function.i
80d20 73 44 65 76 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 sDev();.......public.function.ge
80d40 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 6e 20 67 tType();.......public.function.g
80d60 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etTargetDir();.......public.func
80d80 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tion.getExtra();.......public.fu
80da0 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 nction.setInstallationSource($ty
80dc0 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e pe);.......public.function.getIn
80de0 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 stallationSource();.......public
80e00 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a .function.getSourceType();......
80e20 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 28 29 3b .public.function.getSourceUrl();
80e40 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 .......public.function.getSource
80e60 55 72 6c 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 Urls();.......public.function.ge
80e80 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 tSourceReference();.......public
80ea0 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 3b 0a 0a 0a .function.getSourceMirrors();...
80ec0 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 54 79 70 65 28 ....public.function.getDistType(
80ee0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 );.......public.function.getDist
80f00 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 Url();.......public.function.get
80f20 44 69 73 74 55 72 6c 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 DistUrls();.......public.functio
80f40 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c n.getDistReference();.......publ
80f60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 ic.function.getDistSha1Checksum(
80f80 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 );.......public.function.getDist
80fa0 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 69 6f 6e Mirrors();.......public.function
80fc0 20 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .getVersion();.......public.func
80fe0 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a tion.getPrettyVersion();........
81000 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 75 6c 6c 50 72 65 74 74 79 56 ..public.function.getFullPrettyV
81020 65 72 73 69 6f 6e 28 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a ersion($truncate.=.true);.......
81040 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 public.function.getReleaseDate()
81060 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 ;.......public.function.getStabi
81080 6c 69 74 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 67 lity();........public.function.g
810a0 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etRequires();........public.func
810c0 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tion.getConflicts();........publ
810e0 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 3b 0a 0a 0a 0a 0a 0a ic.function.getProvides();......
81100 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b ..public.function.getReplaces();
81120 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 76 52 65 ........public.function.getDevRe
81140 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e quires();........public.function
81160 20 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .getSuggests();............publi
81180 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a c.function.getAutoload();.......
811a0 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 41 75 74 6f 6c .....public.function.getDevAutol
811c0 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 oad();........public.function.ge
811e0 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tIncludePaths();.......public.fu
81200 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 nction.setRepository(RepositoryI
81220 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 nterface.$repository);.......pub
81240 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 0a lic.function.getRepository();...
81260 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 ....public.function.getBinaries(
81280 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 );.......public.function.getUniq
812a0 75 65 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ueName();.......public.function.
812c0 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c getNotificationUrl();.......publ
812e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a ic.function.__toString();.......
81300 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(
81320 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 63 68 );.......public.function.getArch
81340 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 iveExcludes();.......public.func
81360 74 69 6f 6e 20 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 3c 3f tion.getTransportOptions();.}.<?
81380 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
813a0 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 69 61 73 50 61 r\Package;.....class.RootAliasPa
813c0 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 69 6d 70 6c 65 ckage.extends.AliasPackage.imple
813e0 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 7b 0a 70 75 62 ments.RootPackageInterface.{.pub
81400 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 6f 74 50 61 63 lic.function.__construct(RootPac
81420 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e kageInterface.$aliasOf,.$version
81440 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ,.$prettyVersion).{.parent::__co
81460 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 20 24 70 72 65 nstruct($aliasOf,.$version,.$pre
81480 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 75 6e 63 74 69 ttyVersion);.}.....public.functi
814a0 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getAliases().{.return.$this->
814c0 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 0a 0a 70 75 62 aliasOf->getAliases();.}.....pub
814e0 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 69 6c 69 74 79 lic.function.getMinimumStability
81500 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 4d ().{.return.$this->aliasOf->getM
81520 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 62 6c 69 63 20 inimumStability();.}.....public.
81540 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 function.getStabilityFlags().{.r
81560 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 61 62 69 6c 69 eturn.$this->aliasOf->getStabili
81580 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 63 74 69 6f 6e tyFlags();.}.....public.function
815a0 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .getReferences().{.return.$this-
815c0 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 7d 0a 0a 0a 0a >aliasOf->getReferences();.}....
815e0 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
81600 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 50 ().{.return.$this->aliasOf->getP
81620 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 20 66 75 6e 63 referStable();.}.....public.func
81640 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 75 69 72 65 29 tion.setRequires(array.$require)
81660 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6c .{.$this->requires.=.$this->repl
81680 61 63 65 53 65 6c 66 56 65 72 73 69 6f 6e 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 72 65 71 75 aceSelfVersionDependencies($requ
816a0 69 72 65 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f ire,.'requires');..$this->aliasO
816c0 66 2d 3e 73 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 f->setRequires($require);.}.....
816e0 70 75 62 6c 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 public.function.setDevRequires(a
81700 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 52 65 rray.$devRequire).{.$this->devRe
81720 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 53 65 6c 66 56 65 72 73 69 quires.=.$this->replaceSelfVersi
81740 6f 6e 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 64 65 76 52 65 71 75 69 72 65 2c 20 27 64 65 76 onDependencies($devRequire,.'dev
81760 52 65 71 75 69 72 65 73 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 Requires');..$this->aliasOf->set
81780 44 65 76 52 65 71 75 69 72 65 73 28 24 64 65 76 52 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 0a 0a 0a DevRequires($devRequire);.}.....
817a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 public.function.setConflicts(arr
817c0 61 79 20 24 63 6f 6e 66 6c 69 63 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 ay.$conflicts).{.$this->conflict
817e0 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 53 65 6c 66 56 65 72 73 69 6f 6e 44 65 70 s.=.$this->replaceSelfVersionDep
81800 65 6e 64 65 6e 63 69 65 73 28 24 63 6f 6e 66 6c 69 63 74 73 2c 20 27 63 6f 6e 66 6c 69 63 74 73 endencies($conflicts,.'conflicts
81820 27 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 ');.$this->aliasOf->setConflicts
81840 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ($conflicts);.}.....public.funct
81860 69 6f 6e 20 73 65 74 50 72 6f 76 69 64 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 ion.setProvides(array.$provides)
81880 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6c .{.$this->provides.=.$this->repl
818a0 61 63 65 53 65 6c 66 56 65 72 73 69 6f 6e 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 72 6f 76 aceSelfVersionDependencies($prov
818c0 69 64 65 73 2c 20 27 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f ides,.'provides');.$this->aliasO
818e0 66 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 70 72 6f 76 69 64 65 73 29 3b 0a 7d 0a 0a 0a 0a f->setProvides($provides);.}....
81900 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 .public.function.setReplaces(arr
81920 61 79 20 24 72 65 70 6c 61 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 ay.$replaces).{.$this->replaces.
81940 3d 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 53 65 6c 66 56 65 72 73 69 6f 6e 44 65 70 65 6e =.$this->replaceSelfVersionDepen
81960 64 65 6e 63 69 65 73 28 24 72 65 70 6c 61 63 65 73 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a dencies($replaces,.'replaces');.
81980 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 $this->aliasOf->setReplaces($rep
819a0 6c 61 63 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 laces);.}.....public.function.se
819c0 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 tRepositories($repositories).{.$
819e0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 this->aliasOf->setRepositories($
81a00 72 65 70 6f 73 69 74 6f 72 69 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 repositories);.}.....public.func
81a20 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 tion.setAutoload(array.$autoload
81a40 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 ).{.$this->aliasOf->setAutoload(
81a60 24 61 75 74 6f 6c 6f 61 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $autoload);.}.....public.functio
81a80 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 41 75 74 6f 6c n.setDevAutoload(array.$devAutol
81aa0 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 65 76 41 75 74 oad).{.$this->aliasOf->setDevAut
81ac0 6f 6c 6f 61 64 28 24 64 65 76 41 75 74 6f 6c 6f 61 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 oload($devAutoload);.}.....publi
81ae0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 c.function.setStabilityFlags(arr
81b00 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 ay.$stabilityFlags).{.$this->ali
81b20 61 73 4f 66 2d 3e 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 73 74 61 62 69 6c 69 asOf->setStabilityFlags($stabili
81b40 74 79 46 6c 61 67 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 tyFlags);.}.....public.function.
81b60 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 7b 0a 24 setSuggests(array.$suggests).{.$
81b80 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 73 75 67 67 this->aliasOf->setSuggests($sugg
81ba0 65 73 74 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 ests);.}.....public.function.set
81bc0 45 78 74 72 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 Extra(array.$extra).{.$this->ali
81be0 61 73 4f 66 2d 3e 73 65 74 45 78 74 72 61 28 24 65 78 74 72 61 29 3b 0a 7d 0a 0a 70 75 62 6c 69 asOf->setExtra($extra);.}..publi
81c00 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f c.function.__clone().{.parent::_
81c20 5f 63 6c 6f 6e 65 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 63 6c 6f 6e 65 _clone();.$this->aliasOf.=.clone
81c40 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$this->aliasOf;.}.}.<?php......
81c60 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
81c80 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 ;.......class.RootPackage.extend
81ca0 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f s.CompletePackage.implements.Roo
81cc0 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d tPackageInterface.{.protected.$m
81ce0 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 3b 0a 70 72 6f 74 inimumStability.=.'stable';.prot
81d00 65 63 74 65 64 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f ected.$preferStable.=.false;.pro
81d20 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 tected.$stabilityFlags.=.array()
81d40 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 ;.protected.$references.=.array(
81d60 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b );.protected.$aliases.=.array();
81d80 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 69 6e 69 6d 75 .......public.function.setMinimu
81da0 6d 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a mStability($minimumStability).{.
81dc0 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 6d 69 6e 69 6d $this->minimumStability.=.$minim
81de0 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 umStability;.}.....public.functi
81e00 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 72 65 74 75 72 on.getMinimumStability().{.retur
81e20 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a n.$this->minimumStability;.}....
81e40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 ...public.function.setStabilityF
81e60 6c 61 67 73 28 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 lags(array.$stabilityFlags).{.$t
81e80 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 his->stabilityFlags.=.$stability
81ea0 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 Flags;.}.....public.function.get
81ec0 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d StabilityFlags().{.return.$this-
81ee0 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 >stabilityFlags;.}.......public.
81f00 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 24 70 72 65 66 65 72 function.setPreferStable($prefer
81f20 53 74 61 62 6c 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 Stable).{.$this->preferStable.=.
81f40 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $preferStable;.}.....public.func
81f60 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 tion.getPreferStable().{.return.
81f80 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 $this->preferStable;.}.......pub
81fa0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 lic.function.setReferences(array
81fc0 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 .$references).{.$this->reference
81fe0 73 20 3d 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s.=.$references;.}.....public.fu
82000 6e 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 nction.getReferences().{.return.
82020 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $this->references;.}.......publi
82040 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 c.function.setAliases(array.$ali
82060 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 ases).{.$this->aliases.=.$aliase
82080 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 s;.}.....public.function.getAlia
820a0 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 73 3b 0a 7d ses().{.return.$this->aliases;.}
820c0 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
820e0 6d 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 mposer\Package;.......interface.
82100 52 6f 6f 74 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 43 6f 6d RootPackageInterface.extends.Com
82120 70 6c 65 74 65 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 pletePackageInterface.{......pub
82140 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 3b 0a 0a 0a 0a 0a 0a lic.function.getAliases();......
82160 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 69 .public.function.getMinimumStabi
82180 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 lity();.........public.function.
821a0 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 getStabilityFlags();.........pub
821c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 0a lic.function.getReferences();...
821e0 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 74 61 ....public.function.getPreferSta
82200 62 6c 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 73 65 74 ble();.......public.function.set
82220 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 29 3b 0a 0a 0a 0a 0a 0a Requires(array.$requires);......
82240 0a 70 75 62 6c 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 .public.function.setDevRequires(
82260 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 array.$devRequires);.......publi
82280 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 c.function.setConflicts(array.$c
822a0 6f 6e 66 6c 69 63 74 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 onflicts);.......public.function
822c0 20 73 65 74 50 72 6f 76 69 64 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 3b 0a 0a .setProvides(array.$provides);..
822e0 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 6c 61 63 65 73 .....public.function.setReplaces
82300 28 61 72 72 61 79 20 24 72 65 70 6c 61 63 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 (array.$replaces);.......public.
82320 66 75 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 function.setRepositories($reposi
82340 74 6f 72 69 65 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 tories);.......public.function.s
82360 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 29 3b 0a 0a 0a 0a etAutoload(array.$autoload);....
82380 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 41 75 74 6f 6c 6f 61 ...public.function.setDevAutoloa
823a0 64 28 61 72 72 61 79 20 24 64 65 76 41 75 74 6f 6c 6f 61 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 d(array.$devAutoload);.......pub
823c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 lic.function.setStabilityFlags(a
823e0 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 rray.$stabilityFlags);.......pub
82400 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 lic.function.setSuggests(array.$
82420 73 75 67 67 65 73 74 73 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 suggests);.....public.function.s
82440 65 74 45 78 74 72 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a etExtra(array.$extra);.}.<?php..
82460 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
82480 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 43 6f 6e 66 kage\Version;..use.Composer\Conf
824a0 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c ig;.use.Composer\Repository\Vcs\
824c0 48 67 44 72 69 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f HgDriver;.use.Composer\IO\NullIO
824e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 ;.use.Composer\Semver\VersionPar
82500 73 65 72 20 61 73 20 53 65 6d 76 65 72 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 ser.as.SemverVersionParser;.use.
82520 43 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 Composer\Util\Git.as.GitUtil;.us
82540 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b e.Composer\Util\ProcessExecutor;
82560 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 .use.Composer\Util\Svn.as.SvnUti
82580 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 47 75 65 73 73 65 72 0a 7b l;........class.VersionGuesser.{
825a0 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
825c0 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 .$process;.....private.$versionP
825e0 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 arser;.......public.function.__c
82600 6f 6e 73 74 72 75 63 74 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 onstruct(Config.$config,.Process
82620 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 53 65 6d 76 65 72 56 65 72 73 69 6f 6e Executor.$process,.SemverVersion
82640 50 61 72 73 65 72 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e Parser.$versionParser).{.$this->
82660 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
82680 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 .=.$process;.$this->versionParse
826a0 72 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 r.=.$versionParser;.}......publi
826c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 70 c.function.guessVersion(array.$p
826e0 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 ackageConfig,.$path).{.if.(funct
82700 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 24 76 65 72 73 ion_exists('proc_open')).{.$vers
82720 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 24 70 61 ion.=.$this->guessGitVersion($pa
82740 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d ckageConfig,.$path);.if.(null.!=
82760 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d =.$version).{.return.$version;.}
82780 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 67 56 65 72 73 69 ..$version.=.$this->guessHgVersi
827a0 6f 6e 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 6e on($packageConfig,.$path);.if.(n
827c0 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
827e0 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 75 65 73 73 53 76 6e 56 65 ion;.}..return.$this->guessSvnVe
82800 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 70 61 74 68 29 3b 0a 7d 0a rsion($packageConfig,.$path);.}.
82820 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 47 69 74 56 65 72 73 }..private.function.guessGitVers
82840 69 6f 6e 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 70 61 74 68 29 ion(array.$packageConfig,.$path)
82860 0a 7b 0a 47 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 .{.GitUtil::cleanEnv();....if.(0
82880 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 69 .===.$this->process->execute('gi
828a0 74 20 64 65 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 t.describe.--exact-match.--tags'
828c0 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 ,.$output,.$path)).{.try.{.retur
828e0 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
82900 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 e(trim($output));.}.catch.(\Exce
82920 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 ption.$e).{.}.}....if.(0.===.$th
82940 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 is->process->execute('git.branch
82960 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 .--no-color.--no-abbrev.-v',.$ou
82980 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 tput,.$path)).{.$branches.=.arra
829a0 79 28 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 y();.$isFeatureBranch.=.false;.$
829c0 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 version.=.null;....foreach.($thi
829e0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 s->process->splitLines($output).
82a00 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 as.$branch).{.if.($branch.&&.pre
82a20 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 5c 28 6e 6f 20 62 72 61 6e 63 68 g_match('{^(?:\*.).*(\(no.branch
82a40 5c 29 7c 5c 28 64 65 74 61 63 68 65 64 20 66 72 6f 6d 20 5c 53 2b 5c 29 7c 5c 53 2b 29 20 2a 28 \)|\(detached.from.\S+\)|\S+).*(
82a60 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 [a-f0-9]+)..*$}',.$branch,.$matc
82a80 68 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 5b 31 5d 20 3d 3d 3d 20 27 28 6e 6f 20 62 72 61 h)).{.if.($match[1].===.'(no.bra
82aa0 6e 63 68 29 27 20 7c 7c 20 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 31 5d 2c 20 30 2c 20 31 30 nch)'.||.substr($match[1],.0,.10
82ac0 29 20 3d 3d 3d 20 27 28 64 65 74 61 63 68 65 64 20 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d ).===.'(detached.').{.$version.=
82ae0 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 .'dev-'.$match[2];.$isFeatureBra
82b00 6e 63 68 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 nch.=.true;.}.else.{.$version.=.
82b20 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 42 $this->versionParser->normalizeB
82b40 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e ranch($match[1]);.$isFeatureBran
82b60 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 ch.=.0.===.strpos($version,.'dev
82b80 2d 27 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 -');.if.('9999999-dev'.===.$vers
82ba0 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b ion).{.$version.=.'dev-'.$match[
82bc0 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 1];.}.}.}..if.($branch.&&.!preg_
82be0 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 match('{^.*[^/]+/HEAD.}',.$branc
82c00 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f h)).{.if.(preg_match('{^(?:\*.)?
82c20 20 2a 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 .*(\S+).*([a-f0-9]+)..*$}',.$bra
82c40 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d nch,.$match)).{.$branches[].=.$m
82c60 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 atch[1];.}.}.}..if.(!$isFeatureB
82c80 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 ranch).{.return.$version;.}....$
82ca0 76 65 72 73 69 6f 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 version.=.$this->guessFeatureVer
82cc0 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 sion($packageConfig,.$version,.$
82ce0 62 72 61 6e 63 68 65 73 2c 20 27 67 69 74 20 72 65 76 2d 6c 69 73 74 20 25 63 61 6e 64 69 64 61 branches,.'git.rev-list.%candida
82d00 74 65 25 2e 2e 25 62 72 61 6e 63 68 25 27 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 te%..%branch%',.$path);..return.
82d20 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.
82d40 67 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 43 6f 6e guessHgVersion(array.$packageCon
82d60 66 69 67 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d fig,.$path).{...if.(0.===.$this-
82d80 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 27 2c 20 24 >process->execute('hg.branch',.$
82da0 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 74 72 69 6d output,.$path)).{.$branch.=.trim
82dc0 28 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 ($output);.$version.=.$this->ver
82de0 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 62 72 61 sionParser->normalizeBranch($bra
82e00 6e 63 68 29 3b 0a 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 nch);.$isFeatureBranch.=.0.===.s
82e20 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 0a 69 66 20 28 27 39 trpos($version,.'dev-');..if.('9
82e40 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 999999-dev'.===.$version).{.$ver
82e60 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 69 66 20 28 21 24 sion.=.'dev-'.$branch;.}..if.(!$
82e80 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 isFeatureBranch).{.return.$versi
82ea0 6f 6e 3b 0a 7d 0a 0a 0a 20 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 48 67 44 72 69 76 65 72 28 on;.}....$driver.=.new.HgDriver(
82ec0 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 70 61 74 68 29 2c 20 6e 65 77 20 4e 75 6c 6c 49 array('url'.=>.$path),.new.NullI
82ee0 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 65 O(),.$this->config,.$this->proce
82f00 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 69 ss);.$branches.=.array_keys($dri
82f20 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 6e ver->getBranches());....$version
82f40 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 70 .=.$this->guessFeatureVersion($p
82f60 61 63 6b 61 67 65 43 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 ackageConfig,.$version,.$branche
82f80 73 2c 20 27 68 67 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 s,.'hg.log.-r."not.ancestors(\'%
82fa0 63 61 6e 64 69 64 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 candidate%\').and.ancestors(\'%b
82fc0 72 61 6e 63 68 25 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 ranch%\')".--template."{node}\\n
82fe0 22 27 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a "',.$path);..return.$version;.}.
83000 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 46 65 61 74 75 72 65 }..private.function.guessFeature
83020 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 76 Version(array.$packageConfig,.$v
83040 65 72 73 69 6f 6e 2c 20 61 72 72 61 79 20 24 62 72 61 6e 63 68 65 73 2c 20 24 73 63 6d 43 6d 64 ersion,.array.$branches,.$scmCmd
83060 6c 69 6e 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 24 70 line,.$path).{.....if.((isset($p
83080 61 63 6b 61 67 65 43 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 ackageConfig['extra']['branch-al
830a0 69 61 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 5b ias']).&&.!isset($packageConfig[
830c0 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 76 65 72 73 69 6f 'extra']['branch-alias'][$versio
830e0 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 61 63 6b n])).||.strpos(json_encode($pack
83100 61 67 65 43 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 69 6f 6e 22 27 29 0a 29 20 ageConfig),.'"self.version"').).
83120 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 64 65 76 2d {.$branch.=.preg_replace('{^dev-
83140 7d 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 }',.'',.$version);.$length.=.PHP
83160 5f 49 4e 54 5f 4d 41 58 3b 0a 0a 24 6e 6f 6e 46 65 61 74 75 72 65 42 72 61 6e 63 68 65 73 20 3d _INT_MAX;..$nonFeatureBranches.=
83180 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 5b 27 .'';.if.(!empty($packageConfig['
831a0 6e 6f 6e 2d 66 65 61 74 75 72 65 2d 62 72 61 6e 63 68 65 73 27 5d 29 29 20 7b 0a 24 6e 6f 6e 46 non-feature-branches'])).{.$nonF
831c0 65 61 74 75 72 65 42 72 61 6e 63 68 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 70 eatureBranches.=.implode('|',.$p
831e0 61 63 6b 61 67 65 43 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 ackageConfig['non-feature-branch
83200 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 73 20 es']);.}..foreach.($branches.as.
83220 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d $candidate).{...if.($candidate.=
83240 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 20 2e ==.$branch.&&.preg_match('{^('..
83260 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 24 63 .$nonFeatureBranches...')$}',.$c
83280 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 7d 0a andidate)).{.return.$version;.}.
832a0 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 7c 7c ...if.($candidate.===.$branch.||
832c0 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 64 65 .!preg_match('{^(master|trunk|de
832e0 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 6e 64 fault|develop|\d+\..+)$}',.$cand
83300 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 0a 24 idate,.$match)).{.continue;.}..$
83320 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 63 61 cmdLine.=.str_replace(array('%ca
83340 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 24 63 ndidate%',.'%branch%'),.array($c
83360 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 65 29 andidate,.$branch),.$scmCmdline)
83380 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 ;.if.(0.!==.$this->process->exec
833a0 75 74 65 28 24 63 6d 64 4c 69 6e 65 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b ute($cmdLine,.$output,.$path)).{
833c0 0a 63 6f 6e 74 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 .continue;.}..if.(strlen($output
833e0 29 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 ).<.$length).{.$length.=.strlen(
83400 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 $output);.$version.=.$this->vers
83420 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 63 61 6e 64 ionParser->normalizeBranch($cand
83440 69 64 61 74 65 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 idate);.if.('9999999-dev'.===.$v
83460 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 ersion).{.$version.=.'dev-'.$mat
83480 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b ch[1];.}.}.}.}..return.$version;
834a0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 53 76 6e 56 65 72 .}..private.function.guessSvnVer
834c0 73 69 6f 6e 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 70 61 74 68 sion(array.$packageConfig,.$path
834e0 29 0a 7b 0a 53 76 6e 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 ).{.SvnUtil::cleanEnv();....if.(
83500 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 73 0.===.$this->process->execute('s
83520 76 6e 20 69 6e 66 6f 20 2d 2d 78 6d 6c 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 vn.info.--xml',.$output,.$path))
83540 20 7b 0a 24 74 72 75 6e 6b 50 61 74 68 20 3d 20 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 43 6f .{.$trunkPath.=.isset($packageCo
83560 6e 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 nfig['trunk-path']).?.preg_quote
83580 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 2c 20 27 ($packageConfig['trunk-path'],.'
835a0 23 27 29 20 3a 20 27 74 72 75 6e 6b 27 3b 0a 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 69 #').:.'trunk';.$branchesPath.=.i
835c0 73 73 65 74 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 sset($packageConfig['branches-pa
835e0 74 68 27 5d 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 th']).?.preg_quote($packageConfi
83600 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 2c 20 27 23 27 29 20 3a 20 27 62 72 61 6e g['branches-path'],.'#').:.'bran
83620 63 68 65 73 27 3b 0a 24 74 61 67 73 50 61 74 68 20 3d 20 69 73 73 65 74 28 24 70 61 63 6b 61 67 ches';.$tagsPath.=.isset($packag
83640 65 43 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 71 75 6f eConfig['tags-path']).?.preg_quo
83660 74 65 28 24 70 61 63 6b 61 67 65 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 2c 20 te($packageConfig['tags-path'],.
83680 27 23 27 29 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 '#').:.'tags';..$urlPattern.=.'#
836a0 3c 75 72 6c 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 <url>.*/('.$trunkPath.'|('.$bran
836c0 63 68 65 73 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 chesPath.'|'..$tagsPath..')/(.*)
836e0 29 3c 2f 75 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 )</url>#';..if.(preg_match($urlP
83700 61 74 74 65 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 attern,.$output,.$matches)).{.if
83720 20 28 69 73 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 .(isset($matches[2]).&&.($branch
83740 65 73 50 61 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 esPath.===.$matches[2].||.$tagsP
83760 61 74 68 20 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 ath.===.$matches[2])).{...$versi
83780 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 on.=.$this->versionParser->norma
837a0 6c 69 7a 65 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 lizeBranch($matches[3]);.if.('99
837c0 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 99999-dev'.===.$version).{.$vers
837e0 69 6f 6e 20 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 ion.=.'dev-'.$matches[3];.}..ret
83800 75 72 6e 20 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 urn.$version;.}..return.$this->v
83820 65 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 6d 61 ersionParser->normalize(trim($ma
83840 74 63 68 65 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 tches[1]));.}.}.}.}.<?php.......
83860 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c .....namespace.Composer\Package\
83880 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 Version;..use.Composer\Semver\Ve
838a0 72 73 69 6f 6e 50 61 72 73 65 72 20 61 73 20 53 65 6d 76 65 72 56 65 72 73 69 6f 6e 50 61 72 73 rsionParser.as.SemverVersionPars
838c0 65 72 3b 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 65 78 74 65 6e 64 73 er;..class.VersionParser.extends
838e0 20 53 65 6d 76 65 72 56 65 72 73 69 6f 6e 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .SemverVersionParser.{..........
83900 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 69 6f .public.function.parseNameVersio
83920 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 3d 20 nPairs(array.$pairs).{.$pairs.=.
83940 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 3d 20 array_values($pairs);.$result.=.
83960 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 3d 20 array();..for.($i.=.0,.$count.=.
83980 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 2b 2b count($pairs);.$i.<.$count;.$i++
839a0 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 5e 3d ).{.$pair.=.preg_replace('{^([^=
839c0 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 69 6d :.]+)[=:.](.*)$}',.'$1.$2',.trim
839e0 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 74 72 ($pairs[$i]));.if.(false.===.str
83a00 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 73 5b pos($pair,.'.').&&.isset($pairs[
83a20 24 69 20 2b 20 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 $i.+.1]).&&.false.===.strpos($pa
83a40 69 72 73 5b 24 69 20 2b 20 31 5d 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 69 72 20 2e 3d 20 27 20 irs[$i.+.1],.'/')).{.$pair..=.'.
83a60 27 2e 24 70 61 69 72 73 5b 24 69 20 2b 20 31 5d 3b 0a 24 69 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 73 '.$pairs[$i.+.1];.$i++;.}..if.(s
83a80 74 72 70 6f 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 trpos($pair,.'.')).{.list($name,
83aa0 20 24 76 65 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 .$version).=.explode(".",.$pair,
83ac0 20 32 29 3b 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 .2);.$result[].=.array('name'.=>
83ae0 20 24 6e 61 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 .$name,.'version'.=>.$version);.
83b00 7d 20 65 6c 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 }.else.{.$result[].=.array('name
83b20 27 20 3d 3e 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 '.=>.$pair);.}.}..return.$result
83b40 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
83b60 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 3b 0a 0a 75 73 65 20 .Composer\Package\Version;..use.
83b80 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 6f 6c Composer\DependencyResolver\Pool
83ba0 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 61 ;.use.Composer\Package\BasePacka
83bc0 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 ge;.use.Composer\Package\Package
83be0 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
83c00 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
83c20 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 75 73 65 \Package\Dumper\ArrayDumper;.use
83c40 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 61 .Composer\Semver\VersionParser.a
83c60 73 20 53 65 6d 76 65 72 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f s.SemverVersionParser;.use.Compo
83c80 73 65 72 5c 53 65 6d 76 65 72 5c 53 65 6d 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ser\Semver\Semver;.use.Composer\
83ca0 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a Semver\Constraint\Constraint;...
83cc0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 0a 7b 0a 70 72 69 .....class.VersionSelector.{.pri
83ce0 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 72 3b 0a 0a 70 vate.$pool;..private.$parser;..p
83d00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 ublic.function.__construct(Pool.
83d20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a $pool).{.$this->pool.=.$pool;.}.
83d40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 42 ...........public.function.findB
83d60 65 73 74 43 61 6e 64 69 64 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 74 61 72 67 estCandidate($packageName,.$targ
83d80 65 74 50 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 74 61 72 67 65 74 etPackageVersion.=.null,.$target
83da0 50 68 70 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 65 66 65 72 72 65 64 53 74 61 PhpVersion.=.null,.$preferredSta
83dc0 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 bility.=.'stable').{.$constraint
83de0 20 3d 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 24 74 68 69 73 .=.$targetPackageVersion.?.$this
83e00 2d 3e 67 65 74 50 61 72 73 65 72 28 29 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 ->getParser()->parseConstraints(
83e20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 24 $targetPackageVersion).:.null;.$
83e40 63 61 6e 64 69 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 candidates.=.$this->pool->whatPr
83e60 6f 76 69 64 65 73 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 2c ovides(strtolower($packageName),
83e80 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 61 72 67 65 .$constraint,.true);..if.($targe
83ea0 74 50 68 70 56 65 72 73 69 6f 6e 29 20 7b 0a 24 70 68 70 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 tPhpVersion).{.$phpConstraint.=.
83ec0 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 new.Constraint('==',.$this->getP
83ee0 61 72 73 65 72 28 29 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 74 61 72 67 65 74 50 68 70 56 65 72 arser()->normalize($targetPhpVer
83f00 73 69 6f 6e 29 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 sion));.$candidates.=.array_filt
83f20 65 72 28 24 63 61 6e 64 69 64 61 74 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 6b 67 29 20 er($candidates,.function.($pkg).
83f40 75 73 65 20 28 24 70 68 70 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 72 65 71 73 20 3d 20 24 use.($phpConstraint).{.$reqs.=.$
83f60 70 6b 67 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 21 69 73 73 pkg->getRequires();..return.!iss
83f80 65 74 28 24 72 65 71 73 5b 27 70 68 70 27 5d 29 20 7c 7c 20 24 72 65 71 73 5b 27 70 68 70 27 5d et($reqs['php']).||.$reqs['php']
83fa0 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 70 68 70 43 ->getConstraint()->matches($phpC
83fc0 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 onstraint);.});.}..if.(!$candida
83fe0 74 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 tes).{.return.false;.}....$packa
84000 67 65 20 3d 20 72 65 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 29 3b 0a 24 6d 69 6e 50 72 69 ge.=.reset($candidates);.$minPri
84020 6f 72 69 74 79 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 ority.=.BasePackage::$stabilitie
84040 73 5b 24 70 72 65 66 65 72 72 65 64 53 74 61 62 69 6c 69 74 79 5d 3b 0a 66 6f 72 65 61 63 68 20 s[$preferredStability];.foreach.
84060 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 24 63 ($candidates.as.$candidate).{.$c
84080 61 6e 64 69 64 61 74 65 50 72 69 6f 72 69 74 79 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 andidatePriority.=.$candidate->g
840a0 65 74 53 74 61 62 69 6c 69 74 79 50 72 69 6f 72 69 74 79 28 29 3b 0a 24 63 75 72 72 65 6e 74 50 etStabilityPriority();.$currentP
840c0 72 69 6f 72 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 riority.=.$package->getStability
840e0 50 72 69 6f 72 69 74 79 28 29 3b 0a 0a 0a 20 69 66 20 28 24 6d 69 6e 50 72 69 6f 72 69 74 79 20 Priority();....if.($minPriority.
84100 3c 20 24 63 61 6e 64 69 64 61 74 65 50 72 69 6f 72 69 74 79 20 26 26 20 24 63 75 72 72 65 6e 74 <.$candidatePriority.&&.$current
84120 50 72 69 6f 72 69 74 79 20 3c 20 24 63 61 6e 64 69 64 61 74 65 50 72 69 6f 72 69 74 79 29 20 7b Priority.<.$candidatePriority).{
84140 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 20 69 66 20 28 24 6d 69 6e 50 72 69 6f 72 69 74 79 20 .continue;.}...if.($minPriority.
84160 3e 3d 20 24 63 61 6e 64 69 64 61 74 65 50 72 69 6f 72 69 74 79 20 26 26 20 24 6d 69 6e 50 72 69 >=.$candidatePriority.&&.$minPri
84180 6f 72 69 74 79 20 3c 20 24 63 75 72 72 65 6e 74 50 72 69 6f 72 69 74 79 29 20 7b 0a 24 70 61 63 ority.<.$currentPriority).{.$pac
841a0 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a kage.=.$candidate;.continue;.}..
841c0 0a 20 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2d 3e ..if.(version_compare($package->
841e0 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 56 65 72 getVersion(),.$candidate->getVer
84200 73 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 sion(),.'<')).{.$package.=.$cand
84220 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a idate;.}.}..return.$package;.}..
84240 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
84260 69 6e 64 52 65 63 6f 6d 6d 65 6e 64 65 64 52 65 71 75 69 72 65 56 65 72 73 69 6f 6e 28 50 61 63 indRecommendedRequireVersion(Pac
84280 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 76 65 72 73 69 kageInterface.$package).{.$versi
842a0 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 69 66 20 on.=.$package->getVersion();.if.
842c0 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 (!$package->isDev()).{.return.$t
842e0 68 69 73 2d 3e 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 20 his->transformVersion($version,.
84300 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 $package->getPrettyVersion(),.$p
84320 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 3b 0a 7d 0a 0a 24 6c 6f 61 ackage->getStability());.}..$loa
84340 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d 3e 67 65 74 der.=.new.ArrayLoader($this->get
84360 50 61 72 73 65 72 28 29 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 Parser());.$dumper.=.new.ArrayDu
84380 6d 70 65 72 28 29 3b 0a 24 65 78 74 72 61 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 67 65 74 42 72 61 mper();.$extra.=.$loader->getBra
843a0 6e 63 68 41 6c 69 61 73 28 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 nchAlias($dumper->dump($package)
843c0 29 3b 0a 69 66 20 28 24 65 78 74 72 61 29 20 7b 0a 24 65 78 74 72 61 20 3d 20 70 72 65 67 5f 72 );.if.($extra).{.$extra.=.preg_r
843e0 65 70 6c 61 63 65 28 27 7b 5e 28 5c 64 2b 5c 2e 5c 64 2b 5c 2e 5c 64 2b 29 28 5c 2e 39 39 39 39 eplace('{^(\d+\.\d+\.\d+)(\.9999
84400 39 39 39 29 2d 64 65 76 24 7d 27 2c 20 27 24 31 2e 30 27 2c 20 24 65 78 74 72 61 2c 20 2d 31 2c 999)-dev$}',.'$1.0',.$extra,.-1,
84420 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 29 20 7b 0a 24 65 78 74 72 61 20 3d .$count);.if.($count).{.$extra.=
84440 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2e 39 39 39 39 39 39 39 27 2c 20 27 2e 30 27 2c 20 24 .str_replace('.9999999',.'.0',.$
84460 65 78 74 72 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 66 6f 72 6d extra);..return.$this->transform
84480 56 65 72 73 69 6f 6e 28 24 65 78 74 72 61 2c 20 24 65 78 74 72 61 2c 20 27 64 65 76 27 29 3b 0a Version($extra,.$extra,.'dev');.
844a0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 }.}..return.$package->getPrettyV
844c0 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 72 ersion();.}..private.function.tr
844e0 61 6e 73 66 6f 72 6d 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 ansformVersion($version,.$pretty
84500 56 65 72 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 0a 20 0a 20 24 73 65 6d 61 Version,.$stability).{.....$sema
84520 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 nticVersionParts.=.explode('.',.
84540 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 73 65 6d 61 6e 74 69 $version);....if.(count($semanti
84560 63 56 65 72 73 69 6f 6e 50 61 72 74 73 29 20 3d 3d 20 34 20 26 26 20 70 72 65 67 5f 6d 61 74 63 cVersionParts).==.4.&&.preg_matc
84580 68 28 27 7b 5e 30 5c 44 3f 7d 27 2c 20 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 h('{^0\D?}',.$semanticVersionPar
845a0 74 73 5b 33 5d 29 29 20 7b 0a 0a 20 69 66 20 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e ts[3])).{...if.($semanticVersion
845c0 50 61 72 74 73 5b 30 5d 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 75 6e 73 65 74 28 24 73 65 6d 61 6e Parts[0].===.'0').{.unset($seman
845e0 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 33 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 75 6e ticVersionParts[3]);.}.else.{.un
84600 73 65 74 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 32 5d 2c 20 24 73 set($semanticVersionParts[2],.$s
84620 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 76 65 72 73 emanticVersionParts[3]);.}.$vers
84640 69 6f 6e 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 73 65 6d 61 6e 74 69 63 56 65 72 73 ion.=.implode('.',.$semanticVers
84660 69 6f 6e 50 61 72 74 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 70 72 65 74 ionParts);.}.else.{.return.$pret
84680 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 73 74 61 62 69 6c 69 74 79 20 21 tyVersion;.}....if.($stability.!
846a0 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 40 27 2e 24 73 =.'stable').{.$version..=.'@'.$s
846c0 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 27 5e 27 20 2e 20 24 76 65 72 tability;.}....return.'^'...$ver
846e0 73 69 6f 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 sion;.}..private.function.getPar
84700 73 65 72 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 72 73 65 72 20 3d 3d 3d 20 6e 75 ser().{.if.($this->parser.===.nu
84720 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 72 20 3d 20 6e 65 77 20 53 65 6d 76 65 72 ll).{.$this->parser.=.new.Semver
84740 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 VersionParser();.}..return.$this
84760 2d 3e 70 61 72 73 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ->parser;.}.}.<?php............n
84780 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 73 65 20 43 amespace.Composer\Plugin;..use.C
847a0 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 3b 0a 75 omposer\EventDispatcher\Event;.u
847c0 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
847e0 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
84800 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
84820 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 45 76 65 6e terface;.......class.CommandEven
84840 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 20 24 63 6f t.extends.Event.{....private.$co
84860 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 74 3b 0a 0a mmandName;.....private.$input;..
84880 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 0a 0a 0a 70 ...private.$output;............p
848a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 ublic.function.__construct($name
848c0 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 70 75 74 2c ,.$commandName,.$input,.$output,
848e0 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 20 24 66 .array.$args.=.array(),.array.$f
84900 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 63 6f 6e 73 lags.=.array()).{.parent::__cons
84920 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 0a 24 74 68 truct($name,.$args,.$flags);.$th
84940 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 6d 65 3b 0a is->commandName.=.$commandName;.
84960 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
84980 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 69 63 20 66 tput.=.$output;.}.......public.f
849a0 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 68 69 unction.getInput().{.return.$thi
849c0 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 69 6f s->input;.}.......public.functio
849e0 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 6f 75 n.getOutput().{.return.$this->ou
84a00 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 tput;.}.......public.function.ge
84a20 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 73 2d 3e 63 tCommandName().{.return.$this->c
84a40 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 0a 0a 0a 0a ommandName;.}.}.<?php...........
84a60 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 0a 0a 0a .namespace.Composer\Plugin;.....
84a80 0a 0a 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 ..class.PluginEvents.{.........c
84aa0 6f 6e 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 onst.COMMAND.=.'command';.......
84ac0 0a 0a 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 ...const.PRE_FILE_DOWNLOAD.=.'pr
84ae0 65 2d 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 e-file-download';.}.<?php.......
84b00 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;.
84b20 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
84b40 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
84b60 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
84b80 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';.
84ba0 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(
84bc0 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.
84be0 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
84c00 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
84c20 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
84c40 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
84c60 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;.
84c80 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
84ca0 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b e.Composer\Semver\VersionParser;
84cc0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 .use.Composer\Repository\Reposit
84ce0 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 61 oryInterface;.use.Composer\Packa
84d00 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ge\AliasPackage;.use.Composer\Pa
84d20 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
84d40 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c oser\Package\Link;.use.Composer\
84d60 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 Semver\Constraint\Constraint;.us
84d80 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
84da0 6f 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 0a 7b ol;........class.PluginManager.{
84dc0 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 65 64 20 .protected.$composer;.protected.
84de0 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 3b 0a $io;.protected.$globalComposer;.
84e00 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 protected.$versionParser;.protec
84e20 74 65 64 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 ted.$disablePlugins.=.false;..pr
84e40 6f 74 65 63 74 65 64 20 24 70 6c 75 67 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 otected.$plugins.=.array();.prot
84e60 65 63 74 65 64 20 24 72 65 67 69 73 74 65 72 65 64 50 6c 75 67 69 6e 73 20 3d 20 61 72 72 61 79 ected.$registeredPlugins.=.array
84e80 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 ();..private.static.$classCounte
84ea0 72 20 3d 20 30 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 r.=.0;..........public.function.
84ec0 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 6d __construct(IOInterface.$io,.Com
84ee0 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 43 6f 6d 70 6f 73 65 72 20 24 67 6c 6f 62 61 poser.$composer,.Composer.$globa
84f00 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e lComposer.=.null,.$disablePlugin
84f20 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 s.=.false).{.$this->io.=.$io;.$t
84f40 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 his->composer.=.$composer;.$this
84f60 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 ->globalComposer.=.$globalCompos
84f80 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 20 6e 65 77 20 56 er;.$this->versionParser.=.new.V
84fa0 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 6c ersionParser();.$this->disablePl
84fc0 75 67 69 6e 73 20 3d 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 ugins.=.$disablePlugins;.}.....p
84fe0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 73 74 61 6c 6c 65 64 50 6c 75 67 ublic.function.loadInstalledPlug
85000 69 6e 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e ins().{.if.($this->disablePlugin
85020 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 63 s).{.return;.}..$repo.=.$this->c
85040 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 2d omposer->getRepositoryManager()-
85060 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 6c 6f 62 61 6c 52 65 >getLocalRepository();.$globalRe
85080 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 72 20 3f 20 24 74 68 po.=.$this->globalComposer.?.$th
850a0 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 70 6f 73 69 74 6f 72 is->globalComposer->getRepositor
850c0 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 yManager()->getLocalRepository()
850e0 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 69 73 2d 3e 6c 6f 61 .:.null;.if.($repo).{.$this->loa
85100 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 28 24 67 6c 6f 62 61 dRepository($repo);.}.if.($globa
85120 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 69 74 6f 72 79 28 24 lRepo).{.$this->loadRepository($
85140 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 62 6c 69 63 20 66 75 globalRepo);.}.}.......public.fu
85160 6e 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 nction.getPlugins().{.return.$th
85180 69 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 is->plugins;.}.............publi
851a0 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 c.function.registerPackage(Packa
851c0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 66 61 69 6c 4f 6e 4d 69 73 geInterface.$package,.$failOnMis
851e0 73 69 6e 67 43 6c 61 73 73 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 singClasses.=.false).{.if.($this
85200 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 ->disablePlugins).{.return;.}..$
85220 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 50 6c 75 67 69 6e 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e oldInstallerPlugin.=.($package->
85240 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 getType().===.'composer-installe
85260 72 27 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 r');..if.(in_array($package->get
85280 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 65 64 50 6c 75 67 69 6e 73 Name(),.$this->registeredPlugins
852a0 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 )).{.return;.}..$extra.=.$packag
852c0 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 5b e->getExtra();.if.(empty($extra[
852e0 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 74 'class'])).{.throw.new.\Unexpect
85300 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 6e edValueException('Error.while.in
85320 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 61 stalling.'.$package->getPrettyNa
85340 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 73 me().',.composer-plugin.packages
85360 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 20 .should.have.a.class.defined.in.
85380 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 3b their.extra.key.to.be.usable.');
853a0 0a 7d 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 .}.$classes.=.is_array($extra['c
853c0 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 20 3a 20 61 72 72 61 lass']).?.$extra['class'].:.arra
853e0 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 y($extra['class']);..$localRepo.
85400 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 =.$this->composer->getRepository
85420 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();
85440 0a 24 67 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 .$globalRepo.=.$this->globalComp
85460 6f 73 65 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 oser.?.$this->globalComposer->ge
85480 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 65 tRepositoryManager()->getLocalRe
854a0 70 6f 73 69 74 6f 72 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 pository().:.null;..$pool.=.new.
854c0 50 6f 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 Pool('dev');.$pool->addRepositor
854e0 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 69 66 20 28 24 67 6c 6f 62 61 6c 52 65 70 6f 29 20 y($localRepo);.if.($globalRepo).
85500 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 67 6c 6f 62 61 6c 52 65 {.$pool->addRepository($globalRe
85520 70 6f 29 3b 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 po);.}..$autoloadPackages.=.arra
85540 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 y($package->getName().=>.$packag
85560 65 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 e);.$autoloadPackages.=.$this->c
85580 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c 20 24 61 75 74 6f 6c ollectDependencies($pool,.$autol
855a0 6f 61 64 50 61 63 6b 61 67 65 73 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 67 65 6e 65 72 61 oadPackages,.$package);..$genera
855c0 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f tor.=.$this->composer->getAutolo
855e0 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 adGenerator();.$autoloads.=.arra
85600 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 y();.foreach.($autoloadPackages.
85620 61 73 20 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 as.$autoloadPackage).{.$download
85640 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 61 75 Path.=.$this->getInstallPath($au
85660 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 28 24 67 6c 6f 62 61 6c 52 65 70 6f 20 26 26 20 24 toloadPackage,.($globalRepo.&&.$
85680 67 6c 6f 62 61 6c 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 61 75 74 6f 6c 6f 61 64 globalRepo->hasPackage($autoload
856a0 50 61 63 6b 61 67 65 29 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 5d 20 3d 20 61 72 72 61 79 Package)));.$autoloads[].=.array
856c0 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 ($autoloadPackage,.$downloadPath
856e0 29 3b 0a 7d 0a 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 );.}..$map.=.$generator->parseAu
85700 74 6f 6c 6f 61 64 73 28 24 61 75 74 6f 6c 6f 61 64 73 2c 20 6e 65 77 20 50 61 63 6b 61 67 65 28 toloads($autoloads,.new.Package(
85720 27 64 75 6d 6d 79 27 2c 20 27 31 2e 30 2e 30 2e 30 27 2c 20 27 31 2e 30 2e 30 27 29 29 3b 0a 24 'dummy',.'1.0.0.0',.'1.0.0'));.$
85740 63 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 classLoader.=.$generator->create
85760 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 72 65 67 69 Loader($map);.$classLoader->regi
85780 73 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 ster();..foreach.($classes.as.$c
857a0 6c 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 2c lass).{.if.(class_exists($class,
857c0 20 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 .false)).{.$code.=.file_get_cont
857e0 65 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 ents($classLoader->findFile($cla
85800 73 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 28 ss));.$code.=.preg_replace('{^((
85820 3f 3a 66 69 6e 61 6c 5c 73 2b 29 3f 28 3f 3a 5c 73 2a 29 29 63 6c 61 73 73 5c 73 2b 28 5c 53 2b ?:final\s+)?(?:\s*))class\s+(\S+
85840 29 7d 6d 69 27 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 )}mi',.'$1class.$2_composer_tmp'
85860 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 .self::$classCounter,.$code);.ev
85880 61 6c 28 27 3f 3e 27 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 al('?>'.$code);.$class..=.'_comp
858a0 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 3b 0a 73 oser_tmp'.self::$classCounter;.s
858c0 65 6c 66 3a 3a 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 elf::$classCounter++;.}..if.($ol
858e0 64 49 6e 73 74 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 dInstallerPlugin).{.$installer.=
85900 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f .new.$class($this->io,.$this->co
85920 6d 70 6f 73 65 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 mposer);.$this->composer->getIns
85940 74 61 6c 6c 61 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 tallationManager()->addInstaller
85960 28 24 69 6e 73 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 ($installer);.}.elseif.(class_ex
85980 69 73 74 73 28 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 ists($class)).{.$plugin.=.new.$c
859a0 6c 61 73 73 28 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 lass();.$this->addPlugin($plugin
859c0 29 3b 0a 24 74 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 );.$this->registeredPlugins[].=.
859e0 24 70 61 63 6b 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 $package->getName();.}.elseif.($
85a00 66 61 69 6c 4f 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 failOnMissingClasses).{.throw.ne
85a20 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 6c 75 w.\UnexpectedValueException('Plu
85a40 67 69 6e 20 27 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 gin.'.$package->getName().'.coul
85a60 64 20 6e 6f 74 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 d.not.be.initialized,.class.not.
85a80 66 6f 75 6e 64 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 70 72 found:.'.$class);.}.}.}.......pr
85aa0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 75 67 69 6e 41 70 69 56 65 72 otected.function.getPluginApiVer
85ac0 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3a sion().{.return.PluginInterface:
85ae0 3a 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 :PLUGIN_API_VERSION;.}.......pri
85b00 76 61 74 65 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 vate.function.addPlugin(PluginIn
85b20 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
85b40 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
85b60 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
85b80 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[].=
85ba0 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
85bc0 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
85be0 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
85c00 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
85c20 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
85c40 72 28 24 70 6c 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 r($plugin);.}.}.............priv
85c60 61 74 65 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 ate.function.loadRepository(Repo
85c80 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a 66 6f 72 65 61 63 68 sitoryInterface.$repo).{.foreach
85ca0 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 .($repo->getPackages().as.$packa
85cc0 67 65 29 20 7b 20 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 ge).{..if.($package.instanceof.A
85ce0 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 27 liasPackage).{.continue;.}.if.('
85d00 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 composer-plugin'.===.$package->g
85d20 65 74 54 79 70 65 28 29 29 20 7b 0a 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 20 3d 20 etType()).{.$requiresComposer.=.
85d40 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 null;.foreach.($package->getRequ
85d60 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 20 0a 69 66 20 28 27 63 6f 6d 70 6f 73 65 ires().as.$link).{..if.('compose
85d80 72 2d 70 6c 75 67 69 6e 2d 61 70 69 27 20 3d 3d 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 r-plugin-api'.===.$link->getTarg
85da0 65 74 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 24 6c 69 6e et()).{.$requiresComposer.=.$lin
85dc0 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a k->getConstraint();.break;.}.}..
85de0 69 66 20 28 21 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 29 20 7b 0a 74 68 72 6f 77 20 if.(!$requiresComposer).{.throw.
85e00 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 50 6c 75 67 69 6e 20 22 2e new.\RuntimeException("Plugin.".
85e20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 20 69 73 20 6d 69 73 73 69 6e 67 $package->getName().".is.missing
85e40 20 61 20 72 65 71 75 69 72 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 72 20 61 20 76 65 72 73 69 .a.require.statement.for.a.versi
85e60 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 20 70 61 on.of.the.composer-plugin-api.pa
85e80 63 6b 61 67 65 2e 22 29 3b 0a 7d 0a 0a 24 63 75 72 72 65 6e 74 50 6c 75 67 69 6e 41 70 69 56 65 ckage.");.}..$currentPluginApiVe
85ea0 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 6c 75 67 69 6e 41 70 69 56 65 72 73 69 rsion.=.$this->getPluginApiVersi
85ec0 6f 6e 28 29 3b 0a 24 63 75 72 72 65 6e 74 50 6c 75 67 69 6e 41 70 69 43 6f 6e 73 74 72 61 69 6e on();.$currentPluginApiConstrain
85ee0 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 74 68 69 73 2d 3e t.=.new.Constraint('==',.$this->
85f00 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 63 75 72 72 65 6e versionParser->normalize($curren
85f20 74 50 6c 75 67 69 6e 41 70 69 56 65 72 73 69 6f 6e 29 29 3b 0a 0a 69 66 20 28 21 24 72 65 71 75 tPluginApiVersion));..if.(!$requ
85f40 69 72 65 73 43 6f 6d 70 6f 73 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 63 75 72 72 65 6e 74 50 6c iresComposer->matches($currentPl
85f60 75 67 69 6e 41 70 69 43 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d uginApiConstraint)).{.$this->io-
85f80 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 54 68 65 20 22 27 20 2e 20 24 >writeError('<warning>The."'...$
85fa0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 22 20 70 6c 75 67 69 6e 20 77 package->getName()...'".plugin.w
85fc0 61 73 20 73 6b 69 70 70 65 64 20 62 65 63 61 75 73 65 20 69 74 20 72 65 71 75 69 72 65 73 20 61 as.skipped.because.it.requires.a
85fe0 20 50 6c 75 67 69 6e 20 41 50 49 20 76 65 72 73 69 6f 6e 20 28 22 27 20 2e 20 24 72 65 71 75 69 .Plugin.API.version.("'...$requi
86000 72 65 73 43 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 20 2e resComposer->getPrettyString()..
86020 20 27 22 29 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 79 6f 75 72 20 43 6f .'").that.does.not.match.your.Co
86040 6d 70 6f 73 65 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 28 22 27 20 2e 20 24 63 75 72 72 65 mposer.installation.("'...$curre
86060 6e 74 50 6c 75 67 69 6e 41 70 69 56 65 72 73 69 6f 6e 20 2e 20 27 22 29 2e 20 59 6f 75 20 6d 61 ntPluginApiVersion...'")..You.ma
86080 79 20 6e 65 65 64 20 74 6f 20 72 75 6e 20 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 20 77 69 y.need.to.run.composer.update.wi
860a0 74 68 20 74 68 65 20 22 2d 2d 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 6f 70 74 69 6f 6e 2e 3c 2f 77 th.the."--no-plugins".option.</w
860c0 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 arning>');.continue;.}..$this->r
860e0 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 7d 20 65 egisterPackage($package);....}.e
86100 6c 73 65 69 66 20 28 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 3d 3d 3d 20 lseif.('composer-installer'.===.
86120 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 $package->getType()).{.$this->re
86140 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 7d 0a 7d 0a 0a gisterPackage($package);.}.}.}..
86160 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 6f 6c 6c 65 63 .........private.function.collec
86180 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 tDependencies(Pool.$pool,.array.
861a0 24 63 6f 6c 6c 65 63 74 65 64 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 $collected,.PackageInterface.$pa
861c0 63 6b 61 67 65 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 ckage).{.$requires.=.array_merge
861e0 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 0a 24 70 61 63 6b (.$package->getRequires(),.$pack
86200 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 66 6f 72 65 61 63 age->getDevRequires().);..foreac
86220 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 4c 69 6e 6b 29 20 7b 0a h.($requires.as.$requireLink).{.
86240 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 $requiredPackage.=.$this->lookup
86260 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 6f 6f 6c 2c 20 24 72 65 71 75 69 72 65 InstalledPackage($pool,.$require
86280 4c 69 6e 6b 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 Link);.if.($requiredPackage.&&.!
862a0 69 73 73 65 74 28 24 63 6f 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 isset($collected[$requiredPackag
862c0 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 65 64 5b 24 72 65 e->getName()])).{.$collected[$re
862e0 71 75 69 72 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 72 65 71 quiredPackage->getName()].=.$req
86300 75 69 72 65 64 50 61 63 6b 61 67 65 3b 0a 24 63 6f 6c 6c 65 63 74 65 64 20 3d 20 24 74 68 69 73 uiredPackage;.$collected.=.$this
86320 2d 3e 63 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c 20 24 63 6f ->collectDependencies($pool,.$co
86340 6c 6c 65 63 74 65 64 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a llected,.$requiredPackage);.}.}.
86360 0a 72 65 74 75 72 6e 20 24 63 6f 6c 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .return.$collected;.}...........
86380 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 75 70 49 6e 73 74 61 6c 6c 65 .private.function.lookupInstalle
863a0 64 50 61 63 6b 61 67 65 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 4c 69 6e 6b 20 24 6c 69 6e 6b 29 dPackage(Pool.$pool,.Link.$link)
863c0 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 .{.$packages.=.$pool->whatProvid
863e0 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 es($link->getTarget(),.$link->ge
86400 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 21 65 6d 70 74 79 28 tConstraint());..return.(!empty(
86420 24 70 61 63 6b 61 67 65 73 29 29 20 3f 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 20 3a 20 6e 75 6c $packages)).?.$packages[0].:.nul
86440 6c 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 67 l;.}..........private.function.g
86460 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 etInstallPath(PackageInterface.$
86480 70 61 63 6b 61 67 65 2c 20 24 67 6c 6f 62 61 6c 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 package,.$global.=.false).{.if.(
864a0 21 24 67 6c 6f 62 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 !$global).{.return.$this->compos
864c0 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 67 65 er->getInstallationManager()->ge
864e0 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 72 65 74 75 72 tInstallPath($package);.}..retur
86500 6e 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 49 6e 73 74 n.$this->globalComposer->getInst
86520 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 allationManager()->getInstallPat
86540 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a h($package);.}.}.<?php..........
86560 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 73 ..namespace.Composer\Plugin;..us
86580 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 74 e.Composer\EventDispatcher\Event
865a0 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
865c0 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 6c 6f 61 stem;.......class.PreFileDownloa
865e0 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 76 61 74 dEvent.extends.Event.{....privat
86600 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 64 55 72 e.$rfs;.....private.$processedUr
86620 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 63 6f 6e l;.........public.function.__con
86640 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 6d 20 24 struct($name,.RemoteFilesystem.$
86660 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 3a 5f 5f rfs,.$processedUrl).{.parent::__
86680 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 3d 20 24 construct($name);.$this->rfs.=.$
866a0 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 72 6f 63 rfs;.$this->processedUrl.=.$proc
866c0 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 74 69 6f essedUrl;.}.......public.functio
866e0 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 75 72 6e n.getRemoteFilesystem().{.return
86700 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 75 6e 63 .$this->rfs;.}.......public.func
86720 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 74 65 46 tion.setRemoteFilesystem(RemoteF
86740 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 ilesystem.$rfs).{.$this->rfs.=.$
86760 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 67 65 74 rfs;.}.......public.function.get
86780 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 2d 3e 70 ProcessedUrl().{.return.$this->p
867a0 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 0a 0a 0a rocessedUrl;.}.}.<?php..........
867c0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b ..namespace.Composer\Repository;
867e0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b ..use.Composer\Package\AliasPack
86800 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 age;.use.Composer\Package\Packag
86820 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
86840 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 20 43 \CompletePackageInterface;.use.C
86860 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 omposer\Semver\VersionParser;.us
86880 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e e.Composer\Semver\Constraint\Con
868a0 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 straintInterface;.use.Composer\S
868c0 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a emver\Constraint\Constraint;....
868e0 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 69 6d 70 6c 65 6d 65 ...class.ArrayRepository.impleme
86900 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 0a 0a 70 72 6f 74 65 nts.RepositoryInterface.{..prote
86920 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 6e 63 74 69 6f 6e cted.$packages;..public.function
86940 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 65 73 20 3d 20 61 .__construct(array.$packages.=.a
86960 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 65 73 20 61 73 20 rray()).{.foreach.($packages.as.
86980 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 70 $package).{.$this->addPackage($p
869a0 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 6f 6e ackage);.}.}.....public.function
869c0 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 .findPackage($name,.$constraint)
869e0 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 29 3b 0a 0a 69 .{.$name.=.strtolower($name);..i
86a00 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 74 f.(!$constraint.instanceof.Const
86a20 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 raintInterface).{.$versionParser
86a40 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 73 74 72 61 .=.new.VersionParser();.$constra
86a60 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 43 6f 6e 73 74 int.=.$versionParser->parseConst
86a80 72 61 69 6e 74 73 28 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 raints($constraint);.}..foreach.
86aa0 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 61 67 ($this->getPackages().as.$packag
86ac0 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 65 74 e).{.if.($name.===.$package->get
86ae0 4e 61 6d 65 28 29 29 20 7b 0a 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 Name()).{.$pkgConstraint.=.new.C
86b00 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 onstraint('==',.$package->getVer
86b20 73 69 6f 6e 28 29 29 3b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 sion());.if.($constraint->matche
86b40 73 28 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 s($pkgConstraint)).{.return.$pac
86b60 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f kage;.}.}.}.}.....public.functio
86b80 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e n.findPackages($name,.$constrain
86ba0 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 t.=.null).{...$name.=.strtolower
86bc0 28 24 6e 61 6d 65 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 ($name);.$packages.=.array();..i
86be0 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 26 26 20 21 24 63 6f 6e f.(null.!==.$constraint.&&.!$con
86c00 73 74 72 61 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 straint.instanceof.ConstraintInt
86c20 65 72 66 61 63 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 erface).{.$versionParser.=.new.V
86c40 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 ersionParser();.$constraint.=.$v
86c60 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 ersionParser->parseConstraints($
86c80 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 2d 3e constraint);.}..foreach.($this->
86ca0 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 getPackages().as.$package).{.if.
86cc0 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 ($name.===.$package->getName()).
86ce0 7b 0a 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e {.$pkgConstraint.=.new.Constrain
86d00 74 28 27 3d 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 3b t('==',.$package->getVersion());
86d20 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 7c 7c 20 24 63 6f .if.(null.===.$constraint.||.$co
86d40 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 nstraint->matches($pkgConstraint
86d60 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;.}.}
86d80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .}..return.$packages;.}.....publ
86da0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 ic.function.search($query,.$mode
86dc0 20 3d 20 30 29 0a 7b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 6c 6f 64 65 28 .=.0).{.$regex.=.'{(?:'.implode(
86de0 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 75 65 72 79 29 '|',.preg_split('{\s+}',.$query)
86e00 29 2e 27 29 7d 69 27 3b 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f ).')}i';..$matches.=.array();.fo
86e20 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 reach.($this->getPackages().as.$
86e40 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 package).{.$name.=.$package->get
86e60 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 6e 61 6d 65 Name();.if.(isset($matches[$name
86e80 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 ])).{.continue;.}.if.(preg_match
86ea0 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 0a 7c 7c 20 28 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 ($regex,.$name).||.($mode.===.se
86ec0 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 20 26 26 20 24 70 61 63 6b 61 67 65 20 lf::SEARCH_FULLTEXT.&&.$package.
86ee0 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 66 instanceof.CompletePackageInterf
86f00 61 63 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 69 6d 70 6c 6f 64 ace.&&.preg_match($regex,.implod
86f20 65 28 27 20 27 2c 20 28 61 72 72 61 79 29 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 e('.',.(array).$package->getKeyw
86f40 6f 72 64 73 28 29 29 20 2e 20 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 ords())...'.'...$package->getDes
86f60 63 72 69 70 74 69 6f 6e 28 29 29 29 0a 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 6e 61 6d 65 5d cription())).).{.$matches[$name]
86f80 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 .=.array(.'name'.=>.$package->ge
86fa0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 tPrettyName(),.'description'.=>.
86fc0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 29 3b 0a 7d $package->getDescription(),.);.}
86fe0 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 6d 61 74 63 68 65 73 .}..return.array_values($matches
87000 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 50 61 63 6b );.}.....public.function.hasPack
87020 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b age(PackageInterface.$package).{
87040 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 .$packageId.=.$package->getUniqu
87060 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 eName();..foreach.($this->getPac
87080 6b 61 67 65 73 28 29 20 61 73 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 kages().as.$repoPackage).{.if.($
870a0 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 packageId.===.$repoPackage->getU
870c0 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a niqueName()).{.return.true;.}.}.
870e0 0a 72 65 74 75 72 6e 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 .return.false;.}.......public.fu
87100 6e 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 nction.addPackage(PackageInterfa
87120 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 ce.$package).{.if.(null.===.$thi
87140 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 s->packages).{.$this->initialize
87160 28 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 ();.}.$package->setRepository($t
87180 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 his);.$this->packages[].=.$packa
871a0 67 65 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 ge;..if.($package.instanceof.Ali
871c0 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 20 3d 20 24 asPackage).{.$aliasedPackage.=.$
871e0 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 package->getAliasOf();.if.(null.
87200 3d 3d 3d 20 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ===.$aliasedPackage->getReposito
87220 72 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 ry()).{.$this->addPackage($alias
87240 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e edPackage);.}.}.}..protected.fun
87260 63 74 69 6f 6e 20 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 ction.createAliasPackage(Package
87280 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c 20 24 70 72 65 Interface.$package,.$alias,.$pre
872a0 74 74 79 41 6c 69 61 73 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b ttyAlias).{.return.new.AliasPack
872c0 61 67 65 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 age($package.instanceof.AliasPac
872e0 6b 61 67 65 20 3f 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3a 20 kage.?.$package->getAliasOf().:.
87300 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 3b $package,.$alias,.$prettyAlias);
87320 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 .}.......public.function.removeP
87340 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 ackage(PackageInterface.$package
87360 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e ).{.$packageId.=.$package->getUn
87380 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 iqueName();..foreach.($this->get
873a0 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 70 6f 50 61 63 6b 61 Packages().as.$key.=>.$repoPacka
873c0 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 ge).{.if.($packageId.===.$repoPa
873e0 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 61 72 72 61 79 5f ckage->getUniqueName()).{.array_
87400 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 24 6b 65 79 2c 20 31 29 splice($this->packages,.$key,.1)
87420 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ;..return;.}.}.}.....public.func
87440 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 6e 75 6c 6c 20 3d 3d tion.getPackages().{.if.(null.==
87460 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 =.$this->packages).{.$this->init
87480 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 ialize();.}..return.$this->packa
874a0 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 63 6f 75 ges;.}.......public.function.cou
874c0 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 nt().{.return.count($this->packa
874e0 67 65 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 69 ges);.}.....protected.function.i
87500 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 nitialize().{.$this->packages.=.
87520 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 array();.}.}.<?php............na
87540 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 mespace.Composer\Repository;..us
87560 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
87580 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
875a0 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 3b 0a ser\Package\Loader\ArrayLoader;.
875c0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 4c 6f 61 64 use.Composer\Package\Loader\Load
875e0 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 74 69 66 61 63 74 52 erInterface;.....class.ArtifactR
87600 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 epository.extends.ArrayRepositor
87620 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 66 69 67 75 72 61 62 6c 65 52 65 70 6f 73 69 74 y.implements.ConfigurableReposit
87640 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 oryInterface.{..protected.$loade
87660 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 6f 6b 75 70 3b 0a 70 72 6f 74 65 63 74 65 64 r;..protected.$lookup;.protected
87680 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f .$repoConfig;..public.function._
876a0 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 4f _construct(array.$repoConfig,.IO
876c0 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f Interface.$io).{.if.(!extension_
876e0 6c 6f 61 64 65 64 28 27 7a 69 70 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 loaded('zip')).{.throw.new.\Runt
87700 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 61 72 74 69 66 61 63 74 20 72 65 70 6f 73 imeException('The.artifact.repos
87720 69 74 6f 72 79 20 72 65 71 75 69 72 65 73 20 50 48 50 5c 27 73 20 7a 69 70 20 65 78 74 65 6e 73 itory.requires.PHP\'s.zip.extens
87740 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 ion');.}..$this->loader.=.new.Ar
87760 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 20 3d 20 24 72 65 rayLoader();.$this->lookup.=.$re
87780 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f poConfig['url'];.$this->io.=.$io
877a0 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 ;.$this->repoConfig.=.$repoConfi
877c0 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 52 65 70 6f 43 6f 6e g;.}..public.function.getRepoCon
877e0 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 fig().{.return.$this->repoConfig
87800 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 ;.}..protected.function.initiali
87820 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 ze().{.parent::initialize();..$t
87840 68 69 73 2d 3e 73 63 61 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 his->scanDirectory($this->lookup
87860 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6e 44 69 72 65 63 );.}..private.function.scanDirec
87880 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 0a tory($path).{.$io.=.$this->io;..
878a0 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 $directory.=.new.\RecursiveDirec
878c0 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 70 61 74 68 2c 20 5c 52 65 63 75 72 73 69 76 65 44 69 toryIterator($path,.\RecursiveDi
878e0 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 49 4e 4b 53 rectoryIterator::FOLLOW_SYMLINKS
87900 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 76 65 49 74 65 );.$iterator.=.new.\RecursiveIte
87920 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 24 72 65 67 65 ratorIterator($directory);.$rege
87940 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 72 61 74 6f 72 x.=.new.\RegexIterator($iterator
87960 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 6f 72 65 61 63 ,.'/^.+\.(zip|phar)$/i');.foreac
87980 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 21 24 66 69 6c h.($regex.as.$file).{..if.(!$fil
879a0 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 0a 24 70 61 63 e->isFile()).{.continue;.}..$pac
879c0 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 66 6f 72 6d 61 kage.=.$this->getComposerInforma
879e0 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 20 7b 0a 69 66 tion($file);.if.(!$package).{.if
87a00 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 .($io->isVerbose()).{.$io->write
87a20 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 2d 3e 67 65 74 Error("File.<comment>{$file->get
87a40 42 61 73 65 6e 61 6d 65 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 64 6f 65 73 6e 27 74 20 73 65 Basename()}</comment>.doesn't.se
87a60 65 6d 20 74 6f 20 68 6f 6c 64 20 61 20 70 61 63 6b 61 67 65 22 29 3b 0a 7d 0a 63 6f 6e 74 69 6e em.to.hold.a.package");.}.contin
87a80 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 ue;.}..if.($io->isVerbose()).{.$
87aa0 74 65 6d 70 6c 61 74 65 20 3d 20 27 46 6f 75 6e 64 20 70 61 63 6b 61 67 65 20 3c 69 6e 66 6f 3e template.=.'Found.package.<info>
87ac0 25 73 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e %s</info>.(<comment>%s</comment>
87ae0 29 20 69 6e 20 66 69 6c 65 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 3b 0a 24 69 6f 2d ).in.file.<info>%s</info>';.$io-
87b00 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 74 65 2c 20 24 >writeError(sprintf($template,.$
87b20 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 package->getName(),.$package->ge
87b40 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 74 42 61 73 65 tPrettyVersion(),.$file->getBase
87b60 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 61 67 65 28 24 name()));.}..$this->addPackage($
87b80 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
87ba0 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 76 65 20 24 7a nction.locateFile(\ZipArchive.$z
87bc0 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 6f 72 74 65 73 ip,.$filename).{.$indexOfShortes
87be0 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 6f 72 74 65 73 tMatch.=.false;.$lengthOfShortes
87c00 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 24 69 20 3c 20 tMatch.=.-1;..for.($i.=.0;.$i.<.
87c20 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 61 74 20 3d 20 $zip->numFiles;.$i++).{.$stat.=.
87c40 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 72 63 6d 70 28 $zip->statIndex($i);.if.(strcmp(
87c60 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 69 6c 65 6e 61 basename($stat['name']),.$filena
87c80 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 20 3d 20 64 69 me).===.0).{.$directoryName.=.di
87ca0 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 64 69 72 65 63 rname($stat['name']);.if.($direc
87cc0 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 72 6e 20 24 69 toryName.==.'.').{.....return.$i
87ce0 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 61 6d 65 2c 20 ;.}..if.(strpos($directoryName,.
87d00 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 64 69 72 65 63 '\\').!==.false.||.strpos($direc
87d20 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 0a 0a 20 63 6f toryName,.'/').!==.false).{...co
87d40 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 28 24 73 74 61 ntinue;.}..$length.=.strlen($sta
87d60 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 72 74 65 73 74 t['name']);.if.($indexOfShortest
87d80 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 20 24 6c 65 6e Match.==.false.||.$length.<.$len
87da0 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 6e 74 65 6e 74 gthOfShortestMatch).{...$content
87dc0 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 0a 69 66 20 28 s.=.$zip->getFromIndex($i);.if.(
87de0 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 65 78 4f 66 53 $contents.!==.false).{.$indexOfS
87e00 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 66 53 68 6f 72 hortestMatch.=.$i;.$lengthOfShor
87e20 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 7d 0a 0a 72 65 testMatch.=.$length;.}.}.}.}..re
87e40 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 0a 7d 0a 0a 70 turn.$indexOfShortestMatch;.}..p
87e60 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 49 6e 66 6f 72 rivate.function.getComposerInfor
87e80 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 7b 0a 24 7a 69 mation(\SplFileInfo.$file).{.$zi
87ea0 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 2d 3e 6f 70 65 p.=.new.\ZipArchive();.$zip->ope
87ec0 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 66 20 28 30 20 n($file->getPathname());..if.(0.
87ee0 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 20 66 61 6c 73 ==.$zip->numFiles).{.return.fals
87f00 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 69 73 2d 3e 6c e;.}..$foundFileIndex.=.$this->l
87f20 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 73 6f 6e 27 29 ocateFile($zip,.'composer.json')
87f40 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 6e 64 65 78 29 ;.if.(false.===.$foundFileIndex)
87f60 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 75 72 61 74 69 .{.return.false;.}..$configurati
87f80 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 6e 64 65 78 28 onFileName.=.$zip->getNameIndex(
87fa0 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 72 46 69 6c 65 $foundFileIndex);..$composerFile
87fc0 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 6d 65 28 29 7d .=."zip://{$file->getPathname()}
87fe0 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 6a 73 6f 6e 20 #$configurationFileName";.$json.
88000 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 65 72 46 69 6c =.file_get_contents($composerFil
88020 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 61 72 73 65 4a e);..$package.=.JsonFile::parseJ
88040 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 24 70 61 63 6b son($json,.$composerFile);.$pack
88060 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 20 3d 3e 20 27 age['dist'].=.array(.'type'.=>.'
88080 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 74 68 6e 61 6d zip',.'url'.=>.$file->getPathnam
880a0 65 28 29 2c 0a 27 73 68 61 73 75 6d 27 20 3d 3e 20 73 68 61 31 5f 66 69 6c 65 28 24 66 69 6c 65 e(),.'shasum'.=>.sha1_file($file
880c0 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 2c 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d ->getRealPath()),.);..$package.=
880e0 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a .$this->loader->load($package);.
88100 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .return.$package;.}.}.<?php.....
88120 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 .......namespace.Composer\Reposi
88140 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 tory;..use.Composer\Package\Load
88160 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 er\ArrayLoader;.use.Composer\Pac
88180 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 6f kage\PackageInterface;.use.Compo
881a0 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
881c0 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 mposer\Semver\VersionParser;.use
881e0 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 6f .Composer\DependencyResolver\Poo
88200 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 l;.use.Composer\Json\JsonFile;.u
88220 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c se.Composer\Cache;.use.Composer\
88240 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 Config;.use.Composer\IO\IOInterf
88260 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c ace;.use.Composer\Util\RemoteFil
88280 65 73 79 73 74 65 6d 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 esystem;.use.Composer\Plugin\Plu
882a0 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 ginEvents;.use.Composer\Plugin\P
882c0 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 reFileDownloadEvent;.use.Compose
882e0 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 65 r\EventDispatcher\EventDispatche
88300 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e r;.use.Composer\Semver\Constrain
88320 74 5c 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f t\ConstraintInterface;.use.Compo
88340 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 ser\Semver\Constraint\Constraint
88360 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 65 ;.....class.ComposerRepository.e
88380 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 xtends.ArrayRepository.implement
883a0 73 20 43 6f 6e 66 69 67 75 72 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 s.ConfigurableRepositoryInterfac
883c0 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 e.{.protected.$config;.protected
883e0 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 .$repoConfig;.protected.$options
88400 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 ;.protected.$url;.protected.$bas
88420 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 eUrl;.protected.$io;.protected.$
88440 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 rfs;.protected.$cache;.protected
88460 20 24 6e 6f 74 69 66 79 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 61 72 63 68 55 72 .$notifyUrl;.protected.$searchUr
88480 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 66 61 6c l;.protected.$hasProviders.=.fal
884a0 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f se;.protected.$providersUrl;.pro
884c0 74 65 63 74 65 64 20 24 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 tected.$lazyProvidersUrl;.protec
884e0 74 65 64 20 24 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 ted.$providerListing;.protected.
88500 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 $providers.=.array();.protected.
88520 24 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 $providersByUid.=.array();.prote
88540 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 cted.$loader;.protected.$rootAli
88560 61 73 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 ases;.protected.$allowSslDowngra
88580 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 de.=.false;.protected.$eventDisp
885a0 61 74 63 68 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 atcher;.protected.$sourceMirrors
885c0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 4d 69 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 ;.protected.$distMirrors;.privat
885e0 65 20 24 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 e.$degradedMode.=.false;.private
88600 20 24 72 6f 6f 74 44 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 .$rootData;..public.function.__c
88620 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 4f 49 6e onstruct(array.$repoConfig,.IOIn
88640 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 45 76 65 terface.$io,.Config.$config,.Eve
88660 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 20 3d 20 ntDispatcher.$eventDispatcher.=.
88680 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2e 5d null).{.if.(!preg_match('{^[\w.]
886a0 2b 5c 3f 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 +\??://}',.$repoConfig['url'])).
886c0 7b 0a 0a 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f {...$repoConfig['url'].=.'http:/
886e0 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 24 72 65 70 6f 43 6f /'.$repoConfig['url'];.}.$repoCo
88700 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b nfig['url'].=.rtrim($repoConfig[
88720 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 27 68 74 74 70 73 3f 27 20 3d 3d 3d 20 'url'],.'/');..if.('https?'.===.
88740 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 30 2c 20 36 29 substr($repoConfig['url'],.0,.6)
88760 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 28 65 78 74 65 6e 73 ).{.$repoConfig['url'].=.(extens
88780 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 ion_loaded('openssl').?.'https'.
887a0 3a 20 27 68 74 74 70 27 29 20 2e 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 :.'http')...substr($repoConfig['
887c0 75 72 6c 27 5d 2c 20 36 29 3b 0a 7d 0a 0a 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 url'],.6);.}..$urlBits.=.parse_u
887e0 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 24 75 72 6c rl($repoConfig['url']);.if.($url
88800 42 69 74 73 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 Bits.===.false.||.empty($urlBits
88820 5b 27 73 63 68 65 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 ['scheme'])).{.throw.new.\Unexpe
88840 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 ctedValueException('Invalid.url.
88860 67 69 76 65 6e 20 66 6f 72 20 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 given.for.Composer.repository:.'
88880 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 69 66 20 28 21 69 73 .$repoConfig['url']);.}..if.(!is
888a0 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 set($repoConfig['options'])).{.$
888c0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 20 3d 20 61 72 72 61 79 28 29 3b repoConfig['options'].=.array();
888e0 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 61 6c 6c 6f 77 5f .}.if.(isset($repoConfig['allow_
88900 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 26 26 20 74 72 75 65 20 3d 3d 3d 20 24 72 65 ssl_downgrade']).&&.true.===.$re
88920 70 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 poConfig['allow_ssl_downgrade'])
88940 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 74 72 .{.$this->allowSslDowngrade.=.tr
88960 75 65 3b 0a 7d 0a 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 ue;.}..$this->config.=.$config;.
88980 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 $this->options.=.$repoConfig['op
889a0 74 69 6f 6e 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 tions'];.$this->url.=.$repoConfi
889c0 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d g['url'];.$this->baseUrl.=.rtrim
889e0 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 2e 2a 29 28 3f 3a 2f 5b 5e 2f 5c 5c 5d 2b (preg_replace('{^(.*)(?:/[^/\\]+
88a00 2e 6a 73 6f 6e 29 3f 28 3f 3a 5b 3f 23 5d 2e 2a 29 3f 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 68 .json)?(?:[?#].*)?$}',.'$1',.$th
88a20 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b is->url),.'/');.$this->io.=.$io;
88a40 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 69 6f 2c 20 24 .$this->cache.=.new.Cache($io,.$
88a60 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 27 2f config->get('cache-repo-dir').'/
88a80 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 '.preg_replace('{[^a-z0-9.]}i',.
88aa0 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 61 2d 7a 30 2d 39 2e 24 27 29 3b 0a 24 '-',.$this->url),.'a-z0-9.$');.$
88ac0 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 this->loader.=.new.ArrayLoader()
88ae0 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 ;.$this->rfs.=.new.RemoteFilesys
88b00 74 65 6d 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 tem($this->io,.$this->config,.$t
88b20 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 his->options);.$this->eventDispa
88b40 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d tcher.=.$eventDispatcher;.$this-
88b60 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 >repoConfig.=.$repoConfig;.}..pu
88b80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 29 0a 7b 0a blic.function.getRepoConfig().{.
88ba0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 return.$this->repoConfig;.}..pub
88bc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 61 72 72 61 lic.function.setRootAliases(arra
88be0 79 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 y.$rootAliases).{.$this->rootAli
88c00 61 73 65 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ases.=.$rootAliases;.}.....publi
88c20 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 c.function.findPackage($name,.$c
88c40 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 onstraint).{.if.(!$this->hasProv
88c60 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 3a 66 69 6e 64 50 61 iders()).{.return.parent::findPa
88c80 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 24 6e ckage($name,.$constraint);.}..$n
88ca0 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 69 66 20 28 21 24 63 ame.=.strtolower($name);.if.(!$c
88cc0 6f 6e 73 74 72 61 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 74 72 61 69 6e 74 49 onstraint.instanceof.ConstraintI
88ce0 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 nterface).{.$versionParser.=.new
88d00 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 .VersionParser();.$constraint.=.
88d20 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 74 73 $versionParser->parseConstraints
88d40 28 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
88d60 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 70 72 6f 76 69 64 65 ->getProviderNames().as.$provide
88d80 72 4e 61 6d 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 rName).{.if.($name.===.$provider
88da0 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 77 68 61 74 50 Name).{.$packages.=.$this->whatP
88dc0 72 6f 76 69 64 65 73 28 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 2c 20 24 70 72 6f 76 69 64 rovides(new.Pool('dev'),.$provid
88de0 65 72 4e 61 6d 65 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 erName);.foreach.($packages.as.$
88e00 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 package).{.if.($name.===.$packag
88e20 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 20 3d e->getName()).{.$pkgConstraint.=
88e40 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e .new.Constraint('==',.$package->
88e60 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e getVersion());.if.($constraint->
88e80 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 72 matches($pkgConstraint)).{.retur
88ea0 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c n.$package;.}.}.}.}.}.}.....publ
88ec0 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 ic.function.findPackages($name,.
88ee0 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 $constraint.=.null).{.if.(!$this
88f00 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 72 65 6e ->hasProviders()).{.return.paren
88f20 74 3a 3a 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 t::findPackages($name,.$constrai
88f40 6e 74 29 3b 0a 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 nt);.}...$name.=.strtolower($nam
88f60 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 26 26 e);..if.(null.!==.$constraint.&&
88f80 20 21 24 63 6f 6e 73 74 72 61 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 74 72 61 .!$constraint.instanceof.Constra
88fa0 69 6e 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d intInterface).{.$versionParser.=
88fc0 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 73 74 72 61 69 6e .new.VersionParser();.$constrain
88fe0 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 43 6f 6e 73 74 72 61 t.=.$versionParser->parseConstra
89000 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 ints($constraint);.}..$packages.
89020 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 50 =.array();..foreach.($this->getP
89040 72 6f 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 roviderNames().as.$providerName)
89060 20 7b 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 .{.if.($name.===.$providerName).
89080 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 77 68 61 74 50 72 6f 76 69 {.$candidates.=.$this->whatProvi
890a0 64 65 73 28 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 des(new.Pool('dev'),.$providerNa
890c0 6d 65 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 70 61 me);.foreach.($candidates.as.$pa
890e0 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d ckage).{.if.($name.===.$package-
89100 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e >getName()).{.$pkgConstraint.=.n
89120 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ew.Constraint('==',.$package->ge
89140 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6e 73 74 tVersion());.if.(null.===.$const
89160 72 61 69 6e 74 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 70 raint.||.$constraint->matches($p
89180 6b 67 43 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 kgConstraint)).{.$packages[].=.$
891a0 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b package;.}.}.}.}.}..return.$pack
891c0 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 61 63 6b ages;.}..public.function.getPack
891e0 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 ages().{.if.($this->hasProviders
89200 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(
89220 27 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 68 61 74 20 68 61 76 65 'Composer.repositories.that.have
89240 20 70 72 6f 76 69 64 65 72 73 20 63 61 6e 20 6e 6f 74 20 6c 6f 61 64 20 74 68 65 20 63 6f 6d 70 .providers.can.not.load.the.comp
89260 6c 65 74 65 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2c 20 75 73 65 20 67 65 74 50 72 lete.list.of.packages,.use.getPr
89280 6f 76 69 64 65 72 4e 61 6d 65 73 20 69 6e 73 74 65 61 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 oviderNames.instead.');.}..retur
892a0 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 n.parent::getPackages();.}.....p
892c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d ublic.function.search($query,.$m
892e0 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 ode.=.0).{.$this->loadRootServer
89300 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 26 26 File();..if.($this->searchUrl.&&
89320 20 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 .$mode.===.self::SEARCH_FULLTEXT
89340 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 71 75 65 72 79 25 27 ).{.$url.=.str_replace('%query%'
89360 2c 20 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 29 3b 0a 0a 24 68 ,.$query,.$this->searchUrl);..$h
89380 6f 73 74 6e 61 6d 65 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 ostname.=.parse_url($url,.PHP_UR
893a0 4c 5f 48 4f 53 54 29 20 3f 3a 20 24 75 72 6c 3b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e L_HOST).?:.$url;.$json.=.$this->
893c0 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 75 72 6c rfs->getContents($hostname,.$url
893e0 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 73 75 6c 74 73 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 ,.false);.$results.=.JsonFile::p
89400 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 75 72 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 arseJson($json,.$url);..return.$
89420 72 65 73 75 6c 74 73 5b 27 72 65 73 75 6c 74 73 27 5d 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 results['results'];.}..if.($this
89440 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 20 3d 20 61 ->hasProviders()).{.$results.=.a
89460 72 72 61 79 28 29 3b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 6c 6f 64 65 28 rray();.$regex.=.'{(?:'.implode(
89480 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 75 65 72 79 29 '|',.preg_split('{\s+}',.$query)
894a0 29 2e 27 29 7d 69 27 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 ).')}i';..foreach.($this->getPro
894c0 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 65 viderNames().as.$name).{.if.(pre
894e0 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 72 65 73 75 6c g_match($regex,.$name)).{.$resul
89500 74 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 29 3b 0a 7d ts[].=.array('name'.=>.$name);.}
89520 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 .}..return.$results;.}..return.p
89540 61 72 65 6e 74 3a 3a 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d 0a arent::search($query,.$mode);.}.
89560 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 .public.function.getProviderName
89580 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 s().{.$this->loadRootServerFile(
895a0 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 );..if.(null.===.$this->provider
895c0 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 Listing).{.$this->loadProviderLi
895e0 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 stings($this->loadRootServerFile
89600 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 ());.}..if.($this->lazyProviders
89620 55 72 6c 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 Url).{...return.array();.}..if.(
89640 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 $this->providersUrl).{.return.ar
89660 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 ray_keys($this->providerListing)
89680 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 ;.}....$providers.=.array();.for
896a0 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 each.(array_keys($this->provider
896c0 4c 69 73 74 69 6e 67 29 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 70 72 6f 76 69 64 Listing).as.$provider).{.$provid
896e0 65 72 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 24 70 72 6f 76 69 64 65 72 2c 20 32 2c 20 2d 35 29 ers[].=.substr($provider,.2,.-5)
89700 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 72 6f 74 65 ;.}..return.$providers;.}..prote
89720 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 50 61 63 6b 61 67 65 54 72 cted.function.configurePackageTr
89740 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ansportOptions(PackageInterface.
89760 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 $package).{.foreach.($package->g
89780 65 74 44 69 73 74 55 72 6c 73 28 29 20 61 73 20 24 75 72 6c 29 20 7b 0a 69 66 20 28 73 74 72 70 etDistUrls().as.$url).{.if.(strp
897a0 6f 73 28 24 75 72 6c 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 20 3d 3d 3d 20 30 29 20 os($url,.$this->baseUrl).===.0).
897c0 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 73 28 {.$package->setTransportOptions(
897e0 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a $this->options);..return;.}.}.}.
89800 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 0a .public.function.hasProviders().
89820 7b 0a 24 74 68 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 {.$this->loadRootServerFile();..
89840 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 return.$this->hasProviders;.}..p
89860 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 ublic.function.resetPackageIds()
89880 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 .{.foreach.($this->providersByUi
898a0 64 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e d.as.$package).{.if.($package.in
898c0 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 stanceof.AliasPackage).{.$packag
898e0 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 70 e->getAliasOf()->setId(-1);.}.$p
89900 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ackage->setId(-1);.}.}..public.f
89920 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c unction.whatProvides(Pool.$pool,
89940 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 .$name).{.if.(isset($this->provi
89960 64 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 ders[$name])).{.return.$this->pr
89980 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 oviders[$name];.}....if.(preg_ma
899a0 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
899c0 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6e 61 6d 65 29 20 7c 7c 20 27 5f 5f 72 6f 6f _PACKAGE_REGEX,.$name).||.'__roo
899e0 74 5f 5f 27 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 t__'.===.$name).{.return.array()
89a00 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 ;.}..if.(null.===.$this->provide
89a20 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c rListing).{.$this->loadProviderL
89a40 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c istings($this->loadRootServerFil
89a60 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 e());.}..if.($this->lazyProvider
89a80 73 55 72 6c 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 sUrl.&&.!isset($this->providerLi
89aa0 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 68 61 73 68 20 3d 20 6e 75 6c 6c 3b 0a 24 sting[$name])).{.$hash.=.null;.$
89ac0 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 24 url.=.str_replace('%package%',.$
89ae0 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 29 3b 0a name,.$this->lazyProvidersUrl);.
89b00 24 63 61 63 68 65 4b 65 79 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 $cacheKey.=.false;.}.elseif.($th
89b20 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 is->providersUrl).{...if.(!isset
89b40 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]))
89b60 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 68 61 73 68 20 3d 20 24 74 .{.return.array();.}..$hash.=.$t
89b80 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 5b 27 73 68 61 his->providerListing[$name]['sha
89ba0 32 35 36 27 5d 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 256'];.$url.=.str_replace(array(
89bc0 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 68 61 73 68 25 27 29 2c 20 61 72 72 61 79 28 24 6e '%package%',.'%hash%'),.array($n
89be0 61 6d 65 2c 20 24 68 61 73 68 29 2c 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c ame,.$hash),.$this->providersUrl
89c00 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 27 70 72 6f 76 69 64 65 72 2d 27 2e 73 74 72 74 72 );.$cacheKey.=.'provider-'.strtr
89c20 28 24 6e 61 6d 65 2c 20 27 2f 27 2c 20 27 24 27 29 2e 27 2e 6a 73 6f 6e 27 3b 0a 7d 20 65 6c 73 ($name,.'/',.'$').'.json';.}.els
89c40 65 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 70 2f 27 2e 24 6e 61 6d 65 2e 27 2e 6a 73 6f 6e 27 3b e.{...$url.=.'p/'.$name.'.json';
89c60 0a 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 4c 69 ....if.(!isset($this->providerLi
89c80 73 74 69 6e 67 5b 24 75 72 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a sting[$url])).{.return.array();.
89ca0 7d 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 69 73 74 69 6e 67 }.$hash.=.$this->providerListing
89cc0 5b 24 75 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 6e 75 [$url]['sha256'];.$cacheKey.=.nu
89ce0 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 63 68 65 4b 65 79 20 26 26 20 24 74 68 69 73 2d 3e 63 ll;.}..if.($cacheKey.&&.$this->c
89d00 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 68 61 73 ache->sha256($cacheKey).===.$has
89d20 68 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 h).{.$packages.=.json_decode($th
89d40 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 is->cache->read($cacheKey),.true
89d60 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d );.}.else.{...$packages.=.$this-
89d80 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 68 61 73 >fetchFile($url,.$cacheKey,.$has
89da0 68 29 3b 0a 7d 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 20 3d h);.}..$this->providers[$name].=
89dc0 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 27 70 61 .array();.foreach.($packages['pa
89de0 63 6b 61 67 65 73 27 5d 20 61 73 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 ckages'].as.$versions).{.foreach
89e00 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 .($versions.as.$version).{...if.
89e20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 (isset($this->providersByUid[$ve
89e40 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 rsion['uid']])).{...if.(!isset($
89e60 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b this->providers[$name][$version[
89e80 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 'uid']])).{...if.($this->provide
89ea0 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 69 6e 73 74 61 6e 63 rsByUid[$version['uid']].instanc
89ec0 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 eof.AliasPackage).{.$this->provi
89ee0 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 ders[$name][$version['uid']].=.$
89f00 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 this->providersByUid[$version['u
89f20 69 64 27 5d 5d 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 id']]->getAliasOf();.$this->prov
89f40 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 2e 27 2d 61 iders[$name][$version['uid'].'-a
89f60 6c 69 61 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 lias'].=.$this->providersByUid[$
89f80 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d version['uid']];.}.else.{.$this-
89fa0 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 >providers[$name][$version['uid'
89fc0 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 ]].=.$this->providersByUid[$vers
89fe0 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 ion['uid']];.}...if.(isset($this
8a000 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 5d ->providersByUid[$version['uid']
8a020 2e 27 2d 72 6f 6f 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 .'-root'])).{.$this->providers[$
8a040 6e 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 name][$version['uid'].'-root'].=
8a060 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b .$this->providersByUid[$version[
8a080 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 'uid'].'-root'];.}.}.}.else.{.if
8a0a0 20 28 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 73 74 .(!$pool->isPackageAcceptable(st
8a0c0 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d 29 2c 20 56 65 72 73 rtolower($version['name']),.Vers
8a0e0 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
8a100 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a on['version']))).{.continue;.}..
8a120 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 ..$package.=.$this->createPackag
8a140 65 28 24 76 65 72 73 69 6f 6e 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 e($version,.'Composer\Package\Pa
8a160 63 6b 61 67 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 ckage');.$package->setRepository
8a180 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f ($this);..if.($package.instanceo
8a1a0 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 20 3d 20 24 70 61 f.AliasPackage).{.$aliased.=.$pa
8a1c0 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 61 6c 69 61 73 65 64 2d 3e 73 ckage->getAliasOf();.$aliased->s
8a1e0 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f etRepository($this);..$this->pro
8a200 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d viders[$name][$version['uid']].=
8a220 20 24 61 6c 69 61 73 65 64 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d .$aliased;.$this->providers[$nam
8a240 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 e][$version['uid'].'-alias'].=.$
8a260 70 61 63 6b 61 67 65 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 package;....$this->providersByUi
8a280 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 7d d[$version['uid']].=.$package;.}
8a2a0 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b .else.{.$this->providers[$name][
8a2c0 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 24 74 68 $version['uid']].=.$package;.$th
8a2e0 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 is->providersByUid[$version['uid
8a300 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 74 28 24 72 6f 6f 74 ']].=.$package;.}....unset($root
8a320 41 6c 69 61 73 44 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f AliasData);..if.(isset($this->ro
8a340 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 28 29 5d 5b 24 otAliases[$package->getName()][$
8a360 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 package->getVersion()])).{.$root
8a380 41 6c 69 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 AliasData.=.$this->rootAliases[$
8a3a0 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 65 2d 3e 67 65 package->getName()][$package->ge
8a3c0 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 20 tVersion()];.}.elseif.($package.
8a3e0 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 20 69 73 73 65 74 instanceof.AliasPackage.&&.isset
8a400 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 67 65 2d 3e 67 65 ($this->rootAliases[$package->ge
8a420 74 4e 61 6d 65 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d tName()][$package->getAliasOf()-
8a440 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 >getVersion()])).{.$rootAliasDat
8a460 61 20 3d 20 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 67 65 2d a.=.$this->rootAliases[$package-
8a480 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 41 6c 69 61 73 4f 66 >getName()][$package->getAliasOf
8a4a0 28 29 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 ()->getVersion()];.}..if.(isset(
8a4c0 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 74 68 69 $rootAliasData)).{.$alias.=.$thi
8a4e0 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 s->createAliasPackage($package,.
8a500 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 $rootAliasData['alias_normalized
8a520 27 5d 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 '],.$rootAliasData['alias']);.$a
8a540 6c 69 61 73 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 lias->setRepository($this);..$th
8a560 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 is->providers[$name][$version['u
8a580 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 id'].'-root'].=.$alias;.$this->p
8a5a0 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 2e 27 2d rovidersByUid[$version['uid'].'-
8a5c0 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e root'].=.$alias;.}.}.}.}..return
8a5e0 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a .$this->providers[$name];.}.....
8a600 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a protected.function.initialize().
8a620 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 72 65 70 6f 44 61 {.parent::initialize();..$repoDa
8a640 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 ta.=.$this->loadDataFromServer()
8a660 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 ;..foreach.($repoData.as.$packag
8a680 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 63 72 e).{.$this->addPackage($this->cr
8a6a0 65 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 27 43 6f 6d 70 6f 73 65 72 5c eatePackage($package,.'Composer\
8a6c0 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a Package\CompletePackage'));.}.}.
8a6e0 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 65 ......public.function.addPackage
8a700 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 70 61 (PackageInterface.$package).{.pa
8a720 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 rent::addPackage($package);.$thi
8a740 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 6f 72 74 4f 70 74 69 s->configurePackageTransportOpti
8a760 6f 6e 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ons($package);.}..protected.func
8a780 74 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 0a 7b 0a 69 66 20 28 tion.loadRootServerFile().{.if.(
8a7a0 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 29 20 7b 0a 72 65 74 75 null.!==.$this->rootData).{.retu
8a7c0 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 rn.$this->rootData;.}..if.(!exte
8a7e0 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 27 68 74 74 70 nsion_loaded('openssl').&&.'http
8a800 73 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 35 29 29 s'.===.substr($this->url,.0,.5))
8a820 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('
8a840 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 You.must.enable.the.openssl.exte
8a860 6e 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 70 2e 69 6e 69 20 74 6f 20 6c 6f 61 64 20 69 6e nsion.in.your.php.ini.to.load.in
8a880 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a formation.from.'.$this->url);.}.
8a8a0 0a 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 .$jsonUrlParts.=.parse_url($this
8a8c0 2d 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 ->url);..if.(isset($jsonUrlParts
8a8e0 5b 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6a ['path']).&&.false.!==.strpos($j
8a900 73 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 2c 20 27 2e 6a 73 6f 6e 27 29 29 20 7b sonUrlParts['path'],.'.json')).{
8a920 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b .$jsonUrl.=.$this->url;.}.else.{
8a940 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e 20 27 2f 70 61 63 6b 61 .$jsonUrl.=.$this->url...'/packa
8a960 67 65 73 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 ges.json';.}..$data.=.$this->fet
8a980 63 68 46 69 6c 65 28 24 6a 73 6f 6e 55 72 6c 2c 20 27 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 chFile($jsonUrl,.'packages.json'
8a9a0 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 );..if.(!empty($data['notify-bat
8a9c0 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 ch'])).{.$this->notifyUrl.=.$thi
8a9e0 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 6e 6f 74 69 66 79 s->canonicalizeUrl($data['notify
8aa00 2d 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 -batch']);.}.elseif.(!empty($dat
8aa20 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6e a['notify_batch'])).{...$this->n
8aa40 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 72 otifyUrl.=.$this->canonicalizeUr
8aa60 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 l($data['notify_batch']);.}.else
8aa80 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 29 20 7b 0a 24 if.(!empty($data['notify'])).{.$
8aaa0 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 this->notifyUrl.=.$this->canonic
8aac0 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 3b 0a 7d 0a 0a 69 66 alizeUrl($data['notify']);.}..if
8aae0 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d 29 29 20 7b 0a 24 74 68 .(!empty($data['search'])).{.$th
8ab00 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c is->searchUrl.=.$this->canonical
8ab20 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 izeUrl($data['search']);.}..if.(
8ab40 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6d 69 72 72 6f 72 73 27 5d 29 29 20 7b 0a 66 6f 72 65 !empty($data['mirrors'])).{.fore
8ab60 61 63 68 20 28 24 64 61 74 61 5b 27 6d 69 72 72 6f 72 73 27 5d 20 61 73 20 24 6d 69 72 72 6f 72 ach.($data['mirrors'].as.$mirror
8ab80 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 67 69 74 2d 75 72 6c 27 ).{.if.(!empty($mirror['git-url'
8aba0 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 67 69 74 27 ])).{.$this->sourceMirrors['git'
8abc0 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 27 67 69 ][].=.array('url'.=>.$mirror['gi
8abe0 74 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 28 24 t-url'],.'preferred'.=>.!empty($
8ac00 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 65 6d mirror['preferred']));.}.if.(!em
8ac20 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 68 67 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d pty($mirror['hg-url'])).{.$this-
8ac40 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 5b 27 68 67 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 27 >sourceMirrors['hg'][].=.array('
8ac60 75 72 6c 27 20 3d 3e 20 24 6d 69 72 72 6f 72 5b 27 68 67 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 url'.=>.$mirror['hg-url'],.'pref
8ac80 65 72 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 erred'.=>.!empty($mirror['prefer
8aca0 72 65 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 64 red']));.}.if.(!empty($mirror['d
8acc0 69 73 74 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 ist-url'])).{.$this->distMirrors
8ace0 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 27 64 69 73 [].=.array('url'.=>.$mirror['dis
8ad00 74 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 28 24 t-url'],.'preferred'.=>.!empty($
8ad20 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 7d 0a 7d 0a 0a 69 66 mirror['preferred']));.}.}.}..if
8ad40 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 77 61 72 6e 69 6e 67 27 5d 29 29 20 7b 0a 24 74 .(!empty($data['warning'])).{.$t
8ad60 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 57 61 his->io->writeError('<warning>Wa
8ad80 72 6e 69 6e 67 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 27 2e 24 64 61 rning.from.'.$this->url.':.'.$da
8ada0 74 61 5b 27 77 61 72 6e 69 6e 67 27 5d 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a ta['warning'].'</warning>');.}..
8adc0 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 6c 61 7a 79 if.(!empty($data['providers-lazy
8ade0 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 -url'])).{.$this->lazyProvidersU
8ae00 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
8ae20 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 6c 61 7a 79 2d 75 72 6c 27 5d 29 3b 0a 24 74 68 69 73 2d a['providers-lazy-url']);.$this-
8ae40 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 69 66 20 28 24 74 68 >hasProviders.=.true;.}..if.($th
8ae60 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e is->allowSslDowngrade).{.$this->
8ae80 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 68 74 74 70 73 3a 2f 2f 27 2c 20 27 68 url.=.str_replace('https://',.'h
8aea0 74 74 70 3a 2f 2f 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 24 74 68 69 73 2d 3e 62 61 73 ttp://',.$this->url);.$this->bas
8aec0 65 55 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 68 74 74 70 73 3a 2f 2f 27 2c 20 27 eUrl.=.str_replace('https://',.'
8aee0 68 74 74 70 3a 2f 2f 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 69 66 http://',.$this->baseUrl);.}..if
8af00 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 75 72 6c 27 5d 29 .(!empty($data['providers-url'])
8af20 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 20 3d 20 24 74 68 69 73 2d ).{.$this->providersUrl.=.$this-
8af40 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 >canonicalizeUrl($data['provider
8af60 73 2d 75 72 6c 27 5d 29 3b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 s-url']);.$this->hasProviders.=.
8af80 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 true;.}..if.(!empty($data['provi
8afa0 64 65 72 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 ders']).||.!empty($data['provide
8afc0 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 rs-includes'])).{.$this->hasProv
8afe0 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 iders.=.true;.}..return.$this->r
8b000 6f 6f 74 44 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ootData.=.$data;.}..protected.fu
8b020 6e 63 74 69 6f 6e 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 nction.canonicalizeUrl($url).{.i
8b040 66 20 28 27 2f 27 20 3d 3d 3d 20 24 75 72 6c 5b 30 5d 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 f.('/'.===.$url[0]).{.return.pre
8b060 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e 2f 5d 2b 29 2e 2a 7d 69 g_replace('{(https?://[^/]+).*}i
8b080 27 2c 20 27 24 31 27 20 2e 20 24 75 72 6c 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a ',.'$1'...$url,.$this->url);.}..
8b0a0 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 return.$url;.}..protected.functi
8b0c0 6f 6e 20 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 0a 7b 0a 24 64 61 74 61 20 on.loadDataFromServer().{.$data.
8b0e0 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a =.$this->loadRootServerFile();..
8b100 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 return.$this->loadIncludes($data
8b120 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 72 6f );.}..protected.function.loadPro
8b140 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 viderListings($data).{.if.(isset
8b160 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f ($data['providers'])).{.if.(!is_
8b180 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 29 20 7b array($this->providerListing)).{
8b1a0 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 28 .$this->providerListing.=.array(
8b1c0 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 );.}.$this->providerListing.=.ar
8b1e0 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 ray_merge($this->providerListing
8b200 2c 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 ,.$data['providers']);.}..if.($t
8b220 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 20 26 26 20 69 73 73 65 74 28 24 64 61 74 61 his->providersUrl.&&.isset($data
8b240 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 69 6e 63 6c 75 ['provider-includes'])).{.$inclu
8b260 64 65 73 20 3d 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d des.=.$data['provider-includes']
8b280 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c 75 64 65 ;.foreach.($includes.as.$include
8b2a0 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 .=>.$metadata).{.$url.=.$this->b
8b2c0 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 68 61 73 aseUrl...'/'...str_replace('%has
8b2e0 68 25 27 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 2c 20 24 69 6e 63 6c 75 h%',.$metadata['sha256'],.$inclu
8b300 64 65 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 de);.$cacheKey.=.str_replace(arr
8b320 61 79 28 27 25 68 61 73 68 25 27 2c 27 24 27 29 2c 20 27 27 2c 20 24 69 6e 63 6c 75 64 65 29 3b ay('%hash%','$'),.'',.$include);
8b340 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 61 63 68 65 .if.($this->cache->sha256($cache
8b360 4b 65 79 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a Key).===.$metadata['sha256']).{.
8b380 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 $includedData.=.json_decode($thi
8b3a0 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 29 s->cache->read($cacheKey),.true)
8b3c0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 ;.}.else.{.$includedData.=.$this
8b3e0 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 6d 65 ->fetchFile($url,.$cacheKey,.$me
8b400 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 tadata['sha256']);.}..$this->loa
8b420 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 dProviderListings($includedData)
8b440 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 ;.}.}.elseif.(isset($data['provi
8b460 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 0a 20 24 69 6e 63 6c 75 64 65 73 20 ders-includes'])).{...$includes.
8b480 3d 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 3b 0a 66 =.$data['providers-includes'];.f
8b4a0 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e oreach.($includes.as.$include.=>
8b4c0 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 65 2d 3e .$metadata).{.if.($this->cache->
8b4e0 73 68 61 32 35 36 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 sha256($include).===.$metadata['
8b500 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e sha256']).{.$includedData.=.json
8b520 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c _decode($this->cache->read($incl
8b540 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 ude),.true);.}.else.{.$includedD
8b560 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 2c ata.=.$this->fetchFile($include,
8b580 20 6e 75 6c 6c 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a .null,.$metadata['sha256']);.}..
8b5a0 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 63 $this->loadProviderListings($inc
8b5c0 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ludedData);.}.}.}..protected.fun
8b5e0 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 29 0a 7b 0a 24 70 61 63 ction.loadIncludes($data).{.$pac
8b600 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 kages.=.array();....if.(!isset($
8b620 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 data['packages']).&&.!isset($dat
8b640 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 a['includes'])).{.foreach.($data
8b660 20 61 73 20 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 6b 67 5b 27 76 65 72 73 69 .as.$pkg).{.foreach.($pkg['versi
8b680 6f 6e 73 27 5d 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b ons'].as.$metadata).{.$packages[
8b6a0 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b ].=.$metadata;.}.}..return.$pack
8b6c0 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 ages;.}..if.(isset($data['packag
8b6e0 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 es'])).{.foreach.($data['package
8b700 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a s'].as.$package.=>.$versions).{.
8b720 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d foreach.($versions.as.$version.=
8b740 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 >.$metadata).{.$packages[].=.$me
8b760 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 tadata;.}.}.}..if.(isset($data['
8b780 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 69 includes'])).{.foreach.($data['i
8b7a0 6e 63 6c 75 64 65 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 ncludes'].as.$include.=>.$metada
8b7c0 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 69 6e ta).{.if.($this->cache->sha1($in
8b7e0 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 27 5d 29 20 7b 0a clude).===.$metadata['sha1']).{.
8b800 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 $includedData.=.json_decode($thi
8b820 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b s->cache->read($include),.true);
8b840 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d .}.else.{.$includedData.=.$this-
8b860 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 >fetchFile($include);.}.$package
8b880 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 74 68 69 73 s.=.array_merge($packages,.$this
8b8a0 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 29 3b 0a ->loadIncludes($includedData));.
8b8c0 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 72 6f 74 65 63 }.}..return.$packages;.}..protec
8b8e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 61 72 72 61 79 ted.function.createPackage(array
8b900 20 24 64 61 74 61 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 21 69 73 73 .$data,.$class).{.try.{.if.(!iss
8b920 65 74 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 29 20 7b et($data['notification-url'])).{
8b940 0a 24 64 61 74 61 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 20 3d 20 24 74 68 .$data['notification-url'].=.$th
8b960 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 is->notifyUrl;.}..$package.=.$th
8b980 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 64 61 74 61 2c 20 27 43 6f 6d 70 6f 73 65 is->loader->load($data,.'Compose
8b9a0 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 69 66 20 r\Package\CompletePackage');.if.
8b9c0 28 69 73 73 65 74 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 (isset($this->sourceMirrors[$pac
8b9e0 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 5d 29 29 20 7b 0a 24 70 61 63 6b kage->getSourceType()])).{.$pack
8ba00 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 24 74 68 69 73 2d 3e 73 6f 75 age->setSourceMirrors($this->sou
8ba20 72 63 65 4d 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 rceMirrors[$package->getSourceTy
8ba40 70 65 28 29 5d 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 4d 69 72 72 6f pe()]);.}.$package->setDistMirro
8ba60 72 73 28 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 29 3b 0a 24 74 68 69 73 2d 3e 63 rs($this->distMirrors);.$this->c
8ba80 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 28 onfigurePackageTransportOptions(
8baa0 24 70 61 63 6b 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 20 63 $package);..return.$package;.}.c
8bac0 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 atch.(\Exception.$e).{.throw.new
8bae0 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 6c 6f .\RuntimeException('Could.not.lo
8bb00 61 64 20 70 61 63 6b 61 67 65 20 27 2e 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 ad.package.'.(isset($data['name'
8bb20 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 ]).?.$data['name'].:.json_encode
8bb40 28 24 64 61 74 61 29 29 2e 27 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 5b 27 ($data)).'.in.'.$this->url.':.['
8bb60 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 .get_class($e).'].'.$e->getMessa
8bb80 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ge(),.0,.$e);.}.}..protected.fun
8bba0 63 74 69 6f 6e 20 66 65 74 63 68 46 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 61 63 68 ction.fetchFile($filename,.$cach
8bbc0 65 4b 65 79 20 3d 20 6e 75 6c 6c 2c 20 24 73 68 61 32 35 36 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 eKey.=.null,.$sha256.=.null).{.i
8bbe0 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 61 63 68 65 4b 65 79 29 20 7b 0a 24 63 61 63 68 65 4b f.(null.===.$cacheKey).{.$cacheK
8bc00 65 79 20 3d 20 24 66 69 6c 65 6e 61 6d 65 3b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 ey.=.$filename;.$filename.=.$thi
8bc20 73 2d 3e 62 61 73 65 55 72 6c 2e 27 2f 27 2e 24 66 69 6c 65 6e 61 6d 65 3b 0a 7d 0a 0a 0a 20 69 s->baseUrl.'/'.$filename;.}....i
8bc40 66 20 28 28 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 66 69 6c 65 6e 61 6d 65 2c 20 27 24 27 f.(($pos.=.strpos($filename,.'$'
8bc60 29 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 2e 2a 7d )).&&.preg_match('{^https?://.*}
8bc80 69 27 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 73 75 i',.$filename)).{.$filename.=.su
8bca0 62 73 74 72 28 24 66 69 6c 65 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 20 2e 20 27 25 32 34 27 bstr($filename,.0,.$pos)...'%24'
8bcc0 20 2e 20 73 75 62 73 74 72 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a ...substr($filename,.$pos.+.1);.
8bce0 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 }..$retries.=.3;.while.($retries
8bd00 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 64 45 76 65 6e --).{.try.{.$preFileDownloadEven
8bd20 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 74 28 50 6c 75 t.=.new.PreFileDownloadEvent(Plu
8bd40 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 44 2c 20 24 74 ginEvents::PRE_FILE_DOWNLOAD,.$t
8bd60 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 74 68 69 73 2d his->rfs,.$filename);.if.($this-
8bd80 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 65 76 65 6e 74 >eventDispatcher).{.$this->event
8bda0 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 6c 65 44 6f 77 Dispatcher->dispatch($preFileDow
8bdc0 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 46 69 6c 65 44 nloadEvent->getName(),.$preFileD
8bde0 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 20 3d 20 70 61 ownloadEvent);.}..$hostname.=.pa
8be00 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 48 4f 53 54 29 rse_url($filename,.PHP_URL_HOST)
8be20 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 46 69 6c 65 44 .?:.$filename;.$json.=.$preFileD
8be40 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 73 79 73 74 65 ownloadEvent->getRemoteFilesyste
8be60 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 20 24 66 69 6c m()->getContents($hostname,.$fil
8be80 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 26 26 20 24 73 ename,.false);.if.($sha256.&&.$s
8bea0 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 73 6f 6e 29 29 ha256.!==.hash('sha256',.$json))
8bec0 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
8bee0 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 77 20 52 65 70 );..continue;.}....throw.new.Rep
8bf00 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 68 65 20 63 6f ositorySecurityException('The.co
8bf20 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 6e 6f 74 20 6d ntents.of.'.$filename.'.do.not.m
8bf40 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 6f 75 6c 64 20 atch.its.signature..This.should.
8bf60 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 65 20 61 74 74 indicate.a.man-in-the-middle.att
8bf80 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 67 61 69 6e 20 ack..Try.running.composer.again.
8bfa0 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 6b 20 69 74 20 and.report.this.if.you.think.it.
8bfc0 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 4a 73 6f 6e 46 is.a.mistake.');.}.$data.=.JsonF
8bfe0 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 6e 61 6d 65 29 ile::parseJson($json,.$filename)
8c000 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 61 63 68 65 2d ;.if.($cacheKey).{.$this->cache-
8c020 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 0a 0a 62 72 65 >write($cacheKey,.$json);.}..bre
8c040 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
8c060 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b 0a 63 6f .($retries).{.usleep(100000);.co
8c080 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 70 ntinue;.}..if.($e.instanceof.Rep
8c0a0 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f ositorySecurityException).{.thro
8c0c0 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 24 63 6f 6e 74 w.$e;.}..if.($cacheKey.&&.($cont
8c0e0 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 63 61 63 68 65 ents.=.$this->cache->read($cache
8c100 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 65 64 4d 6f 64 Key))).{.if.(!$this->degradedMod
8c120 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
8c140 6e 69 6e 67 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 ning>'.$e->getMessage().'</warni
8c160 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 72 28 27 3c 77 ng>');.$this->io->writeError('<w
8c180 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 20 6e 6f 74 20 arning>'.$this->url.'.could.not.
8c1a0 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 66 6f 72 6d 61 be.fully.loaded,.package.informa
8c1c0 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 63 61 6c 20 63 tion.was.loaded.from.the.local.c
8c1e0 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 3c 2f 77 61 72 ache.and.may.be.out.of.date</war
8c200 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 6f 64 65 20 3d ning>');.}.$this->degradedMode.=
8c220 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 72 73 65 4a 73 .true;.$data.=.JsonFile::parseJs
8c240 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 3e 67 65 74 52 on($contents,.$this->cache->getR
8c260 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 0a 0a 74 68 72 oot().$cacheKey);..break;.}..thr
8c280 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 0a 7d 0a 3c 3f ow.$e;.}.}..return.$data;.}.}.<?
8c2a0 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
8c2c0 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 6b r\Repository;..use.Composer\Pack
8c2e0 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 age\PackageInterface;.......clas
8c300 73 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 s.CompositeRepository.implements
8c320 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 70 72 69 76 61 .RepositoryInterface.{.....priva
8c340 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 te.$repositories;......public.fu
8c360 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 73 69 nction.__construct(array.$reposi
8c380 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 tories).{.$this->repositories.=.
8c3a0 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 array();.foreach.($repositories.
8c3c0 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 as.$repo).{.$this->addRepository
8c3e0 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ($repo);.}.}.......public.functi
8c400 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
8c420 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 his->repositories;.}.....public.
8c440 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 function.hasPackage(PackageInter
8c460 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d face.$package).{.foreach.($this-
8c480 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).{.
8c4a0 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 .if.($repository->hasPackage($pa
8c4c0 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ckage)).{.return.true;.}.}..retu
8c4e0 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.
8c500 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a findPackage($name,.$constraint).
8c520 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 61 {.foreach.($this->repositories.a
8c540 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 20 3d 20 24 72 65 s.$repository).{..$package.=.$re
8c560 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 63 6f pository->findPackage($name,.$co
8c580 6e 73 74 72 61 69 6e 74 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 nstraint);.if.(null.!==.$package
8c5a0 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ).{.return.$package;.}.}..return
8c5c0 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e .null;.}.....public.function.fin
8c5e0 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e dPackages($name,.$constraint.=.n
8c600 75 6c 6c 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 ull).{.$packages.=.array();.fore
8c620 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 ach.($this->repositories.as.$rep
8c640 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 ository).{..$packages[].=.$repos
8c660 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 itory->findPackages($name,.$cons
8c680 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 20 3f 20 63 traint);.}..return.$packages.?.c
8c6a0 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
8c6c0 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 0a 0a 0a 0a 0a 70 ',.$packages).:.array();.}.....p
8c6e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d ublic.function.search($query,.$m
8c700 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 79 28 29 3b 0a 66 ode.=.0).{.$matches.=.array();.f
8c720 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 24 oreach.($this->repositories.as.$
8c740 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 3d 20 24 72 65 70 repository).{..$matches[].=.$rep
8c760 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 6f 64 65 29 3b 0a ository->search($query,.$mode);.
8c780 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 75 73 65 72 5f 66 }..return.$matches.?.call_user_f
8c7a0 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 6d 61 74 63 68 65 unc_array('array_merge',.$matche
8c7c0 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 20 66 75 6e 63 74 s).:.array();.}.....public.funct
8c7e0 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 ion.getPackages().{.$packages.=.
8c800 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 array();.foreach.($this->reposit
8c820 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 ories.as.$repository).{..$packag
8c840 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 es[].=.$repository->getPackages(
8c860 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 20 3f 20 63 61 6c 6c 5f 75 73 );.}..return.$packages.?.call_us
8c880 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 70 61 er_func_array('array_merge',.$pa
8c8a0 63 6b 61 67 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 20 ckages).:.array();.}.....public.
8c8c0 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e function.removePackage(PackageIn
8c8e0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 terface.$package).{.foreach.($th
8c900 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 is->repositories.as.$repository)
8c920 20 7b 0a 0a 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 .{..$repository->removePackage($
8c940 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 6f package);.}.}.....public.functio
8c960 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 24 74 6f 74 61 6c 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 n.count().{.$total.=.0;.foreach.
8c980 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 ($this->repositories.as.$reposit
8c9a0 6f 72 79 29 20 7b 0a 0a 24 74 6f 74 61 6c 20 2b 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 63 ory).{..$total.+=.$repository->c
8c9c0 6f 75 6e 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 74 61 6c 3b 0a 7d 0a 0a 0a 0a 0a ount();.}..return.$total;.}.....
8c9e0 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 52 .public.function.addRepository(R
8ca00 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a epositoryInterface.$repository).
8ca20 7b 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c {.if.($repository.instanceof.sel
8ca40 66 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 f).{.foreach.($repository->getRe
8ca60 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e positories().as.$repo).{.$this->
8ca80 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 20 65 6c 73 65 20 7b addRepository($repo);.}.}.else.{
8caa0 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 .$this->repositories[].=.$reposi
8cac0 74 6f 72 79 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 tory;.}.}.}.<?php............nam
8cae0 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 0a espace.Composer\Repository;.....
8cb00 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 66 69 67 75 72 61 62 6c 65 52 65 70 6f 73 69 74 6f ..interface.ConfigurableReposito
8cb20 72 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 67 65 ryInterface.{.public.function.ge
8cb40 74 52 65 70 6f 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tRepoConfig();.}.<?php..........
8cb60 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b ..namespace.Composer\Repository;
8cb80 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 ..use.Composer\Json\JsonFile;.us
8cba0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c e.Composer\Package\Loader\ArrayL
8cbc0 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 oader;.use.Composer\Package\Dump
8cbe0 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c er\ArrayDumper;........class.Fil
8cc00 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 esystemRepository.extends.Writab
8cc20 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c leArrayRepository.{.private.$fil
8cc40 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
8cc60 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 29 0a 7b ruct(JsonFile.$repositoryFile).{
8cc80 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 3b 0a .$this->file.=.$repositoryFile;.
8cca0 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c }.....protected.function.initial
8ccc0 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 69 ize().{.parent::initialize();..i
8cce0 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 f.(!$this->file->exists()).{.ret
8cd00 75 72 6e 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d urn;.}..try.{.$packages.=.$this-
8cd20 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 >file->read();..if.(!is_array($p
8cd40 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 ackages)).{.throw.new.\Unexpecte
8cd60 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 dValueException('Could.not.parse
8cd80 20 70 61 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 .package.list.from.the.repositor
8cda0 79 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b y');.}.}.catch.(\Exception.$e).{
8cdc0 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 .throw.new.InvalidRepositoryExce
8cde0 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 64 61 74 61 20 69 ption('Invalid.repository.data.i
8ce00 6e 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 2c 20 70 61 n.'.$this->file->getPath().',.pa
8ce20 63 6b 61 67 65 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 3a 20 5b 27 2e 67 ckages.could.not.be.loaded:.['.g
8ce40 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 et_class($e).'].'.$e->getMessage
8ce60 28 29 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 ());.}..$loader.=.new.ArrayLoade
8ce80 72 28 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 r(null,.true);.foreach.($package
8cea0 73 20 61 73 20 24 70 61 63 6b 61 67 65 44 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 s.as.$packageData).{.$package.=.
8cec0 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 68 $loader->load($packageData);.$th
8cee0 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 0a 70 is->addPackage($package);.}.}..p
8cf00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 2d ublic.function.reload().{.$this-
8cf20 3e 70 61 63 6b 61 67 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c >packages.=.null;.$this->initial
8cf40 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 ize();.}.....public.function.wri
8cf60 74 65 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 72 20 te().{.$data.=.array();.$dumper.
8cf80 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 =.new.ArrayDumper();..foreach.($
8cfa0 74 68 69 73 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 this->getCanonicalPackages().as.
8cfc0 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 64 75 6d 70 65 72 2d 3e 64 $package).{.$data[].=.$dumper->d
8cfe0 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 ump($package);.}..$this->file->w
8d000 72 69 74 65 28 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rite($data);.}.}.<?php..........
8d020 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b ..namespace.Composer\Repository;
8d040 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 .........class.InstalledArrayRep
8d060 6f 73 69 74 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 ository.extends.WritableArrayRep
8d080 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f ository.implements.InstalledRepo
8d0a0 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a sitoryInterface.{.}.<?php.......
8d0c0 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
8d0e0 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 ry;.......class.InstalledFilesys
8d100 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 46 69 6c 65 73 79 73 74 65 6d temRepository.extends.Filesystem
8d120 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 Repository.implements.InstalledR
8d140 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a epositoryInterface.{.}.<?php....
8d160 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 ........namespace.Composer\Repos
8d180 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 6c itory;.........interface.Install
8d1a0 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 72 edRepositoryInterface.extends.Wr
8d1c0 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 3f itableRepositoryInterface.{.}.<?
8d1e0 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
8d200 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 6c 69 r\Repository;.......class.Invali
8d220 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 45 78 dRepositoryException.extends.\Ex
8d240 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 61 6d ception.{.}.<?php............nam
8d260 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
8d280 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
8d2a0 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 ader;.use.Composer\Package\Loade
8d2c0 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 r\ValidatingArrayLoader;.......c
8d2e0 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 lass.PackageRepository.extends.A
8d300 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 63 6f 6e 66 69 67 rrayRepository.{.private.$config
8d320 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ;.......public.function.__constr
8d340 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 uct(array.$config).{.$this->conf
8d360 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 0a 20 69 66 20 28 ig.=.$config['package'];....if.(
8d380 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 29 29 !is_numeric(key($this->config)))
8d3a0 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e .{.$this->config.=.array($this->
8d3c0 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 config);.}.}.....protected.funct
8d3e0 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 ion.initialize().{.parent::initi
8d400 61 6c 69 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 alize();..$loader.=.new.Validati
8d420 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 2c 20 66 ngArrayLoader(new.ArrayLoader,.f
8d440 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 61 73 alse);.foreach.($this->config.as
8d460 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c .$package).{.try.{.$package.=.$l
8d480 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 oader->load($package);.}.catch.(
8d4a0 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 61 6c \Exception.$e).{.throw.new.Inval
8d4c0 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 41 20 72 65 70 6f 73 69 74 idRepositoryException('A.reposit
8d4e0 6f 72 79 20 6f 66 20 74 79 70 65 20 22 70 61 63 6b 61 67 65 22 20 63 6f 6e 74 61 69 6e 73 20 61 ory.of.type."package".contains.a
8d500 6e 20 69 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 20 27 2e n.invalid.package.definition:.'.
8d520 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 5c 6e 49 6e 76 61 6c 69 64 20 70 61 $e->getMessage()."\n\nInvalid.pa
8d540 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 5c 6e 22 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 ckage.definition:\n".json_encode
8d560 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 ($package));.}..$this->addPackag
8d580 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a e($package);.}.}.}.<?php........
8d5a0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 ....namespace.Composer\Repositor
8d5c0 79 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 y;..use.Composer\Config;.use.Com
8d5e0 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 poser\IO\IOInterface;.use.Compos
8d600 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 50 er\Json\JsonFile;.use.Composer\P
8d620 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 ackage\Loader\ArrayLoader;.use.C
8d640 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
8d660 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 47 75 65 73 oser\Package\Version\VersionGues
8d680 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e ser;.use.Composer\Semver\Version
8d6a0 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 Parser;.use.Composer\Util\Proces
8d6c0 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a sExecutor;......................
8d6e0 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 74 68 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 ........class.PathRepository.ext
8d700 65 6e 64 73 20 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 ends.ArrayRepository.implements.
8d720 43 6f 6e 66 69 67 75 72 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a ConfigurableRepositoryInterface.
8d740 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 {....private.$loader;.....privat
8d760 65 20 24 76 65 72 73 69 6f 6e 47 75 65 73 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 e.$versionGuesser;.....private.$
8d780 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 0a 0a url;.....private.$repoConfig;...
8d7a0 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ..private.$process;.........publ
8d7c0 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
8d7e0 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
8d800 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 43 6f ig.$config).{.if.(!isset($repoCo
8d820 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 nfig['url'])).{.throw.new.\Runti
8d840 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 70 65 63 69 66 79 20 74 68 meException('You.must.specify.th
8d860 65 20 60 75 72 6c 60 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 70 61 e.`url`.configuration.for.the.pa
8d880 74 68 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 th.repository');.}..$this->loade
8d8a0 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 75 72 r.=.new.ArrayLoader();.$this->ur
8d8c0 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 70 l.=.$repoConfig['url'];.$this->p
8d8e0 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 24 69 6f rocess.=.new.ProcessExecutor($io
8d900 29 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 47 75 65 73 73 65 72 20 3d 20 6e 65 77 20 56 );.$this->versionGuesser.=.new.V
8d920 65 72 73 69 6f 6e 47 75 65 73 73 65 72 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 ersionGuesser($config,.$this->pr
8d940 6f 63 65 73 73 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 29 3b 0a 24 74 68 ocess,.new.VersionParser());.$th
8d960 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 0a 70 is->repoConfig.=.$repoConfig;..p
8d980 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 75 62 6c 69 63 20 arent::__construct();.}..public.
8d9a0 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 72 function.getRepoConfig().{.retur
8d9c0 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f n.$this->repoConfig;.}.......pro
8d9e0 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 0a 70 tected.function.initialize().{.p
8da00 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 arent::initialize();..foreach.($
8da20 74 68 69 73 2d 3e 67 65 74 55 72 6c 4d 61 74 63 68 65 73 28 29 20 61 73 20 24 75 72 6c 29 20 7b this->getUrlMatches().as.$url).{
8da40 0a 24 70 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 24 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 24 .$path.=.realpath($url)...'/';.$
8da60 63 6f 6d 70 6f 73 65 72 46 69 6c 65 50 61 74 68 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 composerFilePath.=.$path.'compos
8da80 65 72 2e 6a 73 6f 6e 27 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 63 6f 6d er.json';..if.(!file_exists($com
8daa0 70 6f 73 65 72 46 69 6c 65 50 61 74 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 poserFilePath)).{.continue;.}..$
8dac0 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
8dae0 65 72 46 69 6c 65 50 61 74 68 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 4a 73 6f 6e 46 69 6c 65 erFilePath);.$package.=.JsonFile
8db00 3a 3a 70 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 ::parseJson($json,.$composerFile
8db20 50 61 74 68 29 3b 0a 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 Path);.$package['dist'].=.array(
8db40 0a 27 74 79 70 65 27 20 3d 3e 20 27 70 61 74 68 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c .'type'.=>.'path',.'url'.=>.$url
8db60 2c 0a 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 27 27 2c 0a 29 3b 0a 0a 69 66 20 28 21 69 73 ,.'reference'.=>.'',.);..if.(!is
8db80 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 set($package['version'])).{.$pac
8dba0 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e kage['version'].=.$this->version
8dbc0 47 75 65 73 73 65 72 2d 3e 67 75 65 73 73 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 Guesser->guessVersion($package,.
8dbe0 24 70 61 74 68 29 20 3f 3a 20 27 64 65 76 2d 6d 61 73 74 65 72 27 3b 0a 7d 0a 69 66 20 28 69 73 $path).?:.'dev-master';.}.if.(is
8dc00 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 69 74 27 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 _dir($path.'/.git').&&.0.===.$th
8dc20 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 6c 6f 67 20 2d 6e is->process->execute('git.log.-n
8dc40 31 20 2d 2d 70 72 65 74 74 79 3d 25 48 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 1.--pretty=%H',.$output,.$path))
8dc60 20 7b 0a 24 70 61 63 6b 61 67 65 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d .{.$package['dist']['reference']
8dc80 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b .=.trim($output);.}.else.{.$pack
8dca0 61 67 65 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 4c 6f 63 6b 65 age['dist']['reference'].=.Locke
8dcc0 72 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 48 61 73 68 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 24 70 61 r::getContentHash($json);.}..$pa
8dce0 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 70 61 63 ckage.=.$this->loader->load($pac
8dd00 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 kage);.$this->addPackage($packag
8dd20 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 e);.}..if.(count($this->getPacka
8dd40 67 65 73 28 29 29 20 3d 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d ges()).==.0).{.throw.new.\Runtim
8dd60 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4e 6f 20 60 63 6f 6d 70 6f 73 65 72 eException(sprintf('No.`composer
8dd80 2e 6a 73 6f 6e 60 20 66 69 6c 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 70 61 74 68 20 72 65 .json`.file.found.in.any.path.re
8dda0 70 6f 73 69 74 6f 72 79 20 69 6e 20 22 25 73 22 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 3b pository.in."%s"',.$this->url));
8ddc0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 .}.}.......private.function.getU
8dde0 72 6c 4d 61 74 63 68 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 67 6c 6f 62 28 24 74 68 69 73 2d rlMatches().{.return.glob($this-
8de00 3e 75 72 6c 2c 20 47 4c 4f 42 5f 4d 41 52 4b 20 7c 20 47 4c 4f 42 5f 4f 4e 4c 59 44 49 52 29 3b >url,.GLOB_MARK.|.GLOB_ONLYDIR);
8de20 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.
8de40 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 Composer\Repository\Pear;..use.C
8de60 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a omposer\Util\RemoteFilesystem;..
8de80 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 43 68 61 6e 6e 65 .......abstract.class.BaseChanne
8dea0 6c 52 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 43 48 41 4e 4e 45 4c 5f 4e 53 20 3d 20 lReader.{....const.CHANNEL_NS.=.
8dec0 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 63 68 61 6e 6e 65 6c 2d 31 2e 30 'http://pear.php.net/channel-1.0
8dee0 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 20 3d 20 27 68 74 ';.const.ALL_CATEGORIES_NS.=.'ht
8df00 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 63 61 tp://pear.php.net/dtd/rest.allca
8df20 74 65 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 20 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 tegories';.const.CATEGORY_PACKAG
8df40 45 53 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 ES_INFO_NS.=.'http://pear.php.ne
8df60 74 2f 64 74 64 2f 72 65 73 74 2e 63 61 74 65 67 6f 72 79 70 61 63 6b 61 67 65 69 6e 66 6f 27 3b t/dtd/rest.categorypackageinfo';
8df80 0a 63 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f .const.ALL_PACKAGES_NS.=.'http:/
8dfa0 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 70 61 63 6b 61 67 /pear.php.net/dtd/rest.allpackag
8dfc0 65 73 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 20 3d 20 27 68 74 es';.const.ALL_RELEASES_NS.=.'ht
8dfe0 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 72 65 tp://pear.php.net/dtd/rest.allre
8e000 6c 65 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 20 3d leases';.const.PACKAGE_INFO_NS.=
8e020 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 70 .'http://pear.php.net/dtd/rest.p
8e040 61 63 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 70 72 6f 74 65 63 ackage';...private.$rfs;..protec
8e060 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 ted.function.__construct(RemoteF
8e080 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 ilesystem.$rfs).{.$this->rfs.=.$
8e0a0 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 rfs;.}..........protected.functi
8e0c0 6f 6e 20 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 on.requestContent($origin,.$path
8e0e0 29 0a 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e ).{.$url.=.rtrim($origin,.'/')..
8e100 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b 0a 24 63 6f 6e 74 65 .'/'...ltrim($path,.'/');.$conte
8e120 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 nt.=.$this->rfs->getContents($or
8e140 69 67 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e igin,.$url,.false);.if.(!$conten
8e160 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 t).{.throw.new.\UnexpectedValueE
8e180 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 xception('The.PEAR.channel.at.'.
8e1a0 2e 20 24 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f 74 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a 7d ..$url...'.did.not.respond.');.}
8e1c0 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ..return.$content;.}..........pr
8e1e0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 58 6d 6c 28 24 6f 72 69 otected.function.requestXml($ori
8e200 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 6d 6c 20 3d 20 73 69 6d 70 6c 65 78 6d 6c gin,.$path).{...$xml.=.simplexml
8e220 5f 6c 6f 61 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 _load_string($this->requestConte
8e240 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 2c 20 22 53 69 6d 70 6c 65 58 4d 4c 45 6c nt($origin,.$path),."SimpleXMLEl
8e260 65 6d 65 6e 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 52 52 4f 52 29 3b 0a 0a 69 66 20 28 66 61 ement",.LIBXML_NOERROR);..if.(fa
8e280 6c 73 65 20 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 lse.==.$xml).{.$url.=.rtrim($ori
8e2a0 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 gin,.'/')...'/'...ltrim($path,.'
8e2c0 2f 27 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 /');.throw.new.\UnexpectedValueE
8e2e0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e xception(sprintf('The.PEAR.chann
8e300 65 6c 20 61 74 20 27 20 2e 20 24 6f 72 69 67 69 6e 20 2e 20 27 20 69 73 20 62 72 6f 6b 65 6e 2e el.at.'...$origin...'.is.broken.
8e320 20 28 49 6e 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 69 6c 65 20 60 25 73 60 29 27 2c 20 24 70 .(Invalid.XML.at.file.`%s`)',.$p
8e340 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 78 6d 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ath));.}..return.$xml;.}.}.<?php
8e360 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
8e380 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e epository\Pear;.......class.Chan
8e3a0 6e 65 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 nelInfo.{.private.$name;.private
8e3c0 20 24 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a .$alias;.private.$packages;.....
8e3e0 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
8e400 61 6d 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a ame,.$alias,.array.$packages).{.
8e420 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 $this->name.=.$name;.$this->alia
8e440 73 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 24 70 s.=.$alias;.$this->packages.=.$p
8e460 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ackages;.}.......public.function
8e480 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b .getName().{.return.$this->name;
8e4a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 .}.......public.function.getAlia
8e4c0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a s().{.return.$this->alias;.}....
8e4e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 ...public.function.getPackages()
8e500 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c .{.return.$this->packages;.}.}.<
8e520 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
8e540 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 er\Repository\Pear;..use.Compose
8e560 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a r\Util\RemoteFilesystem;........
8e580 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 .class.ChannelReader.extends.Bas
8e5a0 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 65 eChannelReader.{..private.$reade
8e5c0 72 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 rMap;..public.function.__constru
8e5e0 63 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 70 61 72 65 ct(RemoteFilesystem.$rfs).{.pare
8e600 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 72 65 73 74 31 30 72 nt::__construct($rfs);..$rest10r
8e620 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 28 eader.=.new.ChannelRest10Reader(
8e640 24 72 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e $rfs);.$rest11reader.=.new.Chann
8e660 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 elRest11Reader($rfs);..$this->re
8e680 61 64 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 27 52 45 53 54 31 2e 33 27 20 3d 3e 20 24 72 aderMap.=.array(.'REST1.3'.=>.$r
8e6a0 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 32 27 20 3d 3e 20 24 72 65 73 74 31 est11reader,.'REST1.2'.=>.$rest1
8e6c0 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 31 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 1reader,.'REST1.1'.=>.$rest11rea
8e6e0 64 65 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 3e 20 24 72 65 73 74 31 30 72 65 61 64 65 72 2c der,.'REST1.0'.=>.$rest10reader,
8e700 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 .);.}.........public.function.re
8e720 61 64 28 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 ad($url).{.$xml.=.$this->request
8e740 58 6d 6c 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e 65 6c 2e 78 6d 6c 22 29 3b 0a 0a 24 63 68 61 Xml($url,."/channel.xml");..$cha
8e760 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 61 6d 65 3b 0a nnelName.=.(string).$xml->name;.
8e780 24 63 68 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d $channelSummary.=.(string).$xml-
8e7a0 3e 73 75 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 20 3d 20 28 73 74 72 69 6e >summary;.$channelAlias.=.(strin
8e7c0 67 29 20 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 64 61 6c 69 61 73 3b 0a 0a 24 73 75 70 70 6f g).$xml->suggestedalias;..$suppo
8e7e0 72 74 65 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d rtedVersions.=.array_keys($this-
8e800 3e 72 65 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f >readerMap);.$selectedRestVersio
8e820 6e 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 78 6d n.=.$this->selectRestVersion($xm
8e840 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 21 24 73 65 l,.$supportedVersions);.if.(!$se
8e860 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c lectedRestVersion).{.throw.new.\
8e880 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 UnexpectedValueException(sprintf
8e8a0 28 27 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 73 75 ('PEAR.repository.%s.does.not.su
8e8c0 70 70 6f 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 70 72 6f 74 6f 63 6f 6c 73 2e 27 2c 20 24 75 pports.any.of.%s.protocols.',.$u
8e8e0 72 6c 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 rl,.implode(',.',.$supportedVers
8e900 69 6f 6e 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 ions)));.}..$reader.=.$this->rea
8e920 64 65 72 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 76 65 72 derMap[$selectedRestVersion['ver
8e940 73 69 6f 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 20 3d 20 24 sion']];.$packageDefinitions.=.$
8e960 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f reader->read($selectedRestVersio
8e980 6e 5b 27 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 43 68 61 6e 6e n['baseUrl']);..return.new.Chann
8e9a0 65 6c 49 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 63 68 61 6e 6e 65 6c 41 6c 69 elInfo($channelName,.$channelAli
8e9c0 61 73 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a as,.$packageDefinitions);.}.....
8e9e0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 52 65 73 74 56 ....private.function.selectRestV
8ea00 65 72 73 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 ersion($channelXml,.$supportedVe
8ea20 72 73 69 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 rsions).{.$channelXml->registerX
8ea40 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 48 41 4e 4e 45 PathNamespace('ns',.self::CHANNE
8ea60 4c 5f 4e 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 L_NS);..foreach.($supportedVersi
8ea80 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 78 70 61 74 68 54 65 73 74 20 3d 20 ons.as.$version).{.$xpathTest.=.
8eaa0 22 6e 73 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 69 6d 61 72 79 2f 6e 73 3a 72 65 73 74 2f 6e "ns:servers/ns:primary/ns:rest/n
8eac0 73 3a 62 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 7b 24 76 65 72 73 69 6f 6e 7d 27 5d 22 3b 0a s:baseurl[@type='{$version}']";.
8eae0 24 74 65 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 78 70 61 74 68 $testResult.=.$channelXml->xpath
8eb00 28 24 78 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 65 73 74 52 65 73 ($xpathTest);.if.(count($testRes
8eb20 75 6c 74 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 76 65 72 73 69 6f ult).>.0).{.return.array('versio
8eb40 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 62 61 73 65 55 72 6c 27 20 3d 3e 20 28 73 74 n'.=>.$version,.'baseUrl'.=>.(st
8eb60 72 69 6e 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ring).$testResult[0]);.}.}..retu
8eb80 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 rn.null;.}.}.<?php............na
8eba0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 mespace.Composer\Repository\Pear
8ebc0 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 ;..use.Composer\Downloader\Trans
8ebe0 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 portException;.............class
8ec00 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 .ChannelRest10Reader.extends.Bas
8ec20 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 eChannelReader.{.private.$depend
8ec40 65 6e 63 79 52 65 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 encyReader;..public.function.__c
8ec60 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 onstruct($rfs).{.parent::__const
8ec80 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 ruct($rfs);..$this->dependencyRe
8eca0 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 ader.=.new.PackageDependencyPars
8ecc0 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.
8ece0 72 65 61 64 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 read($baseUrl).{.return.$this->r
8ed00 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a eadPackages($baseUrl);.}........
8ed20 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 .private.function.readPackages($
8ed40 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 baseUrl).{.$result.=.array();..$
8ed60 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 70 61 63 6b 61 67 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d xmlPath.=.'/p/packages.xml';.$xm
8ed80 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,.
8eda0 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 68 4e 61 $xmlPath);.$xml->registerXPathNa
8edc0 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 50 41 43 4b 41 47 45 53 mespace('ns',.self::ALL_PACKAGES
8ede0 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 _NS);.foreach.($xml->xpath('ns:p
8ee00 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 ').as.$node).{.$packageName.=.(s
8ee20 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 tring).$node;.$packageInfo.=.$th
8ee40 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 is->readPackage($baseUrl,.$packa
8ee60 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 geName);.$result[].=.$packageInf
8ee80 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a o;.}..return.$result;.}.........
8eea0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 .private.function.readPackage($b
8eec0 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 78 6d 6c 50 61 74 68 aseUrl,.$packageName).{.$xmlPath
8eee0 20 3d 20 27 2f 70 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 .=.'/p/'...strtolower($packageNa
8ef00 6d 65 29 20 2e 20 27 2f 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d me)...'/info.xml';.$xml.=.$this-
8ef20 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b >requestXml($baseUrl,.$xmlPath);
8ef40 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e .$xml->registerXPathNamespace('n
8ef60 73 27 2c 20 73 65 6c 66 3a 3a 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 0a 24 63 68 s',.self::PACKAGE_INFO_NS);..$ch
8ef80 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 63 3b 0a 24 70 annelName.=.(string).$xml->c;.$p
8efa0 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 3b 0a 24 ackageName.=.(string).$xml->n;.$
8efc0 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6c 3b 0a 24 73 68 6f license.=.(string).$xml->l;.$sho
8efe0 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 rtDescription.=.(string).$xml->s
8f000 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e ;.$description.=.(string).$xml->
8f020 64 3b 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 d;..return.new.PackageInfo(.$cha
8f040 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 nnelName,.$packageName,.$license
8f060 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f ,.$shortDescription,.$descriptio
8f080 6e 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 n,.$this->readPackageReleases($b
8f0a0 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a aseUrl,.$packageName).);.}......
8f0c0 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 61 63 6b 61 67 .....private.function.readPackag
8f0e0 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 65 eReleases($baseUrl,.$packageName
8f100 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 78 ).{.$result.=.array();..try.{.$x
8f120 6d 6c 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 mlPath.=.'/r/'...strtolower($pac
8f140 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 61 6c 6c 72 65 6c 65 61 73 65 73 2e 78 6d 6c 27 3b 0a kageName)...'/allreleases.xml';.
8f160 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
8f180 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
8f1a0 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 52 45 4c 45 41 hNamespace('ns',.self::ALL_RELEA
8f1c0 53 45 53 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 SES_NS);.foreach.($xml->xpath('n
8f1e0 73 3a 72 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f s:r').as.$node).{.$releaseVersio
8f200 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 n.=.(string).$node->v;.$releaseS
8f220 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 0a 74 tability.=.(string).$node->s;..t
8f240 72 79 20 7b 0a 24 72 65 73 75 6c 74 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 ry.{.$result[$releaseVersion].=.
8f260 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 new.ReleaseInfo(.$releaseStabili
8f280 74 79 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 ty,.$this->readPackageReleaseDep
8f2a0 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 endencies($baseUrl,.$packageName
8f2c0 2c 20 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 29 0a 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 ,.$releaseVersion).);.}.catch.(T
8f2e0 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a ransportException.$exception).{.
8f300 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 if.($exception->getCode().!=.404
8f320 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 63 61 ).{.throw.$exception;.}.}.}.}.ca
8f340 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 78 63 65 70 74 69 tch.(TransportException.$excepti
8f360 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 43 6f 64 65 28 29 20 on).{.if.($exception->getCode().
8f380 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 6e 3b 0a 7d 0a 7d 0a !=.404).{.throw.$exception;.}.}.
8f3a0 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 .return.$result;.}...........pri
8f3c0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 vate.function.readPackageRelease
8f3e0 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e Dependencies($baseUrl,.$packageN
8f400 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 ame,.$version).{.$dependencyRead
8f420 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 er.=.new.PackageDependencyParser
8f440 28 29 3b 0a 0a 24 64 65 70 74 68 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c ();..$depthPath.=.'/r/'...strtol
8f460 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 64 65 70 73 2e 27 20 2e 20 ower($packageName)...'/deps.'...
8f480 24 76 65 72 73 69 6f 6e 20 2e 20 27 2e 74 78 74 27 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 $version...'.txt';.$content.=.$t
8f4a0 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 62 61 73 65 55 72 6c 2c 20 24 64 his->requestContent($baseUrl,.$d
8f4c0 65 70 74 68 50 61 74 68 29 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e epthPath);.$dependencyArray.=.un
8f4e0 73 65 72 69 61 6c 69 7a 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 serialize($content);.$result.=.$
8f500 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 dependencyReader->buildDependenc
8f520 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 72 65 74 75 72 6e yInfo($dependencyArray);..return
8f540 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e .$result;.}.}.<?php............n
8f560 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 amespace.Composer\Repository\Pea
8f580 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 r;...........class.ChannelRest11
8f5a0 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 Reader.extends.BaseChannelReader
8f5c0 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 3b 0a 0a 70 .{.private.$dependencyReader;..p
8f5e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 ublic.function.__construct($rfs)
8f600 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 .{.parent::__construct($rfs);..$
8f620 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 this->dependencyReader.=.new.Pac
8f640 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a kageDependencyParser();.}.......
8f660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 73 65 55 72 6c 29 ..public.function.read($baseUrl)
8f680 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b .{.return.$this->readChannelPack
8f6a0 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ages($baseUrl);.}.........privat
8f6c0 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 73 28 24 e.function.readChannelPackages($
8f6e0 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 baseUrl).{.$result.=.array();..$
8f700 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 6c xml.=.$this->requestXml($baseUrl
8f720 2c 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d 6c 22 29 3b 0a 24 78 6d 6c 2d 3e 72 65 ,."/c/categories.xml");.$xml->re
8f740 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:
8f760 3a 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 :ALL_CATEGORIES_NS);.foreach.($x
8f780 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 63 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 63 ml->xpath('ns:c').as.$node).{.$c
8f7a0 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 63 ategoryName.=.(string).$node;.$c
8f7c0 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 43 61 74 ategoryPackages.=.$this->readCat
8f7e0 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 egoryPackages($baseUrl,.$categor
8f800 79 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 yName);.$result.=.array_merge($r
8f820 65 73 75 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 72 65 esult,.$categoryPackages);.}..re
8f840 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 turn.$result;.}..........private
8f860 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 .function.readCategoryPackages($
8f880 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c baseUrl,.$categoryName).{.$resul
8f8a0 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 61 74 65 67 6f 72 79 50 61 74 68 20 3d 20 27 2f t.=.array();..$categoryPath.=.'/
8f8c0 63 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 2e 27 2f 70 c/'.urlencode($categoryName).'/p
8f8e0 61 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e ackagesinfo.xml';.$xml.=.$this->
8f900 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 50 61 requestXml($baseUrl,.$categoryPa
8f920 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 th);.$xml->registerXPathNamespac
8f940 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f e('ns',.self::CATEGORY_PACKAGES_
8f960 49 4e 46 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 INFO_NS);.foreach.($xml->xpath('
8f980 6e 73 3a 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f ns:pi').as.$node).{.$packageInfo
8f9a0 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 6e 6f 64 65 29 3b 0a 24 .=.$this->parsePackage($node);.$
8f9c0 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 result[].=.$packageInfo;.}..retu
8f9e0 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e rn.$result;.}........private.fun
8fa00 63 74 69 6f 6e 20 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 29 ction.parsePackage($packageInfo)
8fa20 0a 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 .{.$packageInfo->registerXPathNa
8fa40 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 mespace('ns',.self::CATEGORY_PAC
8fa60 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 KAGES_INFO_NS);.$channelName.=.(
8fa80 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 63 3b 0a 24 70 61 63 string).$packageInfo->p->c;.$pac
8faa0 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f kageName.=.(string).$packageInfo
8fac0 2d 3e 70 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 ->p->n;.$license.=.(string).$pac
8fae0 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f kageInfo->p->l;.$shortDescriptio
8fb00 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 73 3b n.=.(string).$packageInfo->p->s;
8fb20 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 .$description.=.(string).$packag
8fb40 65 49 6e 66 6f 2d 3e 70 2d 3e 64 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 61 72 eInfo->p->d;..$dependencies.=.ar
8fb60 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 ray();.foreach.($packageInfo->xp
8fb80 61 74 68 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 64 65 70 65 ath('ns:deps').as.$node).{.$depe
8fba0 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e ndencyVersion.=.(string).$node->
8fbc0 76 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a v;.$dependencyArray.=.unserializ
8fbe0 65 28 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 64 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e e((string).$node->d);..$dependen
8fc00 63 79 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 cyInfo.=.$this->dependencyReader
8fc20 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 ->buildDependencyInfo($dependenc
8fc40 79 41 72 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 64 65 70 65 6e 64 65 yArray);..$dependencies[$depende
8fc60 6e 63 79 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d ncyVersion].=.$dependencyInfo;.}
8fc80 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 6c 65 61 73 65 73 ..$releases.=.array();.$releases
8fca0 49 6e 66 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 61 Info.=.$packageInfo->xpath('ns:a
8fcc0 2f 6e 73 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 29 20 7b 0a 66 6f /ns:r');.if.($releasesInfo).{.fo
8fce0 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 61 73 20 24 6e 6f 64 65 29 20 7b reach.($releasesInfo.as.$node).{
8fd00 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 .$releaseVersion.=.(string).$nod
8fd20 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e e->v;.$releaseStability.=.(strin
8fd40 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c 65 61 73 65 73 5b 24 72 65 6c 65 61 73 65 56 g).$node->s;.$releases[$releaseV
8fd60 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 ersion].=.new.ReleaseInfo(.$rele
8fd80 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 65 74 28 24 64 65 70 65 6e 64 65 6e 63 69 65 aseStability,.isset($dependencie
8fda0 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 29 20 3f 20 24 64 65 70 65 6e 64 65 6e 63 s[$releaseVersion]).?.$dependenc
8fdc0 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3a 20 6e 65 77 20 44 65 70 65 6e ies[$releaseVersion].:.new.Depen
8fde0 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 0a 29 3b 0a 7d dencyInfo(array(),.array()).);.}
8fe00 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 .}..return.new.PackageInfo(.$cha
8fe20 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 nnelName,.$packageName,.$license
8fe40 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f ,.$shortDescription,.$descriptio
8fe60 6e 2c 0a 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a n,.$releases.);.}.}.<?php.......
8fe80 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
8fea0 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 43 ry\Pear;.......class.DependencyC
8fec0 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b 0a 70 72 69 76 61 onstraint.{.private.$type;.priva
8fee0 74 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c te.$constraint;.private.$channel
8ff00 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 0a 0a 0a 0a Name;.private.$packageName;.....
8ff20 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($
8ff40 74 79 70 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c type,.$constraint,.$channelName,
8ff60 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 .$packageName).{.$this->type.=.$
8ff80 74 79 70 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 type;.$this->constraint.=.$const
8ffa0 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 raint;.$this->channelName.=.$cha
8ffc0 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 nnelName;.$this->packageName.=.$
8ffe0 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 packageName;.}..public.function.
90000 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getChannelName().{.return.$this-
90020 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >channelName;.}..public.function
90040 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 68 69 73 2d .getConstraint().{.return.$this-
90060 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 69 6f 6e 20 >constraint;.}..public.function.
90080 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getPackageName().{.return.$this-
900a0 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >packageName;.}..public.function
900c0 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b .getType().{.return.$this->type;
900e0 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.
90100 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a Composer\Repository\Pear;.......
90120 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 class.DependencyInfo.{.private.$
90140 72 65 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 0a 0a requires;.private.$optionals;...
90160 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($
90180 72 65 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 requires,.$optionals).{.$this->r
901a0 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 equires.=.$requires;.$this->opti
901c0 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 onals.=.$optionals;.}.....public
901e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getRequires().{.return
90200 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$this->requires;.}.....public.f
90220 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.getOptionals().{.return.
90240 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a $this->optionals;.}.}.<?php.....
90260 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 .......namespace.Composer\Reposi
90280 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 44 65 tory\Pear;.......class.PackageDe
902a0 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 pendencyParser.{.......public.fu
902c0 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 41 nction.buildDependencyInfo($depA
902e0 72 72 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 41 72 72 61 79 29 rray).{.if.(!is_array($depArray)
90300 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 ).{.return.new.DependencyInfo(ar
90320 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 ray(),.array());.}.if.(!$this->i
90340 73 48 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 sHash($depArray)).{.return.new.D
90360 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 ependencyInfo($this->buildDepend
90380 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 2c 20 61 72 72 61 79 28 29 29 3b ency10Info($depArray),.array());
903a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 .}..return.$this->buildDependenc
903c0 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a y20Info($depArray);.}...........
903e0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 ...private.function.buildDepende
90400 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 ncy10Info($depArray).{.static.$d
90420 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 27 20 ep10toOperatorMap.=.array('has'.
90440 3d 3e 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 =>.'==',.'eq'.=>.'==',.'ge'.=>.'
90460 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 6c 65 27 20 3d 3e 20 27 3c 3d 27 2c 20 >=',.'gt'.=>.'>',.'le'.=>.'<=',.
90480 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 72 'lt'.=>.'<',.'not'.=>.'!=');..$r
904a0 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 esult.=.array();..foreach.($depA
904c0 72 72 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 64 rray.as.$depItem).{.if.(empty($d
904e0 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 epItem['rel']).||.!array_key_exi
90500 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 2c 20 24 64 65 70 31 30 74 6f 4f 70 65 sts($depItem['rel'],.$dep10toOpe
90520 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 70 ratorMap)).{...continue;.}..$dep
90540 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c Type.=.!empty($depItem['optional
90560 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e ']).&&.'yes'.==.$depItem['option
90580 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a 20 27 72 65 71 75 69 72 65 64 27 3b 0a al'].?.'optional'.:.'required';.
905a0 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 $depType.=.'not'.==.$depItem['re
905c0 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a 20 24 64 65 70 54 79 70 65 3b 0a 0a 24 l'].?.'conflicts'.:.$depType;..$
905e0 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 76 65 depVersion.=.!empty($depItem['ve
90600 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 rsion']).?.$this->parseVersion($
90620 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3a 20 27 2a 27 3b 0a 0a 0a 20 24 64 depItem['version']).:.'*';....$d
90640 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 27 68 61 73 27 20 3d 3d 20 epVersionConstraint.=.('has'.==.
90660 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 $depItem['rel'].||.'not'.==.$dep
90680 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 20 3d 3d 20 24 64 65 70 56 65 72 73 69 Item['rel']).&&.'*'.==.$depVersi
906a0 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 on.?.'*'.:.$dep10toOperatorMap[$
906c0 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 64 65 70 56 65 72 73 69 6f 6e 3b 0a 0a depItem['rel']]...$depVersion;..
906e0 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 79 70 65 27 5d 29 20 7b 0a 63 61 73 65 switch.($depItem['type']).{.case
90700 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 70 68 70 27 3b .'php':.$depChannelName.=.'php';
90720 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 .$depPackageName.=.'';.break;.ca
90740 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 21 65 6d 70 se.'pkg':.$depChannelName.=.!emp
90760 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 20 3f 20 24 64 65 70 49 74 ty($depItem['channel']).?.$depIt
90780 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 61 72 2e 70 68 70 2e 6e 65 74 27 3b 0a em['channel'].:.'pear.php.net';.
907a0 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 $depPackageName.=.$depItem['name
907c0 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 27 3a 0a 24 64 65 70 43 68 61 6e 6e '];.break;.case.'ext':.$depChann
907e0 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 elName.=.'ext';.$depPackageName.
90800 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 =.$depItem['name'];.break;.case.
90820 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 'os':.case.'sapi':.$depChannelNa
90840 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 me.=.'';.$depPackageName.=.'';.b
90860 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d reak;.default:.$depChannelName.=
90880 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b .'';.$depPackageName.=.'';.break
908a0 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 ;.}..if.(''.!=.$depChannelName).
908c0 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 {.$result[].=.new.DependencyCons
908e0 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
90900 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
90920 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 ckageName.);.}.}..return.$result
90940 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c ;.}........private.function.buil
90960 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 24 dDependency20Info($depArray).{.$
90980 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 result.=.array();.$optionals.=.a
909a0 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 rray();.$defaultOptionals.=.arra
909c0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 54 y();.foreach.($depArray.as.$depT
909e0 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 20 7b 0a 69 66 20 28 21 69 73 5f ype.=>.$depTypeGroup).{.if.(!is_
90a00 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 array($depTypeGroup)).{.continue
90a20 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 3d 3d 20 24 64 65 70 54 79 70 65 20 7c ;.}.if.('required'.==.$depType.|
90a40 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 66 6f 72 65 |.'optional'.==.$depType).{.fore
90a60 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 54 79 ach.($depTypeGroup.as.$depItemTy
90a80 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 pe.=>.$depItem).{.switch.($depIt
90aa0 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 72 65 73 75 6c 74 5b 5d 20 emType).{.case.'php':.$result[].
90ac0 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 =.new.DependencyConstraint(.$dep
90ae0 54 79 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 Type,.$this->parse20VersionConst
90b00 72 61 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 68 70 27 2c 0a 27 27 0a 29 3b 0a 62 72 raint($depItem),.'php',.''.);.br
90b20 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 eak;.case.'package':.$deps.=.$th
90b40 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 is->buildDepPackageConstraints($
90b60 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 depItem,.$depType);.$result.=.ar
90b80 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b ray_merge($result,.$deps);.break
90ba0 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 ;.case.'extension':.$deps.=.$thi
90bc0 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 s->buildDepExtensionConstraints(
90be0 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 $depItem,.$depType);.$result.=.a
90c00 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 rray_merge($result,.$deps);.brea
90c20 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 k;.case.'subpackage':.$deps.=.$t
90c40 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 his->buildDepPackageConstraints(
90c60 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 24 64 65 66 61 75 6c 74 4f $depItem,.'replaces');.$defaultO
90c80 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 ptionals.+=.$deps;.break;.case.'
90ca0 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 27 3a 0a 62 72 65 61 6b os':.case.'pearinstaller':.break
90cc0 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 ;.default:.break;.}.}.}.elseif.(
90ce0 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 'group'.==.$depType).{.if.($this
90d00 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 24 64 65 70 54 ->isHash($depTypeGroup)).{.$depT
90d20 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 3b ypeGroup.=.array($depTypeGroup);
90d40 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 .}..foreach.($depTypeGroup.as.$d
90d60 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b epItem).{.$groupName.=.$depItem[
90d80 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 'attribs']['name'];.if.(!isset($
90da0 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 29 29 20 7b 0a 24 6f 70 74 69 6f optionals[$groupName])).{.$optio
90dc0 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 nals[$groupName].=.array();.}..i
90de0 66 20 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 29 f.(isset($depItem['subpackage'])
90e00 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 2b 3d 20 24 74 ).{.$optionals[$groupName].+=.$t
90e20 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 his->buildDepPackageConstraints(
90e40 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 2c 20 27 72 65 70 6c 61 63 65 $depItem['subpackage'],.'replace
90e60 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 20 2b 3d 20 24 74 68 69 73 2d 3e s');.}.else.{.$result.+=.$this->
90e80 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 buildDepPackageConstraints($depI
90ea0 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 74 69 6f 6e 61 6c 27 29 3b 0a 7d 0a 7d tem['package'],.'optional');.}.}
90ec0 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c .}.}..if.(count($defaultOptional
90ee0 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 27 2a 27 5d 20 3d 20 24 64 65 66 s).>.0).{.$optionals['*'].=.$def
90f00 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 aultOptionals;.}..return.new.Dep
90f20 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 endencyInfo($result,.$optionals)
90f40 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 ;.}.........private.function.bui
90f60 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 ldDepExtensionConstraints($depIt
90f80 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 em,.$depType).{.if.($this->isHas
90fa0 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 h($depItem)).{.$depItem.=.array(
90fc0 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b $depItem);.}..$result.=.array();
90fe0 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 65 .foreach.($depItem.as.$subDepIte
91000 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 m).{.$depChannelName.=.'ext';.$d
91020 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d epPackageName.=.$subDepItem['nam
91040 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 e'];.$depVersionConstraint.=.$th
91060 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 is->parse20VersionConstraint($su
91080 62 44 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 bDepItem);..$result[].=.new.Depe
910a0 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 ndencyConstraint(.$depType,.$dep
910c0 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 VersionConstraint,.$depChannelNa
910e0 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e me,.$depPackageName.);.}..return
91100 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .$result;.}.........private.func
91120 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 tion.buildDepPackageConstraints(
91140 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d $depItem,.$depType).{.if.($this-
91160 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 >isHash($depItem)).{.$depItem.=.
91180 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 array($depItem);.}..$result.=.ar
911a0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 ray();.foreach.($depItem.as.$sub
911c0 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 73 75 DepItem).{.$depChannelName.=.$su
911e0 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 bDepItem['channel'];.$depPackage
91200 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 Name.=.$subDepItem['name'];.$dep
91220 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 VersionConstraint.=.$this->parse
91240 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d 29 20VersionConstraint($subDepItem)
91260 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 6f 6e 66 6c 69 63 ;.if.(isset($subDepItem['conflic
91280 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 63 6f 6e 66 6c 69 63 74 73 27 3b ts'])).{.$depType.=.'conflicts';
912a0 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f .}..$result[].=.new.DependencyCo
912c0 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 nstraint(.$depType,.$depVersionC
912e0 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 onstraint,.$depChannelName,.$dep
91300 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 PackageName.);.}..return.$result
91320 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 ;.}........private.function.pars
91340 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 61 72 72 61 79 20 24 64 61 74 61 e20VersionConstraint(array.$data
91360 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d ).{.static.$dep20toOperatorMap.=
91380 20 61 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 .array('has'.=>.'==',.'min'.=>.'
913a0 3e 3d 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 65 78 63 6c 75 64 65 27 20 3d 3e >=',.'max'.=>.'<=',.'exclude'.=>
913c0 20 27 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 .'!=');..$versions.=.array();.$v
913e0 61 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 64 61 74 alues.=.array_intersect_key($dat
91400 61 2c 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 3b 0a 69 66 20 28 30 20 3d a,.$dep20toOperatorMap);.if.(0.=
91420 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 27 3b 0a =.count($values)).{.return.'*';.
91440 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 20 26 26 20 69 }.if.(isset($values['min']).&&.i
91460 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 sset($values['exclude']).&&.$dat
91480 61 5b 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a a['min'].==.$data['exclude']).{.
914a0 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 $versions[].=.'>'...$this->parse
914c0 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 Version($values['min']);.}.elsei
914e0 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 20 26 26 20 69 73 73 65 f.(isset($values['max']).&&.isse
91500 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 5b 27 t($values['exclude']).&&.$data['
91520 6d 61 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 max'].==.$data['exclude']).{.$ve
91540 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 rsions[].=.'<'...$this->parseVer
91560 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 sion($values['max']);.}.else.{.f
91580 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 6f 70 20 3d 3e 20 24 76 65 72 73 69 oreach.($values.as.$op.=>.$versi
915a0 6f 6e 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 64 65 27 20 3d 3d 20 24 6f 70 20 26 26 20 69 73 on).{.if.('exclude'.==.$op.&&.is
915c0 5f 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 _array($version)).{.foreach.($ve
915e0 72 73 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f 6e 50 61 72 74 29 20 7b 0a 24 76 65 72 73 69 6f rsion.as.$versionPart).{.$versio
91600 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 ns[].=.$dep20toOperatorMap[$op].
91620 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 50 61 ..$this->parseVersion($versionPa
91640 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 rt);.}.}.else.{.$versions[].=.$d
91660 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e ep20toOperatorMap[$op]...$this->
91680 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 parseVersion($version);.}.}.}..r
916a0 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d eturn.implode(',',.$versions);.}
916c0 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 56 65 ........private.function.parseVe
916e0 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 rsion($version).{.if.(preg_match
91700 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 ('{^v?(\d{1,3})(\.\d+)?(\.\d+)?(
91720 5c 2e 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 \.\d+)?}i',.$version,.$matches))
91740 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 .{.$version.=.$matches[1]..(!emp
91760 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 ty($matches[2]).?.$matches[2].:.
91780 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d '.0')..(!empty($matches[3]).?.$m
917a0 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 atches[3].:.'.0')..(!empty($matc
917c0 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 0a hes[4]).?.$matches[4].:.'.0');..
917e0 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b return.$version;.}..return.null;
91800 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 61 73 .}........private.function.isHas
91820 68 28 61 72 72 61 79 20 24 61 72 72 61 79 29 0a 7b 0a 72 65 74 75 72 6e 20 21 61 72 72 61 79 5f h(array.$array).{.return.!array_
91840 6b 65 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 72 72 61 79 29 20 26 26 20 21 61 72 72 61 79 5f key_exists(1,.$array).&&.!array_
91860 6b 65 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 key_exists(0,.$array);.}.}.<?php
91880 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
918a0 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b epository\Pear;.......class.Pack
918c0 61 67 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a ageInfo.{.private.$channelName;.
918e0 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c private.$packageName;.private.$l
91900 69 63 65 6e 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f icense;.private.$shortDescriptio
91920 6e 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 n;.private.$description;.private
91940 20 24 72 65 6c 65 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$releases;..........public.func
91960 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 tion.__construct($channelName,.$
91980 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 73 packageName,.$license,.$shortDes
919a0 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 65 cription,.$description,.$release
919c0 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e s).{.$this->channelName.=.$chann
919e0 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 elName;.$this->packageName.=.$pa
91a00 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 ckageName;.$this->license.=.$lic
91a20 65 6e 73 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 ense;.$this->shortDescription.=.
91a40 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 $shortDescription;.$this->descri
91a60 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 72 65 6c ption.=.$description;.$this->rel
91a80 65 61 73 65 73 20 3d 20 24 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 eases.=.$releases;.}.....public.
91aa0 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 function.getChannelName().{.retu
91ac0 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 rn.$this->channelName;.}.....pub
91ae0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a lic.function.getPackageName().{.
91b00 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a return.$this->packageName;.}....
91b20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 .public.function.getDescription(
91b40 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d ).{.return.$this->description;.}
91b60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 44 65 73 .....public.function.getShortDes
91b80 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 73 68 6f 72 74 cription().{.return.$this->short
91ba0 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Description;.}.....public.functi
91bc0 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getLicense().{.return.$this->
91be0 6c 69 63 65 6e 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 67 license;.}.....public.function.g
91c00 65 74 52 65 6c 65 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c etReleases().{.return.$this->rel
91c20 65 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 eases;.}.}.<?php............name
91c40 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;.
91c60 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 0a 70 72 69 76 61 74 ......class.ReleaseInfo.{.privat
91c80 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 70 65 6e 64 65 6e 63 e.$stability;.private.$dependenc
91ca0 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 6f 6e 20 5f 5f 63 6f yInfo;......public.function.__co
91cc0 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 6e 64 65 6e 63 79 49 nstruct($stability,.$dependencyI
91ce0 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 20 24 73 74 61 62 69 nfo).{.$this->stability.=.$stabi
91d00 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 66 6f 20 3d 20 24 64 lity;.$this->dependencyInfo.=.$d
91d20 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 69 63 20 66 75 6e 63 ependencyInfo;.}.....public.func
91d40 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 7b 0a 72 65 74 75 72 tion.getDependencyInfo().{.retur
91d60 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 7d 0a 0a 0a 0a 0a 70 n.$this->dependencyInfo;.}.....p
91d80 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 28 29 0a 7b 0a ublic.function.getStability().{.
91da0 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 7d 0a 7d 0a 3c 3f 70 return.$this->stability;.}.}.<?p
91dc0 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
91de0 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 49 4f 5c 49 4f \Repository;..use.Composer\IO\IO
91e00 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 Interface;.use.Composer\Semver\V
91e20 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
91e40 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 3b 0a 75 73 65 20 43 6f itory\Pear\ChannelReader;.use.Co
91e60 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;.
91e80 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 use.Composer\Repository\Pear\Cha
91ea0 6e 6e 65 6c 49 6e 66 6f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 nnelInfo;.use.Composer\EventDisp
91ec0 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 atcher\EventDispatcher;.use.Comp
91ee0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c oser\Package\Link;.use.Composer\
91f00 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 Semver\Constraint\Constraint;.us
91f20 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d e.Composer\Util\RemoteFilesystem
91f40 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 0a 0a 0a 0a ;.use.Composer\Config;..........
91f60 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 73 20 41 72 .class.PearRepository.extends.Ar
91f80 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 43 6f 6e 66 69 67 75 rayRepository.implements.Configu
91fa0 72 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 70 72 69 76 61 rableRepositoryInterface.{.priva
91fc0 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 te.$url;.private.$io;.private.$r
91fe0 66 73 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 69 76 fs;.private.$versionParser;.priv
92000 61 74 65 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 ate.$repoConfig;.....private.$ve
92020 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 5f 5f 63 6f ndorAlias;..public.function.__co
92040 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 nstruct(array.$repoConfig,.IOInt
92060 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 45 76 65 6e erface.$io,.Config.$config,.Even
92080 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 6c 6c 2c 20 tDispatcher.$dispatcher.=.null,.
920a0 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 7b 0a RemoteFilesystem.$rfs.=.null).{.
920c0 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 7d 27 2c 20 if.(!preg_match('{^https?://}',.
920e0 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 43 6f 6e 66 $repoConfig['url'])).{.$repoConf
92100 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 6f 6e 66 69 ig['url'].=.'http://'.$repoConfi
92120 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 65 5f 75 72 g['url'];.}..$urlBits.=.parse_ur
92140 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 6d 70 74 79 l($repoConfig['url']);.if.(empty
92160 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 79 28 24 75 ($urlBits['scheme']).||.empty($u
92180 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 20 5c 55 6e rlBits['host'])).{.throw.new.\Un
921a0 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 6c 69 64 20 expectedValueException('Invalid.
921c0 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 79 3a 20 27 url.given.for.PEAR.repository:.'
921e0 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 69 73 2d 3e .$repoConfig['url']);.}..$this->
92200 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 27 5d 2c 20 url.=.rtrim($repoConfig['url'],.
92220 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 2d 3e 72 66 '/');.$this->io.=.$io;.$this->rf
92240 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 65 6d s.=.$rfs.?:.new.RemoteFilesystem
92260 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 3e 76 65 6e ($this->io,.$config);.$this->ven
92280 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 dorAlias.=.isset($repoConfig['ve
922a0 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 6e ndor-alias']).?.$repoConfig['ven
922c0 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 dor-alias'].:.null;.$this->versi
922e0 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();.
92300 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b $this->repoConfig.=.$repoConfig;
92320 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 70 6f 43 6f 6e 66 69 .}..public.function.getRepoConfi
92340 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 3b 0a g().{.return.$this->repoConfig;.
92360 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 }..protected.function.initialize
92380 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 ().{.parent::initialize();..$thi
923a0 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 69 6e 67 20 s->io->writeError('Initializing.
923c0 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 29 3b 0a 0a PEAR.repository.'.$this->url);..
923e0 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 24 74 68 69 $reader.=.new.ChannelReader($thi
92400 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 3d 20 24 72 s->rfs);.try.{.$channelInfo.=.$r
92420 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 61 74 63 68 eader->read($this->url);.}.catch
92440 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 2d 3e 77 72 .(\Exception.$e).{.$this->io->wr
92460 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 73 69 74 6f iteError('<warning>PEAR.reposito
92480 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 20 6e 6f 74 ry.from.'.$this->url.'.could.not
924a0 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 28 29 2e 27 .be.loaded..'.$e->getMessage().'
924c0 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 63 6b 61 67 </warning>');..return;.}.$packag
924e0 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 6b 61 67 65 es.=.$this->buildComposerPackage
92500 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 6f 6e 50 61 s($channelInfo,.$this->versionPa
92520 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 20 24 70 61 rser);.foreach.($packages.as.$pa
92540 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 70 61 63 6b ckage).{.$this->addPackage($pack
92560 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 6e 63 74 69 age);.}.}.........private.functi
92580 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c on.buildComposerPackages(Channel
925a0 49 6e 66 6f 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 Info.$channelInfo,.VersionParser
925c0 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 .$versionParser).{.$result.=.arr
925e0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 ay();.foreach.($channelInfo->get
92600 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e Packages().as.$packageDefinition
92620 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d ).{.foreach.($packageDefinition-
92640 3e 67 65 74 52 65 6c 65 61 73 65 73 28 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 >getReleases().as.$version.=>.$r
92660 65 6c 65 61 73 65 49 6e 66 6f 29 20 7b 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 eleaseInfo).{.try.{.$normalizedV
92680 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 ersion.=.$versionParser->normali
926a0 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 ze($version);.}.catch.(\Unexpect
926c0 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 edValueException.$e).{.if.($this
926e0 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e ->io->isVerbose()).{.$this->io->
92700 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 2e 24 70 61 writeError('Could.not.load.'.$pa
92720 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 ckageDefinition->getPackageName(
92740 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 65 73 73 61 ).'.'.$version.':.'.$e->getMessa
92760 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 73 65 72 50 ge());.}.continue;.}..$composerP
92780 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 ackageName.=.$this->buildCompose
927a0 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 69 6f 6e 2d rPackageName($packageDefinition-
927c0 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 65 66 69 6e >getChannelName(),.$packageDefin
927e0 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 20 0a 20 24 ition->getPackageName());......$
92800 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 72 6c 29 3b urlBits.=.parse_url($this->url);
92820 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 73 63 68 65 .$scheme.=.(isset($urlBits['sche
92840 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 73 5b 27 73 me']).&&.'https'.===.$urlBits['s
92860 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 27 6f 70 65 cheme'].&&.extension_loaded('ope
92880 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 24 64 69 73 nssl')).?.'https'.:.'http';.$dis
928a0 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 65 44 65 66 tUrl.=."{$scheme}://{$packageDef
928c0 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 65 74 2f 7b inition->getChannelName()}/get/{
928e0 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 61 $packageDefinition->getPackageNa
92900 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 75 69 72 65 me()}-{$version}.tgz";..$require
92920 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 61 79 28 29 s.=.array();.$suggests.=.array()
92940 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 6c 61 63 65 ;.$conflicts.=.array();.$replace
92960 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 65 6c 49 6e s.=.array();......if.($channelIn
92980 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 69 6e 69 74 fo->getName().==.$packageDefinit
929a0 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 6d 70 6f 73 ion->getChannelName()).{.$compos
929c0 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 64 43 6f 6d erPackageAlias.=.$this->buildCom
929e0 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 6f 2d 3e 67 poserPackageName($channelInfo->g
92a00 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 6e 2d 3e 67 etAlias(),.$packageDefinition->g
92a20 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 74 72 61 69 etPackageName());.$aliasConstrai
92a40 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 nt.=.new.Constraint('==',.$norma
92a60 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 lizedVersion);.$replaces[].=.new
92a80 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 63 6f 6d .Link($composerPackageName,.$com
92aa0 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 poserPackageAlias,.$aliasConstra
92ac0 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 int,.'replaces',.(string).$alias
92ae0 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 Constraint);.}....if.(!empty($th
92b00 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 is->vendorAlias).&&.($this->vend
92b20 6f 72 41 6c 69 61 73 20 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d orAlias.!=.'pear-'.$channelInfo-
92b40 3e 67 65 74 41 6c 69 61 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 >getAlias().||.$channelInfo->get
92b60 4e 61 6d 65 28 29 20 21 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 Name().!=.$packageDefinition->ge
92b80 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 tChannelName()).).{.$composerPac
92ba0 6b 61 67 65 41 6c 69 61 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 kageAlias.=."{$this->vendorAlias
92bc0 7d 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 }/{$packageDefinition->getPackag
92be0 65 4e 61 6d 65 28 29 7d 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 eName()}";.$aliasConstraint.=.ne
92c00 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 w.Constraint('==',.$normalizedVe
92c20 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 rsion);.$replaces[].=.new.Link($
92c40 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 composerPackageName,.$composerPa
92c60 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 ckageAlias,.$aliasConstraint,.'r
92c80 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 eplaces',.(string).$aliasConstra
92ca0 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e int);.}..foreach.($releaseInfo->
92cc0 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 52 65 71 75 69 72 65 73 getDependencyInfo()->getRequires
92ce0 28 29 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 ().as.$dependencyConstraint).{.$
92d00 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 dependencyPackageName.=.$this->b
92d20 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 uildComposerPackageName($depende
92d40 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c ncyConstraint->getChannelName(),
92d60 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 .$dependencyConstraint->getPacka
92d80 67 65 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 65 72 73 69 6f geName());.$constraint.=.$versio
92da0 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 65 6e nParser->parseConstraints($depen
92dc0 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 dencyConstraint->getConstraint()
92de0 29 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 );.$link.=.new.Link($composerPac
92e00 6b 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 kageName,.$dependencyPackageName
92e20 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 ,.$constraint,.$dependencyConstr
92e40 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 aint->getType(),.$dependencyCons
92e60 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 73 77 69 74 63 68 traint->getConstraint());.switch
92e80 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 .($dependencyConstraint->getType
92ea0 28 29 29 20 7b 0a 63 61 73 65 20 27 72 65 71 75 69 72 65 64 27 3a 0a 24 72 65 71 75 69 72 65 73 ()).{.case.'required':.$requires
92ec0 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 63 6f 6e 66 6c 69 63 [].=.$link;.break;.case.'conflic
92ee0 74 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b ts':.$conflicts[].=.$link;.break
92f00 3b 0a 63 61 73 65 20 27 72 65 70 6c 61 63 65 73 27 3a 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d ;.case.'replaces':.$replaces[].=
92f20 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 .$link;.break;.}.}..foreach.($re
92f40 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e leaseInfo->getDependencyInfo()->
92f60 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 20 61 73 20 24 67 72 6f 75 70 20 3d 3e 20 24 64 65 70 getOptionals().as.$group.=>.$dep
92f80 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 endencyConstraints).{.foreach.($
92fa0 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 64 65 70 65 6e 64 dependencyConstraints.as.$depend
92fc0 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 encyConstraint).{.$dependencyPac
92fe0 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 kageName.=.$this->buildComposerP
93000 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 ackageName($dependencyConstraint
93020 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 ->getChannelName(),.$dependencyC
93040 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 73 onstraint->getPackageName());.$s
93060 75 67 67 65 73 74 73 5b 24 67 72 6f 75 70 2e 27 2d 27 2e 24 64 65 70 65 6e 64 65 6e 63 79 50 61 uggests[$group.'-'.$dependencyPa
93080 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 ckageName].=.$dependencyConstrai
930a0 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b 61 nt->getConstraint();.}.}..$packa
930c0 67 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 ge.=.new.CompletePackage($compos
930e0 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f erPackageName,.$normalizedVersio
93100 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 n,.$version);.$package->setType(
93120 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 'pear-library');.$package->setDe
93140 73 63 72 69 70 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 scription($packageDefinition->ge
93160 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 tDescription());.$package->setLi
93180 63 65 6e 73 65 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e cense(array($packageDefinition->
931a0 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 getLicense()));.$package->setDis
931c0 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 tType('file');.$package->setDist
931e0 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f Url($distUrl);.$package->setAuto
93200 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 27 load(array('classmap'.=>.array('
93220 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 ')));.$package->setIncludePaths(
93240 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 array('/'));.$package->setRequir
93260 65 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 es($requires);.$package->setConf
93280 6c 69 63 74 73 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 licts($conflicts);.$package->set
932a0 53 75 67 67 65 73 74 73 28 24 73 75 67 67 65 73 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 Suggests($suggests);.$package->s
932c0 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 6c 61 63 65 73 29 3b 0a 24 72 65 73 75 6c 74 5b 5d etReplaces($replaces);.$result[]
932e0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 .=.$package;.}.}..return.$result
93300 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f ;.}..private.function.buildCompo
93320 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 serPackageName($channelName,.$pa
93340 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 27 70 68 70 27 20 3d 3d 3d 20 24 63 68 61 6e ckageName).{.if.('php'.===.$chan
93360 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 70 68 70 22 3b 0a 7d 0a 69 66 20 28 27 nelName).{.return."php";.}.if.('
93380 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 ext'.===.$channelName).{.return.
933a0 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 "ext-{$packageName}";.}..return.
933c0 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 7d 2f 7b 24 70 61 63 6b 61 67 65 4e 61 "pear-{$channelName}/{$packageNa
933e0 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 me}";.}.}.<?php............names
93400 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 pace.Composer\Repository;..use.C
93420 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 omposer\Config;.use.Composer\Pac
93440 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 6f kage\PackageInterface;.use.Compo
93460 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 75 73 65 ser\Package\CompletePackage;.use
93480 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a .Composer\Semver\VersionParser;.
934a0 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 49 6e 74 65 72 66 use.Composer\Plugin\PluginInterf
934c0 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 ace;.....class.PlatformRepositor
934e0 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 63 6f 6e 73 y.extends.ArrayRepository.{.cons
93500 74 20 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 20 3d 20 27 7b 5e 28 3f t.PLATFORM_PACKAGE_REGEX.=.'{^(?
93520 3a 70 68 70 28 3f 3a 2d 36 34 62 69 74 29 3f 7c 68 68 76 6d 7c 28 3f 3a 65 78 74 7c 6c 69 62 29 :php(?:-64bit)?|hhvm|(?:ext|lib)
93540 2d 5b 5e 2f 5d 2b 29 24 7d 69 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 76 -[^/]+)$}i';.........private.$ov
93560 65 72 72 69 64 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 errides.=.array();..public.funct
93580 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 65 73 20 ion.__construct(array.$packages.
935a0 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 6f 76 65 72 72 69 64 65 73 20 3d 20 61 72 =.array(),.array.$overrides.=.ar
935c0 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 76 65 72 72 69 64 65 73 20 61 73 20 ray()).{.foreach.($overrides.as.
935e0 24 6e 61 6d 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 $name.=>.$version).{.$this->over
93600 72 69 64 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 20 3d 20 61 72 72 61 79 rides[strtolower($name)].=.array
93620 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 ('name'.=>.$name,.'version'.=>.$
93640 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 version);.}.parent::__construct(
93660 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f $packages);.}..protected.functio
93680 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c n.initialize().{.parent::initial
936a0 69 7a 65 28 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 ize();..$versionParser.=.new.Ver
936c0 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 sionParser();......foreach.($thi
936e0 73 2d 3e 6f 76 65 72 72 69 64 65 73 20 61 73 20 24 6f 76 65 72 72 69 64 65 29 20 7b 0a 0a 20 69 s->overrides.as.$override).{...i
93700 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 73 65 6c 66 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 f.(!preg_match(self::PLATFORM_PA
93720 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6f 76 65 72 72 69 64 65 5b 27 6e 61 6d 65 27 5d 29 29 CKAGE_REGEX,.$override['name']))
93740 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
93760 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 eption('Invalid.platform.package
93780 20 6e 61 6d 65 20 69 6e 20 63 6f 6e 66 69 67 2e 70 6c 61 74 66 6f 72 6d 3a 20 27 2e 24 6f 76 65 .name.in.config.platform:.'.$ove
937a0 72 72 69 64 65 5b 27 6e 61 6d 65 27 5d 29 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 rride['name']);.}..$version.=.$v
937c0 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 6f 76 65 72 72 69 64 ersionParser->normalize($overrid
937e0 65 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 43 6f e['version']);.$package.=.new.Co
93800 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 6f 76 65 72 72 69 64 65 5b 27 6e 61 6d 65 27 5d 2c mpletePackage($override['name'],
93820 20 24 76 65 72 73 69 6f 6e 2c 20 24 6f 76 65 72 72 69 64 65 5b 27 76 65 72 73 69 6f 6e 27 5d 29 .$version,.$override['version'])
93840 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 27 4f 76 65 72 ;.$package->setDescription('Over
93860 72 69 64 64 65 6e 20 76 69 72 74 75 61 6c 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 20 ridden.virtual.platform.package.
93880 27 2e 24 6f 76 65 72 72 69 64 65 5b 27 6e 61 6d 65 27 5d 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 '.$override['name']);.parent::ad
938a0 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 70 72 65 74 74 79 56 65 dPackage($package);.}..$prettyVe
938c0 72 73 69 6f 6e 20 3d 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3a 3a 50 4c 55 47 49 4e 5f rsion.=.PluginInterface::PLUGIN_
938e0 41 50 49 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e API_VERSION;.$version.=.$version
93900 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e Parser->normalize($prettyVersion
93920 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 20 3d 20 6e 65 77 20 43 6f 6d 70 );.$composerPluginApi.=.new.Comp
93940 6c 65 74 65 50 61 63 6b 61 67 65 28 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 letePackage('composer-plugin-api
93960 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 63 ',.$version,.$prettyVersion);.$c
93980 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e omposerPluginApi->setDescription
939a0 28 27 54 68 65 20 43 6f 6d 70 6f 73 65 72 20 50 6c 75 67 69 6e 20 41 50 49 27 29 3b 0a 24 74 68 ('The.Composer.Plugin.API');.$th
939c0 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 is->addPackage($composerPluginAp
939e0 69 29 3b 0a 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 48 50 5f i);..try.{.$prettyVersion.=.PHP_
93a00 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 VERSION;.$version.=.$versionPars
93a20 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d er->normalize($prettyVersion);.}
93a40 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f .catch.(\UnexpectedValueExceptio
93a60 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 n.$e).{.$prettyVersion.=.preg_re
93a80 70 6c 61 63 65 28 27 23 5e 28 5b 5e 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 24 31 27 2c 20 50 place('#^([^~+-]+).*$#',.'$1',.P
93aa0 48 50 5f 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e HP_VERSION);.$version.=.$version
93ac0 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e Parser->normalize($prettyVersion
93ae0 29 3b 0a 7d 0a 0a 24 70 68 70 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 );.}..$php.=.new.CompletePackage
93b00 28 27 70 68 70 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e ('php',.$version,.$prettyVersion
93b20 29 3b 0a 24 70 68 70 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 50 48 50 );.$php->setDescription('The.PHP
93b40 20 69 6e 74 65 72 70 72 65 74 65 72 27 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 .interpreter');.$this->addPackag
93b60 65 28 24 70 68 70 29 3b 0a 0a 69 66 20 28 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 3d 3d 3d 20 38 e($php);..if.(PHP_INT_SIZE.===.8
93b80 29 20 7b 0a 24 70 68 70 36 34 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 ).{.$php64.=.new.CompletePackage
93ba0 28 27 70 68 70 2d 36 34 62 69 74 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 ('php-64bit',.$version,.$prettyV
93bc0 65 72 73 69 6f 6e 29 3b 0a 24 70 68 70 36 34 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 ersion);.$php64->setDescription(
93be0 27 54 68 65 20 50 48 50 20 69 6e 74 65 72 70 72 65 74 65 72 20 28 36 34 62 69 74 29 27 29 3b 0a 'The.PHP.interpreter.(64bit)');.
93c00 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 68 70 36 34 29 3b 0a 7d 0a 0a 24 6c $this->addPackage($php64);.}..$l
93c20 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 67 65 74 5f 6c 6f 61 64 65 64 5f 65 78 74 oadedExtensions.=.get_loaded_ext
93c40 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 ensions();....foreach.($loadedEx
93c60 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 tensions.as.$name).{.if.(in_arra
93c80 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 73 74 61 6e 64 61 72 64 27 2c 20 27 43 6f 72 65 y($name,.array('standard',.'Core
93ca0 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 66 6c 45 78 74 20 3d 20 6e '))).{.continue;.}..$reflExt.=.n
93cc0 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a ew.\ReflectionExtension($name);.
93ce0 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 66 6c 45 78 74 2d try.{.$prettyVersion.=.$reflExt-
93d00 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 >getVersion();.$version.=.$versi
93d20 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 onParser->normalize($prettyVersi
93d40 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 on);.}.catch.(\UnexpectedValueEx
93d60 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 6e 20 3d 20 27 ception.$e).{.$prettyVersion.=.'
93d80 30 27 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 0';.$version.=.$versionParser->n
93da0 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 70 61 ormalize($prettyVersion);.}..$pa
93dc0 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4e ckageName.=.$this->buildPackageN
93de0 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 24 65 78 74 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 ame($name);.$ext.=.new.CompleteP
93e00 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 ackage($packageName,.$version,.$
93e20 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 65 78 74 2d 3e 73 65 74 44 65 73 63 72 69 70 prettyVersion);.$ext->setDescrip
93e40 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 65 78 74 65 6e 73 69 6f tion('The.'.$name.'.PHP.extensio
93e60 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 65 78 74 29 3b 0a 7d 0a n');.$this->addPackage($ext);.}.
93e80 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e .......foreach.($loadedExtension
93ea0 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 6e s.as.$name).{.$prettyVersion.=.n
93ec0 75 6c 6c 3b 0a 73 77 69 74 63 68 20 28 24 6e 61 6d 65 29 20 7b 0a 63 61 73 65 20 27 63 75 72 6c ull;.switch.($name).{.case.'curl
93ee0 27 3a 0a 24 63 75 72 6c 56 65 72 73 69 6f 6e 20 3d 20 63 75 72 6c 5f 76 65 72 73 69 6f 6e 28 29 ':.$curlVersion.=.curl_version()
93f00 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 63 75 72 6c 56 65 72 73 69 6f 6e 5b ;.$prettyVersion.=.$curlVersion[
93f20 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 63 6f 6e 76 27 'version'];.break;..case.'iconv'
93f40 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 43 4f 4e 56 5f 56 45 52 53 49 4f 4e :.$prettyVersion.=.ICONV_VERSION
93f60 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 74 6c 27 3a 0a 24 6e 61 6d 65 20 3d 20 27 ;.break;..case.'intl':.$name.=.'
93f80 49 43 55 27 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 ICU';.if.(defined('INTL_ICU_VERS
93fa0 49 4f 4e 27 29 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 4e 54 4c 5f 49 ION')).{.$prettyVersion.=.INTL_I
93fc0 43 55 5f 56 45 52 53 49 4f 4e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 66 6c 65 63 74 6f 72 20 CU_VERSION;.}.else.{.$reflector.
93fe0 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 27 69 6e 74 6c =.new.\ReflectionExtension('intl
94000 27 29 3b 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 24 72 65 66 6c 65 63 74 6f 72 2d 3e 69 6e 66 ');..ob_start();.$reflector->inf
94020 6f 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 0a o();.$output.=.ob_get_clean();..
94040 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 49 43 55 20 76 65 72 73 69 6f 6e 20 3d 3e 20 28 2e 2a preg_match('/^ICU.version.=>.(.*
94060 29 24 2f 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 24 70 72 65 74 )$/m',.$output,.$matches);.$pret
94080 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 62 72 65 61 tyVersion.=.$matches[1];.}..brea
940a0 6b 3b 0a 0a 63 61 73 65 20 27 6c 69 62 78 6d 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f k;..case.'libxml':.$prettyVersio
940c0 6e 20 3d 20 4c 49 42 58 4d 4c 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b n.=.LIBXML_DOTTED_VERSION;.break
940e0 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f ;..case.'openssl':.$prettyVersio
94100 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 7b 5e 28 3f 3a n.=.preg_replace_callback('{^(?:
94120 4f 70 65 6e 53 53 4c 5c 73 2a 29 3f 28 5b 30 2d 39 2e 5d 2b 29 28 5b 61 2d 7a 5d 3f 29 2e 2a 7d OpenSSL\s*)?([0-9.]+)([a-z]?).*}
94140 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d ',.function.($match).{.return.$m
94160 61 74 63 68 5b 31 5d 20 2e 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 32 5d 29 20 3f 20 27 27 atch[1]...(empty($match[2]).?.''
94180 20 3a 20 27 2e 27 2e 28 6f 72 64 28 24 6d 61 74 63 68 5b 32 5d 29 20 2d 20 39 36 29 29 3b 0a 7d .:.'.'.(ord($match[2]).-.96));.}
941a0 2c 20 4f 50 45 4e 53 53 4c 5f 56 45 52 53 49 4f 4e 5f 54 45 58 54 29 3b 0a 62 72 65 61 6b 3b 0a ,.OPENSSL_VERSION_TEXT);.break;.
941c0 0a 63 61 73 65 20 27 70 63 72 65 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 .case.'pcre':.$prettyVersion.=.p
941e0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 53 2b 29 2e 2a 7d 27 2c 20 27 24 31 27 2c 20 reg_replace('{^(\S+).*}',.'$1',.
94200 50 43 52 45 5f 56 45 52 53 49 4f 4e 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 75 69 PCRE_VERSION);.break;..case.'uui
94220 64 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 68 70 76 65 72 73 69 6f 6e 28 d':.$prettyVersion.=.phpversion(
94240 27 75 75 69 64 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 78 73 6c 27 3a 0a 24 70 72 'uuid');.break;..case.'xsl':.$pr
94260 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 53 4c 54 5f 44 4f 54 54 45 44 5f 56 45 52 ettyVersion.=.LIBXSLT_DOTTED_VER
94280 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 63 6f 6e 74 69 6e 75 SION;.break;..default:...continu
942a0 65 20 32 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f e.2;.}..try.{.$version.=.$versio
942c0 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f nParser->normalize($prettyVersio
942e0 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 n);.}.catch.(\UnexpectedValueExc
94300 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 62 20 3d eption.$e).{.continue;.}..$lib.=
94320 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 6c 69 62 2d 27 2e 24 6e 61 6d .new.CompletePackage('lib-'.$nam
94340 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 6c e,.$version,.$prettyVersion);.$l
94360 69 62 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e ib->setDescription('The.'.$name.
94380 27 20 50 48 50 20 6c 69 62 72 61 72 79 27 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 '.PHP.library');.$this->addPacka
943a0 67 65 28 24 6c 69 62 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 ge($lib);.}..if.(defined('HHVM_V
943c0 45 52 53 49 4f 4e 27 29 29 20 7b 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e ERSION')).{.try.{.$prettyVersion
943e0 20 3d 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 .=.HHVM_VERSION;.$version.=.$ver
94400 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
94420 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 sion);.}.catch.(\UnexpectedValue
94440 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 6e 20 3d Exception.$e).{.$prettyVersion.=
94460 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 23 27 2c .preg_replace('#^([^~+-]+).*$#',
94480 20 27 24 31 27 2c 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d .'$1',.HHVM_VERSION);.$version.=
944a0 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 .$versionParser->normalize($pret
944c0 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 68 68 76 6d 20 3d 20 6e 65 77 20 43 6f 6d 70 6c tyVersion);.}..$hhvm.=.new.Compl
944e0 65 74 65 50 61 63 6b 61 67 65 28 27 68 68 76 6d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 etePackage('hhvm',.$version,.$pr
94500 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 68 68 76 6d 2d 3e 73 65 74 44 65 73 63 72 69 70 74 ettyVersion);.$hhvm->setDescript
94520 69 6f 6e 28 27 54 68 65 20 48 48 56 4d 20 52 75 6e 74 69 6d 65 20 28 36 34 62 69 74 29 27 29 3b ion('The.HHVM.Runtime.(64bit)');
94540 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 68 68 76 6d 29 3b 0a 7d 0a 7d 0a 0a .$this->addPackage($hhvm);.}.}..
94560 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 65 28 50 61 ...public.function.addPackage(Pa
94580 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 0a 20 69 66 20 ckageInterface.$package).{...if.
945a0 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 76 65 72 72 69 64 65 73 5b 73 74 72 74 6f 6c 6f 77 (isset($this->overrides[strtolow
945c0 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 5d 29 29 20 7b 0a 72 65 74 er($package->getName())])).{.ret
945e0 75 72 6e 3b 0a 7d 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 urn;.}.parent::addPackage($packa
94600 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 62 75 69 6c 64 50 61 ge);.}..private.function.buildPa
94620 63 6b 61 67 65 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 27 65 78 74 2d 27 ckageName($name).{.return.'ext-'
94640 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 20 27 2c 20 27 2d 27 2c 20 24 6e 61 6d 65 29 3b ...str_replace('.',.'-',.$name);
94660 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.
94680 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 Composer\Repository;..use.Compos
946a0 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a er\Package\PackageInterface;....
946c0 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 .....interface.RepositoryInterfa
946e0 63 65 20 65 78 74 65 6e 64 73 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 53 45 ce.extends.\Countable.{.const.SE
94700 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 45 41 52 43 48 5f ARCH_FULLTEXT.=.0;.const.SEARCH_
94720 4e 41 4d 45 20 3d 20 31 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f NAME.=.1;.........public.functio
94740 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 n.hasPackage(PackageInterface.$p
94760 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ackage);..........public.functio
94780 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 n.findPackage($name,.$constraint
947a0 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 66 69 6e 64 );..........public.function.find
947c0 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 Packages($name,.$constraint.=.nu
947e0 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 ll);.......public.function.getPa
94800 63 6b 61 67 65 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 ckages();.........public.functio
94820 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 3b 0a 7d 0a 3c n.search($query,.$mode.=.0);.}.<
94840 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
94860 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 49 4f 5c er\Repository;..use.Composer\IO\
94880 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 6e 66 69 67 IOInterface;.use.Composer\Config
948a0 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
948c0 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
948e0 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 kage\PackageInterface;.........c
94900 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 lass.RepositoryManager.{.private
94920 20 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f .$localRepository;.private.$repo
94940 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 sitories.=.array();.private.$rep
94960 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 ositoryClasses.=.array();.privat
94980 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 e.$io;.private.$config;.private.
949a0 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $eventDispatcher;..public.functi
949c0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
949e0 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 68 65 72 20 Config.$config,.EventDispatcher.
94a00 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 74 68 69 73 $eventDispatcher.=.null).{.$this
94a20 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 6e ->io.=.$io;.$this->config.=.$con
94a40 66 69 67 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 fig;.$this->eventDispatcher.=.$e
94a60 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ventDispatcher;.}..........publi
94a80 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 c.function.findPackage($name,.$c
94aa0 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 onstraint).{.foreach.($this->rep
94ac0 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 66 20 28 ositories.as.$repository).{.if.(
94ae0 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 6b $package.=.$repository->findPack
94b00 61 67 65 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 age($name,.$constraint)).{.retur
94b20 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 n.$package;.}.}.}..........publi
94b40 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 c.function.findPackages($name,.$
94b60 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 constraint).{.$packages.=.array(
94b80 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 );..foreach.($this->repositories
94ba0 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 .as.$repository).{.$packages.=.a
94bc0 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 rray_merge($packages,.$repositor
94be0 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 y->findPackages($name,.$constrai
94c00 6e 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a nt));.}..return.$packages;.}....
94c20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 ...public.function.addRepository
94c40 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 (RepositoryInterface.$repository
94c60 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 ).{.$this->repositories[].=.$rep
94c80 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ository;.}..........public.funct
94ca0 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 74 79 70 65 2c 20 24 63 6f 6e ion.createRepository($type,.$con
94cc0 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 fig).{.if.(!isset($this->reposit
94ce0 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 oryClasses[$type])).{.throw.new.
94d00 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 \InvalidArgumentException('Repos
94d20 69 74 6f 72 79 20 74 79 70 65 20 69 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 3a 20 27 2e itory.type.is.not.registered:.'.
94d40 24 74 79 70 65 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 $type);.}..$class.=.$this->repos
94d60 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 itoryClasses[$type];..return.new
94d80 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 .$class($config,.$this->io,.$thi
94da0 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 s->config,.$this->eventDispatche
94dc0 72 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 73 65 74 r);.}........public.function.set
94de0 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 24 74 79 70 65 2c 20 24 63 6c 61 73 73 29 0a 7b RepositoryClass($type,.$class).{
94e00 0a 24 74 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 .$this->repositoryClasses[$type]
94e20 20 3d 20 24 63 6c 61 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .=.$class;.}.......public.functi
94e40 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
94e60 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
94e80 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 57 72 c.function.setLocalRepository(Wr
94ea0 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 20 24 72 65 70 6f 73 itableRepositoryInterface.$repos
94ec0 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 itory).{.$this->localRepository.
94ee0 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 =.$repository;.}.......public.fu
94f00 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 nction.getLocalRepository().{.re
94f20 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a turn.$this->localRepository;.}..
94f40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 ......public.function.getLocalRe
94f60 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 positories().{.trigger_error('Th
94f80 69 73 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 67 65 74 is.method.is.deprecated,.use.get
94fa0 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 65 61 64 20 73 69 6e 63 65 20 74 68 LocalRepository.instead.since.th
94fc0 65 20 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 20 69 73 20 6e 6f 77 20 67 e.getLocalDevRepository.is.now.g
94fe0 6f 6e 65 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 one',.E_USER_DEPRECATED);..retur
95000 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b n.array($this->localRepository);
95020 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.
95040 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 Composer\Repository;.......class
95060 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 20 65 78 74 .RepositorySecurityException.ext
95080 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ends.\Exception.{.}.<?php.......
950a0 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
950c0 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 ry\Vcs;..use.Composer\Config;.us
950e0 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
95100 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 mposer\IO\IOInterface;.....class
95120 20 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 .GitBitbucketDriver.extends.VcsD
95140 72 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 river.implements.VcsDriverInterf
95160 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 ace.{.protected.$owner;.protecte
95180 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a d.$repository;.protected.$tags;.
951a0 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 protected.$branches;.protected.$
951c0 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 rootIdentifier;.protected.$infoC
951e0 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ache.=.array();.....public.funct
95200 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 ion.initialize().{.preg_match('#
95220 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 2f 5d 2b 29 ^https?://bitbucket\.org/([^/]+)
95240 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 /(.+?)\.git$#',.$this->url,.$mat
95260 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 ch);.$this->owner.=.$match[1];.$
95280 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 this->repository.=.$match[2];.$t
952a0 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 his->originUrl.=.'bitbucket.org'
952c0 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
952e0 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
95300 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 ->rootIdentifier).{.$resource.=.
95320 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 69 74 $this->getScheme()...'://api.bit
95340 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 24 74 bucket.org/1.0/repositories/'.$t
95360 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
95380 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f ;.$repoData.=.JsonFile::parseJso
953a0 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c n($this->getContents($resource),
953c0 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 .$resource);.$this->rootIdentifi
953e0 65 72 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e er.=.!empty($repoData['main_bran
95400 63 68 27 5d 29 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d ch']).?.$repoData['main_branch']
95420 20 3a 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f .:.'master';.}..return.$this->ro
95440 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 otIdentifier;.}.....public.funct
95460 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c ion.getUrl().{.return.$this->url
95480 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 ;.}.....public.function.getSourc
954a0 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 72 61 79 28 27 74 e($identifier).{.return.array('t
954c0 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 ype'.=>.'git',.'url'.=>.$this->g
954e0 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 65 6e 74 69 66 etUrl(),.'reference'.=>.$identif
95500 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 20 67 65 74 44 ier);.}.....public.function.getD
95520 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 74 68 69 73 2d ist($identifier).{.$url.=.$this-
95540 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 >getScheme()...'://bitbucket.org
95560 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
95580 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 2e 7a 69 70 27 itory.'/get/'.$identifier.'.zip'
955a0 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c ;..return.array('type'.=>.'zip',
955c0 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 .'url'.=>.$url,.'reference'.=>.$
955e0 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 3b 0a 7d 0a 0a identifier,.'shasum'.=>.'');.}..
95600 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 49 6e ...public.function.getComposerIn
95620 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 21 69 73 formation($identifier).{.if.(!is
95640 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 set($this->infoCache[$identifier
95660 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 63 68 65 ])).{.$resource.=.$this->getSche
95680 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 74 68 69 73 me()...'://bitbucket.org/'.$this
956a0 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f ->owner.'/'.$this->repository.'/
956c0 72 61 77 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f raw/'.$identifier.'/composer.jso
956e0 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e n';.$composer.=.$this->getConten
95700 74 73 28 24 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 ts($resource);.if.(!$composer).{
95720 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
95740 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
95760 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'])
95780 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 ).{.$resource.=.$this->getScheme
957a0 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 ()...'://api.bitbucket.org/1.0/r
957c0 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 epositories/'.$this->owner.'/'.$
957e0 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 74 73 2f 27 2e this->repository.'/changesets/'.
95800 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 73 6f 6e 46 69 $identifier;.$changeset.=.JsonFi
95820 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 le::parseJson($this->getContents
95840 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 ($resource),.$resource);.$compos
95860 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 6d 65 73 74 61 er['time'].=.$changeset['timesta
95880 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 64 65 6e 74 69 mp'];.}.$this->infoCache[$identi
958a0 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 fier].=.$composer;.}..return.$th
958c0 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a is->infoCache[$identifier];.}...
958e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 ..public.function.getTags().{.if
95900 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 72 65 73 6f 75 .(null.===.$this->tags).{.$resou
95920 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 61 rce.=.$this->getScheme()...'://a
95940 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 65 pi.bitbucket.org/1.0/repositorie
95960 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
95980 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 20 4a 73 6f 6e sitory.'/tags';.$tagsData.=.Json
959a0 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e File::parseJson($this->getConten
959c0 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 ts($resource),.$resource);.$this
959e0 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 24 74 61 67 73 ->tags.=.array();.foreach.($tags
95a00 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 68 69 73 2d 3e Data.as.$tag.=>.$data).{.$this->
95a20 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 65 27 5d 3b 0a tags[$tag].=.$data['raw_node'];.
95a40 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 }.}..return.$this->tags;.}.....p
95a60 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
95a80 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).{.$
95aa0 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()...
95ac0 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 69 '://api.bitbucket.org/1.0/reposi
95ae0 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-
95b00 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
95b20 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
95b40 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
95b60 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();
95b80 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
95ba0 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
95bc0 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'];.}.}..
95be0 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
95c00 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
95c20 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,.$
95c40 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_
95c60 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
95c80 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 75 72 6c 29 29 20 7b /([^/]+)/(.+?)\.git$#',.$url)).{
95ca0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e .return.false;.}..if.(!extension
95cc0 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 _loaded('openssl')).{.if.($io->i
95ce0 73 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 sVerbose()).{.$io->writeError('S
95d00 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 76 65 72 20 66 6f 72 kipping.Bitbucket.git.driver.for
95d20 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 .'.$url.'.because.the.OpenSSL.PH
95d40 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 P.extension.is.missing.');.}..re
95d60 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a turn.false;.}..return.true;.}.}.
95d80 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
95da0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ser\Repository\Vcs;..use.Compose
95dc0 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 r\Json\JsonFile;.use.Composer\Ut
95de0 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
95e00 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 \Util\Filesystem;.use.Composer\U
95e20 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 til\Git.as.GitUtil;.use.Composer
95e40 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 61 \IO\IOInterface;.use.Composer\Ca
95e60 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 0a 0a 0a 0a 63 6c che;.use.Composer\Config;.....cl
95e80 61 73 73 20 47 69 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a ass.GitDriver.extends.VcsDriver.
95ea0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 {.protected.$cache;.protected.$t
95ec0 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 65 63 ags;.protected.$branches;.protec
95ee0 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 20 24 ted.$rootIdentifier;.protected.$
95f00 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 repoDir;.protected.$infoCache.=.
95f20 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 69 6e 69 array();.....public.function.ini
95f40 74 69 61 6c 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 tialize().{.if.(Filesystem::isLo
95f60 63 61 6c 50 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 calPath($this->url)).{.$this->re
95f80 70 6f 44 69 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 poDir.=.$this->url;.$cacheUrl.=.
95fa0 72 65 61 6c 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 realpath($this->url);.}.else.{.$
95fc0 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 this->repoDir.=.$this->config->g
95fe0 65 74 28 27 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 et('cache-vcs-dir')...'/'...preg
96000 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 _replace('{[^a-z0-9.]}i',.'-',.$
96020 74 68 69 73 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 this->url)...'/';..GitUtil::clea
96040 6e 45 6e 76 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 nEnv();..$fs.=.new.Filesystem();
96060 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e .$fs->ensureDirectoryExists(dirn
96080 61 6d 65 28 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 ame($this->repoDir));..if.(!is_w
960a0 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))
960c0 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(
960e0 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
96100 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
96120 20 22 27 2e 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 ."'.dirname($this->repoDir).'".d
96140 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 irectory.is.not.writable.by.the.
96160 63 75 72 72 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 current.user.');.}..if.(preg_mat
96180 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 5e 30 2d 39 5d 2b 7d ch('{^ssh://[^@]+@[^:]+:[^0-9]+}
961a0 27 2c 20 24 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 ',.$this->url)).{.throw.new.\Inv
961c0 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 63 alidArgumentException('The.sourc
961e0 65 20 55 52 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 e.URL.'.$this->url.'.is.invalid,
96200 20 73 73 68 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 .ssh.URLs.should.have.a.port.num
96220 62 65 72 20 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 ber.after.":".'."\n".'Use.ssh://
96240 67 69 74 40 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 git@example.com:22/path.or.just.
96260 67 69 74 40 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 git@example.com:path.if.you.do.n
96280 6f 74 20 77 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 ot.want.to.provide.a.password.or
962a0 20 63 75 73 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 .custom.port.');.}..$gitUtil.=.n
962c0 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 63 6f 6e ew.GitUtil($this->io,.$this->con
962e0 66 69 67 2c 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 fig,.$this->process,.$fs);....if
96300 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d 3d .(is_dir($this->repoDir).&&.0.==
96320 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 =.$this->process->execute('git.r
96340 65 76 2d 70 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 ev-parse.--git-dir',.$output,.$t
96360 68 69 73 2d 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 his->repoDir).&&.trim($output).=
96380 3d 3d 20 27 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 ==.'.').{.try.{.$commandCallable
963a0 20 3d 20 66 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 .=.function.($url).{.return.spri
963c0 6e 74 66 28 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 ntf('git.remote.set-url.origin.%
963e0 73 20 26 26 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 s.&&.git.remote.update.--prune.o
96400 72 69 67 69 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 rigin',.ProcessExecutor::escape(
96420 24 75 72 6c 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 $url));.};.$gitUtil->runCommand(
96440 24 63 6f 6d 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 $commandCallable,.$this->url,.$t
96460 68 69 73 2d 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 his->repoDir);.}.catch.(\Excepti
96480 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 on.$e).{.$this->io->writeError('
964a0 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d <error>Failed.to.update.'.$this-
964c0 3e 75 72 6c 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d >url.',.package.information.from
964e0 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 .this.repository.may.be.outdated
96500 20 28 27 2e 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 .('.$e->getMessage().')</error>'
96520 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 );.}.}.else.{...$fs->removeDirec
96540 74 6f 72 79 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 tory($this->repoDir);..$repoDir.
96560 3d 20 24 74 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 =.$this->repoDir;.$commandCallab
96580 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 72 65 70 6f 44 le.=.function.($url).use.($repoD
965a0 69 72 29 20 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 ir).{.return.sprintf('git.clone.
965c0 2d 2d 6d 69 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 --mirror.%s.%s',.ProcessExecutor
965e0 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:
96600 3a 65 73 63 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 :escape($repoDir));.};..$gitUtil
96620 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 ->runCommand($commandCallable,.$
96640 74 68 69 73 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 this->url,.$this->repoDir,.true)
96660 3b 0a 7d 0a 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 ;.}..$cacheUrl.=.$this->url;.}..
96680 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e $this->getTags();.$this->getBran
966a0 63 68 65 73 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 ches();..$this->cache.=.new.Cach
966c0 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 65 74 28 e($this->io,.$this->config->get(
966e0 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 70 6c 61 'cache-repo-dir').'/'.preg_repla
96700 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 63 61 63 68 65 55 ce('{[^a-z0-9.]}i',.'-',.$cacheU
96720 72 6c 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 rl));.}.....public.function.getR
96740 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 24 ootIdentifier().{.if.(null.===.$
96760 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 72 this->rootIdentifier).{.$this->r
96780 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 0a 0a 20 24 74 68 ootIdentifier.=.'master';....$th
967a0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 is->process->execute('git.branch
967c0 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 .--no-color',.$output,.$this->re
967e0 70 6f 44 69 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 poDir);.$branches.=.$this->proce
96800 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 21 69 6e ss->splitLines($output);.if.(!in
96820 5f 61 72 72 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 62 72 61 6e 63 68 65 73 29 29 20 7b _array('*.master',.$branches)).{
96840 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 62 72 61 6e 63 68 29 20 .foreach.($branches.as.$branch).
96860 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c {.if.($branch.&&.preg_match('{^\
96880 2a 20 2b 28 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a *.+(\S+)}',.$branch,.$match)).{.
968a0 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 $this->rootIdentifier.=.$match[1
968c0 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ];.break;.}.}.}.}..return.$this-
968e0 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 >rootIdentifier;.}.....public.fu
96900 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nction.getUrl().{.return.$this->
96920 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f url;.}.....public.function.getSo
96940 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 72 61 79 urce($identifier).{.return.array
96960 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 ('type'.=>.'git',.'url'.=>.$this
96980 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 65 6e ->getUrl(),.'reference'.=>.$iden
969a0 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 20 67 tifier);.}.....public.function.g
969c0 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 6e 75 6c etDist($identifier).{.return.nul
969e0 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 6f 6d 70 l;.}.....public.function.getComp
96a00 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 oserInformation($identifier).{.i
96a20 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c f.(preg_match('{[a-f0-9]{40}}i',
96a40 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 .$identifier).&&.$res.=.$this->c
96a60 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 ache->read($identifier)).{.$this
96a80 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 ->infoCache[$identifier].=.JsonF
96aa0 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 ile::parseJson($res);.}..if.(!is
96ac0 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 set($this->infoCache[$identifier
96ae0 5d 29 29 20 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 ])).{.$resource.=.sprintf('%s:co
96b00 6d 70 6f 73 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 mposer.json',.ProcessExecutor::e
96b20 73 63 61 70 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 scape($identifier));.$this->proc
96b40 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 73 68 6f 77 20 25 ess->execute(sprintf('git.show.%
96b60 73 27 2c 20 24 72 65 73 6f 75 72 63 65 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 s',.$resource),.$composer,.$this
96b80 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 ->repoDir);..if.(!trim($composer
96ba0 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e )).{.return;.}..$composer.=.Json
96bc0 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f File::parseJson($composer,.$reso
96be0 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 6d urce);..if.(empty($composer['tim
96c00 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 e'])).{.$this->process->execute(
96c20 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 2d 31 20 2d 2d 66 6f 72 6d 61 74 3d 25 25 61 sprintf('git.log.-1.--format=%%a
96c40 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 24 t.%s',.ProcessExecutor::escape($
96c60 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 identifier)),.$output,.$this->re
96c80 70 6f 44 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 poDir);.$date.=.new.\DateTime('@
96ca0 27 2e 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 6d 65 5a 6f '.trim($output),.new.\DateTimeZo
96cc0 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 3d 20 ne('UTC'));.$composer['time'].=.
96ce0 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a $date->format('Y-m-d.H:i:s');.}.
96d00 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 .if.(preg_match('{[a-f0-9]{40}}i
96d20 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d ',.$identifier)).{.$this->cache-
96d40 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 >write($identifier,.json_encode(
96d60 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 $composer));.}..$this->infoCache
96d80 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
96da0 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
96dc0 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
96de0 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).
96e00 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d {.$this->tags.=.array();..$this-
96e20 3e 70 72 6f 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 >process->execute('git.show-ref.
96e40 2d 2d 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 69 72 --tags',.$output,.$this->repoDir
96e60 29 3b 0a 66 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 );.foreach.($output.=.$this->pro
96e80 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 74 61 cess->splitLines($output).as.$ta
96ea0 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 g).{.if.($tag.&&.preg_match('{^(
96ec0 5b 61 2d 66 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 [a-f0-9]{40}).refs/tags/(\S+)$}'
96ee0 2c 20 24 74 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 ,.$tag,.$match)).{.$this->tags[$
96f00 6d 61 74 63 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 match[2]].=.$match[1];.}.}.}..re
96f20 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 turn.$this->tags;.}.....public.f
96f40 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c unction.getBranches().{.if.(null
96f60 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 .===.$this->branches).{.$branche
96f80 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 s.=.array();..$this->process->ex
96fa0 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 20 2d 2d 6e ecute('git.branch.--no-color.--n
96fc0 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 o-abbrev.-v',.$output,.$this->re
96fe0 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d poDir);.foreach.($this->process-
97000 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 68 29 >splitLines($output).as.$branch)
97020 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b .{.if.($branch.&&.!preg_match('{
97040 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 ^.*[^/]+/HEAD.}',.$branch)).{.if
97060 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 5c 53 2b 29 20 .(preg_match('{^(?:\*.)?.*(\S+).
97080 2a 28 5b 61 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 *([a-f0-9]+)(?:..*)?$}',.$branch
970a0 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 5b 31 5d ,.$match)).{.$branches[$match[1]
970c0 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 72 61 ].=.$match[2];.}.}.}..$this->bra
970e0 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 nches.=.$branches;.}..return.$th
97100 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 is->branches;.}.....public.stati
97120 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 c.function.supports(IOInterface.
97140 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 24 64 65 65 70 $io,.Config.$config,.$url,.$deep
97160 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 27 23 28 5e 67 .=.false).{.if.(preg_match('#(^g
97180 69 74 3a 2f 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 it://|\.git$|git(?:olite)?@|//gi
971a0 74 5c 2e 7c 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 t\.|//github.com/)#i',.$url)).{.
971c0 72 65 74 75 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 return.true;.}....if.(Filesystem
971e0 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 46 69 ::isLocalPath($url)).{.$url.=.Fi
97200 6c 65 73 79 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 lesystem::getPlatformPath($url);
97220 0a 69 66 20 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 .if.(!is_dir($url)).{.return.fal
97240 73 65 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 45 78 65 se;.}..$process.=.new.ProcessExe
97260 63 75 74 6f 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 cutor($io);...if.($process->exec
97280 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d ute('git.tag',.$output,.$url).==
972a0 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 =.0).{.return.true;.}.}..if.(!$d
972c0 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 eep).{.return.false;.}..$process
972e0 20 3d 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 69 66 20 .=.new.ProcessExecutor($io);.if.
97300 28 24 70 72 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 ($process->execute('git.ls-remot
97320 65 20 2d 2d 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 e.--heads.'...ProcessExecutor::e
97340 73 63 61 70 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 scape($url),.$output).===.0).{.r
97360 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d eturn.true;.}..return.false;.}.}
97380 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
973a0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 oser\Repository\Vcs;..use.Compos
973c0 65 72 5c 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 er\Config;.use.Composer\Download
973e0 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f er\TransportException;.use.Compo
97400 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ser\Json\JsonFile;.use.Composer\
97420 43 61 63 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 Cache;.use.Composer\IO\IOInterfa
97440 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 0a 0a ce;.use.Composer\Util\GitHub;...
97460 0a 0a 63 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 ..class.GitHubDriver.extends.Vcs
97480 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 Driver.{.protected.$cache;.prote
974a0 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 74 6f cted.$owner;.protected.$reposito
974c0 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 20 24 ry;.protected.$tags;.protected.$
974e0 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
97500 69 65 72 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 ier;.protected.$hasIssues;.prote
97520 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 cted.$infoCache.=.array();.prote
97540 63 74 65 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 cted.$isPrivate.=.false;.......p
97560 72 6f 74 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 rotected.$gitDriver;.....public.
97580 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 72 65 67 5f 6d 61 74 function.initialize().{.preg_mat
975a0 63 68 28 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 ch('#^(?:(?:https?|git)://([^/]+
975c0 29 2f 7c 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 )/|git@([^:]+):)([^/]+)/(.+?)(?:
975e0 5c 2e 67 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 \.git|/)?$#',.$this->url,.$match
97600 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 33 5d 3b 0a 24 74 68 );.$this->owner.=.$match[3];.$th
97620 69 73 2d 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 is->repository.=.$match[4];.$thi
97640 73 2d 3e 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 s->originUrl.=.!empty($match[1])
97660 20 3f 20 24 6d 61 74 63 68 5b 31 5d 20 3a 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 69 66 20 28 24 74 .?.$match[1].:.$match[2];.if.($t
97680 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 3d 3d 20 27 77 77 77 2e 67 69 74 68 75 62 2e 63 his->originUrl.===.'www.github.c
976a0 6f 6d 27 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 75 om').{.$this->originUrl.=.'githu
976c0 62 2e 63 6f 6d 27 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 b.com';.}.$this->cache.=.new.Cac
976e0 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 65 74 he($this->io,.$this->config->get
97700 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 ('cache-repo-dir').'/'.$this->or
97720 69 67 69 6e 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 iginUrl.'/'.$this->owner.'/'.$th
97740 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 is->repository);..if.(isset($thi
97760 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6e 6f 2d 61 70 69 27 5d 29 20 26 26 20 24 74 68 69 s->repoConfig['no-api']).&&.$thi
97780 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6e 6f 2d 61 70 69 27 5d 29 20 7b 0a 24 74 68 69 73 s->repoConfig['no-api']).{.$this
977a0 2d 3e 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 72 ->setupGitDriver($this->url);..r
977c0 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 eturn;.}..$this->fetchRootIdenti
977e0 66 69 65 72 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 52 65 fier();.}..public.function.getRe
97800 70 6f 73 69 74 6f 72 79 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f positoryUrl().{.return.'https://
97820 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 6f 77 '.$this->originUrl.'/'.$this->ow
97840 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 7d 0a 0a 0a 0a ner.'/'.$this->repository;.}....
97860 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 69 66 69 .public.function.getRootIdentifi
97880 65 72 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 er().{.if.($this->gitDriver).{.r
978a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 eturn.$this->gitDriver->getRootI
978c0 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f dentifier();.}..return.$this->ro
978e0 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 otIdentifier;.}.....public.funct
97900 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 ion.getUrl().{.if.($this->gitDri
97920 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e ver).{.return.$this->gitDriver->
97940 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e getUrl();.}..return.'https://'..
97960 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f 27 2e 24 74 68 69 73 2d 3e 6f .$this->originUrl...'/'.$this->o
97980 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 wner.'/'.$this->repository.'.git
979a0 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 ';.}.....protected.function.getA
979c0 70 69 55 72 6c 28 29 0a 7b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 piUrl().{.if.('github.com'.===.$
979e0 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 7b 0a 24 61 70 69 55 72 6c 20 3d 20 27 61 70 this->originUrl).{.$apiUrl.=.'ap
97a00 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 70 69 55 72 6c 20 i.github.com';.}.else.{.$apiUrl.
97a20 3d 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f 61 70 69 2f 76 33 27 3b 0a =.$this->originUrl...'/api/v3';.
97a40 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e 20 24 61 70 69 55 72 6c 3b 0a }..return.'https://'...$apiUrl;.
97a60 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 28 }.....public.function.getSource(
97a80 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 $identifier).{.if.($this->gitDri
97aa0 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e ver).{.return.$this->gitDriver->
97ac0 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 24 74 getSource($identifier);.}.if.($t
97ae0 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 29 20 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 his->isPrivate).{.....$url.=.$th
97b00 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 is->generateSshUrl();.}.else.{.$
97b20 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e url.=.$this->getUrl();.}..return
97b40 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e .array('type'.=>.'git',.'url'.=>
97b60 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 74 69 66 69 65 .$url,.'reference'.=>.$identifie
97b80 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 73 r);.}.....public.function.getDis
97ba0 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 74 68 69 73 2d 3e 67 t($identifier).{.$url.=.$this->g
97bc0 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 6f 77 etApiUrl()...'/repos/'.$this->ow
97be0 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 7a 69 70 62 ner.'/'.$this->repository.'/zipb
97c00 61 6c 6c 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 all/'.$identifier;..return.array
97c20 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c ('type'.=>.'zip',.'url'.=>.$url,
97c40 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 2c 20 27 73 68 .'reference'.=>.$identifier,.'sh
97c60 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 asum'.=>.'');.}.....public.funct
97c80 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e ion.getComposerInformation($iden
97ca0 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 tifier).{.if.($this->gitDriver).
97cc0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 43 6f {.return.$this->gitDriver->getCo
97ce0 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 3b 0a mposerInformation($identifier);.
97d00 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d }..if.(preg_match('{[a-f0-9]{40}
97d20 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 3d 20 24 74 68 69 }i',.$identifier).&&.$res.=.$thi
97d40 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 29 29 20 7b 0a 24 s->cache->read($identifier)).{.$
97d60 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a this->infoCache[$identifier].=.J
97d80 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 sonFile::parseJson($res);.}..if.
97da0 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 69 (!isset($this->infoCache[$identi
97dc0 66 69 65 72 5d 29 29 20 7b 0a 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 20 3d 20 32 3b 0a fier])).{.$notFoundRetries.=.2;.
97de0 77 68 69 6c 65 20 28 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 29 20 7b 0a 74 72 79 20 7b while.($notFoundRetries).{.try.{
97e00 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 20 .$resource.=.$this->getApiUrl().
97e20 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 68 ..'/repos/'.$this->owner.'/'.$th
97e40 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6e 74 65 6e 74 73 2f 63 6f 6d 70 6f 73 is->repository.'/contents/compos
97e60 65 72 2e 6a 73 6f 6e 3f 72 65 66 3d 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 er.json?ref='.urlencode($identif
97e80 69 65 72 29 3b 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 ier);.$composer.=.JsonFile::pars
97ea0 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 eJson($this->getContents($resour
97ec0 63 65 29 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 ce));.if.(empty($composer['conte
97ee0 6e 74 27 5d 29 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 5b 27 65 6e 63 6f 64 69 6e 67 27 5d 20 21 nt']).||.$composer['encoding'].!
97f00 3d 3d 20 27 62 61 73 65 36 34 27 20 7c 7c 20 21 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 62 61 73 ==.'base64'.||.!($composer.=.bas
97f20 65 36 34 5f 64 65 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 e64_decode($composer['content'])
97f40 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
97f60 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 ('Could.not.retrieve.composer.js
97f80 6f 6e 20 66 72 6f 6d 20 27 2e 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d on.from.'.$resource);.}.break;.}
97fa0 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).{
97fc0 0a 69 66 20 28 34 30 34 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 .if.(404.!==.$e->getCode()).{.th
97fe0 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 2d row.$e;.}......$notFoundRetries-
98000 2d 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 -;.$composer.=.false;.}.}..if.($
98020 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 composer).{.$composer.=.JsonFile
98040 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
98060 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'])
98080 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 41 70 69 55 72 6c ).{.$resource.=.$this->getApiUrl
980a0 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 27 2e ()...'/repos/'.$this->owner.'/'.
980c0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d 69 74 73 2f 27 2e 75 72 $this->repository.'/commits/'.ur
980e0 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 lencode($identifier);.$commit.=.
98100 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f JsonFile::parseJson($this->getCo
98120 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 ntents($resource),.$resource);.$
98140 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d composer['time'].=.$commit['comm
98160 69 74 27 5d 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 it']['committer']['date'];.}.if.
98180 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f (!isset($composer['support']['so
981a0 75 72 63 65 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 urce'])).{.$label.=.array_search
981c0 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 ($identifier,.$this->getTags()).
981e0 3f 3a 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 ?:.array_search($identifier,.$th
98200 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 is->getBranches()).?:.$identifie
98220 72 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 r;.$composer['support']['source'
98240 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f 25 73 2f 74 72 ].=.sprintf('https://%s/%s/%s/tr
98260 65 65 2f 25 73 27 2c 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d ee/%s',.$this->originUrl,.$this-
98280 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 >owner,.$this->repository,.$labe
982a0 6c 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 l);.}.if.(!isset($composer['supp
982c0 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 ort']['issues']).&&.$this->hasIs
982e0 73 75 65 73 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 sues).{.$composer['support']['is
98300 73 75 65 73 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f sues'].=.sprintf('https://%s/%s/
98320 25 73 2f 69 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 %s/issues',.$this->originUrl,.$t
98340 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a his->owner,.$this->repository);.
98360 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 }.}..if.(preg_match('{[a-f0-9]{4
98380 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 0}}i',.$identifier)).{.$this->ca
983a0 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 che->write($identifier,.json_enc
983c0 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 ode($composer));.}..$this->infoC
983e0 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d ache[$identifier].=.$composer;.}
98400 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 ..return.$this->infoCache[$ident
98420 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ifier];.}.....public.function.ge
98440 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 tTags().{.if.($this->gitDriver).
98460 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 54 61 {.return.$this->gitDriver->getTa
98480 67 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 74 61 67 73 gs();.}.if.(null.===.$this->tags
984a0 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 73 6f ).{.$this->tags.=.array();.$reso
984c0 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 urce.=.$this->getApiUrl()...'/re
984e0 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 pos/'.$this->owner.'/'.$this->re
98500 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 3f 70 65 72 5f 70 61 67 65 3d 31 30 30 27 3b 0a 0a pository.'/tags?per_page=100';..
98520 64 6f 20 7b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 do.{.$tagsData.=.JsonFile::parse
98540 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 Json($this->getContents($resourc
98560 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 e),.$resource);.foreach.($tagsDa
98580 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5b 27 ta.as.$tag).{.$this->tags[$tag['
985a0 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 27 5d 3b name']].=.$tag['commit']['sha'];
985c0 0a 7d 0a 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 50 61 .}..$resource.=.$this->getNextPa
985e0 67 65 28 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 72 65 ge();.}.while.($resource);.}..re
98600 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 turn.$this->tags;.}.....public.f
98620 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 24 74 68 69 unction.getBranches().{.if.($thi
98640 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 s->gitDriver).{.return.$this->gi
98660 74 44 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 tDriver->getBranches();.}.if.(nu
98680 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d ll.===.$this->branches).{.$this-
986a0 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 73 6f 75 72 63 65 20 3d >branches.=.array();.$resource.=
986c0 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 73 2f 27 2e .$this->getApiUrl()...'/repos/'.
986e0 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
98700 72 79 2e 27 2f 67 69 74 2f 72 65 66 73 2f 68 65 61 64 73 3f 70 65 72 5f 70 61 67 65 3d 31 30 30 ry.'/git/refs/heads?per_page=100
98720 27 3b 0a 0a 24 62 72 61 6e 63 68 42 6c 61 63 6b 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 67 68 ';..$branchBlacklist.=.array('gh
98740 2d 70 61 67 65 73 27 29 3b 0a 0a 64 6f 20 7b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 -pages');..do.{.$branchData.=.Js
98760 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
98780 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
987a0 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 29 20 7b 0a each.($branchData.as.$branch).{.
987c0 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 62 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 $name.=.substr($branch['ref'],.1
987e0 31 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 62 72 61 6e 63 68 1);.if.(!in_array($name,.$branch
98800 42 6c 61 63 6b 6c 69 73 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6e Blacklist)).{.$this->branches[$n
98820 61 6d 65 5d 20 3d 20 24 62 72 61 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d 5b 27 73 68 61 27 5d 3b ame].=.$branch['object']['sha'];
98840 0a 7d 0a 7d 0a 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 .}.}..$resource.=.$this->getNext
98860 50 61 67 65 28 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a Page();.}.while.($resource);.}..
98880 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
988a0 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
988c0 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,.$
988e0 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_
98900 6d 61 74 63 68 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 28 5b 5e 2f 5d match('#^((?:https?|git)://([^/]
98920 2b 29 2f 7c 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 +)/|git@([^:]+):)([^/]+)/(.+?)(?
98940 3a 5c 2e 67 69 74 7c 2f 29 3f 24 23 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 65 73 29 29 20 :\.git|/)?$#',.$url,.$matches)).
98960 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6f 72 69 67 69 6e 55 72 6c 20 3d 20 {.return.false;.}..$originUrl.=.
98980 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 !empty($matches[2]).?.$matches[2
989a0 5d 20 3a 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 70 ].:.$matches[3];.if.(!in_array(p
989c0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 77 77 77 5c 2e 7d 69 27 2c 20 27 27 2c 20 24 6f 72 reg_replace('{^www\.}i',.'',.$or
989e0 69 67 69 6e 55 72 6c 29 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 64 iginUrl),.$config->get('github-d
98a00 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 0a 69 66 omains'))).{.return.false;.}..if
98a20 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 .(!extension_loaded('openssl')).
98a40 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 {.if.($io->isVerbose()).{.$io->w
98a60 72 69 74 65 45 72 72 6f 72 28 27 53 6b 69 70 70 69 6e 67 20 47 69 74 48 75 62 20 64 72 69 76 65 riteError('Skipping.GitHub.drive
98a80 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 r.for.'.$url.'.because.the.OpenS
98aa0 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a SL.PHP.extension.is.missing.');.
98ac0 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b }..return.false;.}..return.true;
98ae0 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 67 65 6e 65 .}.......protected.function.gene
98b00 72 61 74 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 69 74 40 27 20 2e 20 24 rateSshUrl().{.return.'git@'...$
98b20 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e this->originUrl...':'.$this->own
98b40 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b er.'/'.$this->repository.'.git';
98b60 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e .}.....protected.function.getCon
98b80 74 65 6e 74 73 28 24 75 72 6c 2c 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 20 3d 20 tents($url,.$fetchingRepoData.=.
98ba0 66 61 6c 73 65 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 false).{.try.{.return.parent::ge
98bc0 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 tContents($url);.}.catch.(Transp
98be0 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d ortException.$e).{.$gitHubUtil.=
98c00 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f .new.GitHub($this->io,.$this->co
98c20 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 72 65 6d nfig,.$this->process,.$this->rem
98c40 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 oteFilesystem);..switch.($e->get
98c60 43 6f 64 65 28 29 29 20 7b 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 0a 20 Code()).{.case.401:.case.404:...
98c80 69 66 20 28 21 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 if.(!$fetchingRepoData).{.throw.
98ca0 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a $e;.}..if.($gitHubUtil->authoriz
98cc0 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 eOAuth($this->originUrl)).{.retu
98ce0 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 0a rn.parent::getContents($url);.}.
98d00 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 .if.(!$this->io->isInteractive()
98d20 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 ).{.return.$this->attemptCloneFa
98d40 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 llback();.}..$gitHubUtil->author
98d60 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 izeOAuthInteractively($this->ori
98d80 67 69 6e 55 72 6c 2c 20 27 59 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 ginUrl,.'Your.GitHub.credentials
98da0 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 66 65 74 63 68 20 70 72 69 76 61 74 65 20 72 .are.required.to.fetch.private.r
98dc0 65 70 6f 73 69 74 6f 72 79 20 6d 65 74 61 64 61 74 61 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 epository.metadata.(<info>'.$thi
98de0 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 s->url.'</info>)');..return.pare
98e00 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 0a 63 61 73 65 20 34 30 33 nt::getContents($url);..case.403
98e20 3a 0a 69 66 20 28 21 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
98e40 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 26 26 20 24 67 69 74 48 75 62 ion($this->originUrl).&&.$gitHub
98e60 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
98e80 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
98ea0 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
98ec0 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 sInteractive().&&.$fetchingRepoD
98ee0 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e ata).{.return.$this->attemptClon
98f00 65 46 61 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 66 eFallback();.}..$rateLimited.=.f
98f20 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 20 alse;.foreach.($e->getHeaders().
98f40 61 73 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 as.$header).{.if.(preg_match('{^
98f60 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 65 6d 61 69 6e 69 6e 67 3a 20 2a 30 24 7d 69 27 2c 20 74 X-RateLimit-Remaining:.*0$}i',.t
98f80 72 69 6d 28 24 68 65 61 64 65 72 29 29 29 20 7b 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 rim($header))).{.$rateLimited.=.
98fa0 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 true;.}.}..if.(!$this->io->hasAu
98fc0 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 thentication($this->originUrl)).
98fe0 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 {.if.(!$this->io->isInteractive(
99000 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 65 72 72 )).{.$this->io->writeError('<err
99020 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 46 or>GitHub.API.limit.exhausted..F
99040 61 69 6c 65 64 20 74 6f 20 67 65 74 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 74 68 65 20 27 2e ailed.to.get.metadata.for.the.'.
99060 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e $this->url.'.repository,.try.run
99080 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 68 61 74 ning.in.interactive.mode.so.that
990a0 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 65 64 65 .you.can.enter.your.GitHub.crede
990c0 6e 74 69 61 6c 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 41 50 49 20 6c 69 6d 69 74 ntials.to.increase.the.API.limit
990e0 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 </error>');.throw.$e;.}..$gitHub
99100 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c Util->authorizeOAuthInteractivel
99120 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 41 50 49 20 6c 69 6d 69 74 20 65 y($this->originUrl,.'API.limit.e
99140 78 68 61 75 73 74 65 64 2e 20 45 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 xhausted..Enter.your.GitHub.cred
99160 65 6e 74 69 61 6c 73 20 74 6f 20 67 65 74 20 61 20 6c 61 72 67 65 72 20 41 50 49 20 6c 69 6d 69 entials.to.get.a.larger.API.limi
99180 74 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 t.(<info>'.$this->url.'</info>)'
991a0 29 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 );..return.parent::getContents($
991c0 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 24 72 61 74 65 4c 69 6d 69 74 65 64 29 20 7b 0a 24 72 61 url);.}..if.($rateLimited).{.$ra
991e0 74 65 4c 69 6d 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 61 74 65 4c 69 6d 69 74 28 24 65 teLimit.=.$this->getRateLimit($e
99200 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 ->getHeaders());.$this->io->writ
99220 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 0a 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 eError(sprintf(.'<error>GitHub.A
99240 50 49 20 6c 69 6d 69 74 20 28 25 64 20 63 61 6c 6c 73 2f 68 72 29 20 69 73 20 65 78 68 61 75 73 PI.limit.(%d.calls/hr).is.exhaus
99260 74 65 64 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 68 6f 72 69 7a 65 64 20 ted..You.are.already.authorized.
99280 73 6f 20 79 6f 75 20 68 61 76 65 20 74 6f 20 77 61 69 74 20 75 6e 74 69 6c 20 25 73 20 62 65 66 so.you.have.to.wait.until.%s.bef
992a0 6f 72 65 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 75 65 73 74 73 3c 2f 65 72 72 6f 72 3e 27 ore.doing.more.requests</error>'
992c0 2c 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 2c 0a 24 72 61 74 65 4c 69 6d 69 ,.$rateLimit['limit'],.$rateLimi
992e0 74 5b 27 72 65 73 65 74 27 5d 0a 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 t['reset'].));.}..throw.$e;..def
99300 61 75 6c 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ault:.throw.$e;.}.}.}.........pr
99320 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 61 74 65 4c 69 6d 69 74 28 61 72 otected.function.getRateLimit(ar
99340 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 72 61 74 65 4c 69 6d 69 74 20 3d 20 61 72 72 ray.$headers).{.$rateLimit.=.arr
99360 61 79 28 0a 27 6c 69 6d 69 74 27 20 3d 3e 20 27 3f 27 2c 0a 27 72 65 73 65 74 27 20 3d 3e 20 27 ay(.'limit'.=>.'?',.'reset'.=>.'
99380 3f 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 ?',.);..foreach.($headers.as.$he
993a0 61 64 65 72 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 74 72 69 6d 28 24 68 65 61 64 65 72 29 3b ader).{.$header.=.trim($header);
993c0 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 68 65 61 64 65 72 2c 20 27 .if.(false.===.strpos($header,.'
993e0 58 2d 52 61 74 65 4c 69 6d 69 74 2d 27 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 6c 69 X-RateLimit-')).{.continue;.}.li
99400 73 74 28 24 74 79 70 65 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c st($type,.$value).=.explode(':',
99420 20 24 68 65 61 64 65 72 2c 20 32 29 3b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 .$header,.2);.switch.($type).{.c
99440 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 4c 69 6d 69 74 27 3a 0a 24 72 61 74 65 4c 69 ase.'X-RateLimit-Limit':.$rateLi
99460 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 mit['limit'].=.(int).trim($value
99480 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 65 73 65 );.break;.case.'X-RateLimit-Rese
994a0 74 27 3a 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 72 65 73 65 74 27 5d 20 3d 20 64 61 74 65 28 27 t':.$rateLimit['reset'].=.date('
994c0 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 2c 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 Y-m-d.H:i:s',.(int).trim($value)
994e0 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 61 74 65 4c 69 6d 69 74 );.break;.}.}..return.$rateLimit
99500 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 66 65 74 ;.}.......protected.function.fet
99520 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 24 72 65 70 6f 44 61 74 61 55 72 chRootIdentifier().{.$repoDataUr
99540 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 73 l.=.$this->getApiUrl()...'/repos
99560 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
99580 69 74 6f 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 itory;..$repoData.=.JsonFile::pa
995a0 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 70 6f rseJson($this->getContents($repo
995c0 44 61 74 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 72 65 70 6f 44 61 74 61 55 72 6c 29 3b 0a 69 DataUrl,.true),.$repoDataUrl);.i
995e0 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 26 26 20 6e 75 6c 6c 20 21 3d f.(null.===.$repoData.&&.null.!=
99600 3d 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a =.$this->gitDriver).{.return;.}.
99620 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6f 77 6e 65 72 .$this->owner.=.$repoData['owner
99640 27 5d 5b 27 6c 6f 67 69 6e 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d ']['login'];.$this->repository.=
99660 20 24 72 65 70 6f 44 61 74 61 5b 27 6e 61 6d 65 27 5d 3b 0a 0a 24 74 68 69 73 2d 3e 69 73 50 72 .$repoData['name'];..$this->isPr
99680 69 76 61 74 65 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 70 72 69 76 61 74 ivate.=.!empty($repoData['privat
996a0 65 27 5d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 e']);.if.(isset($repoData['defau
996c0 6c 74 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 lt_branch'])).{.$this->rootIdent
996e0 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 ifier.=.$repoData['default_branc
99700 68 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 h'];.}.elseif.(isset($repoData['
99720 6d 61 73 74 65 72 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 master_branch'])).{.$this->rootI
99740 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 dentifier.=.$repoData['master_br
99760 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e anch'];.}.else.{.$this->rootIden
99780 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 24 74 68 69 73 2d 3e 68 61 73 49 tifier.=.'master';.}.$this->hasI
997a0 73 73 75 65 73 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 68 61 73 5f 69 73 ssues.=.!empty($repoData['has_is
997c0 73 75 65 73 27 5d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 sues']);.}..protected.function.a
997e0 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 ttemptCloneFallback().{.$this->i
99800 73 50 72 69 76 61 74 65 20 3d 20 74 72 75 65 3b 0a 0a 74 72 79 20 7b 0a 0a 20 0a 20 0a 20 0a 20 sPrivate.=.true;..try.{.........
99820 24 74 68 69 73 2d 3e 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 74 68 69 73 2d 3e 67 65 6e $this->setupGitDriver($this->gen
99840 65 72 61 74 65 53 73 68 55 72 6c 28 29 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 20 63 61 74 63 68 erateSshUrl());..return;.}.catch
99860 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 24 74 68 69 73 2d .(\RuntimeException.$e).{.$this-
99880 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 >gitDriver.=.null;..$this->io->w
998a0 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 63 6c 6f 6e riteError('<error>Failed.to.clon
998c0 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2e e.the.'.$this->generateSshUrl().
998e0 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 '.repository,.try.running.in.int
99900 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e eractive.mode.so.that.you.can.en
99920 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 3c 2f 65 72 72 ter.your.GitHub.credentials</err
99940 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 or>');.throw.$e;.}.}..protected.
99960 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 75 72 6c 29 0a 7b 0a function.setupGitDriver($url).{.
99980 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 65 77 20 47 69 74 44 72 69 76 65 72 $this->gitDriver.=.new.GitDriver
999a0 28 0a 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 29 2c 0a 24 74 68 69 73 2d 3e 69 (.array('url'.=>.$url),.$this->i
999c0 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 o,.$this->config,.$this->process
999e0 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 3b 0a 24 74 68 ,.$this->remoteFilesystem.);.$th
99a00 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a is->gitDriver->initialize();.}..
99a20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 78 74 50 61 67 65 28 29 protected.function.getNextPage()
99a40 0a 7b 0a 24 68 65 61 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 .{.$headers.=.$this->remoteFiles
99a60 79 73 74 65 6d 2d 3e 67 65 74 4c 61 73 74 48 65 61 64 65 72 73 28 29 3b 0a 66 6f 72 65 61 63 68 ystem->getLastHeaders();.foreach
99a80 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 69 66 20 28 73 75 62 .($headers.as.$header).{.if.(sub
99aa0 73 74 72 28 24 68 65 61 64 65 72 2c 20 30 2c 20 35 29 20 3d 3d 3d 20 27 4c 69 6e 6b 3a 27 29 20 str($header,.0,.5).===.'Link:').
99ac0 7b 0a 24 6c 69 6e 6b 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2c 27 2c 20 73 75 62 73 74 72 28 24 {.$links.=.explode(',',.substr($
99ae0 68 65 61 64 65 72 2c 20 35 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 header,.5));.foreach.($links.as.
99b00 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 3c 28 2e 2b 3f 29 $link).{.if.(preg_match('{<(.+?)
99b20 3e 3b 20 2a 72 65 6c 3d 22 6e 65 78 74 22 7d 27 2c 20 24 6c 69 6e 6b 2c 20 24 6d 61 74 63 68 29 >;.*rel="next"}',.$link,.$match)
99b40 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a ).{.return.$match[1];.}.}.}.}.}.
99b60 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
99b80 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f poser\Repository\Vcs;..use.Compo
99ba0 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 43 61 63 68 65 3b 0a ser\Config;.use.Composer\Cache;.
99bc0 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
99be0 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
99c00 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 poser\Downloader\TransportExcept
99c20 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c ion;.use.Composer\Util\RemoteFil
99c40 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 47 69 74 4c 61 esystem;.use.Composer\Util\GitLa
99c60 62 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 4c 61 62 44 72 69 76 65 72 20 65 78 74 b;........class.GitLabDriver.ext
99c80 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 63 68 65 6d 65 ends.VcsDriver.{.private.$scheme
99ca0 3b 0a 70 72 69 76 61 74 65 20 24 6f 77 6e 65 72 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 ;.private.$owner;.private.$repos
99cc0 69 74 6f 72 79 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 61 63 68 65 3b 0a 70 72 69 76 61 74 65 20 itory;..private.$cache;.private.
99ce0 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 $infoCache.=.array();.....privat
99d00 65 20 24 70 72 6f 6a 65 63 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 69 74 73 e.$project;.....private.$commits
99d20 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 74 61 67 73 3b 0a 0a .=.array();.....private.$tags;..
99d40 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 72 61 6e 63 68 65 73 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ...private.$branches;.......prot
99d60 65 63 74 65 64 20 24 67 69 74 44 72 69 76 65 72 3b 0a 0a 63 6f 6e 73 74 20 55 52 4c 5f 52 45 47 ected.$gitDriver;..const.URL_REG
99d80 45 58 20 3d 20 27 23 5e 28 3f 3a 28 3f 50 3c 73 63 68 65 6d 65 3e 68 74 74 70 73 3f 29 3a 2f 2f EX.=.'#^(?:(?P<scheme>https?)://
99da0 28 3f 50 3c 64 6f 6d 61 69 6e 3e 2e 2b 3f 29 2f 7c 67 69 74 40 28 3f 50 3c 64 6f 6d 61 69 6e 32 (?P<domain>.+?)/|git@(?P<domain2
99dc0 3e 5b 5e 3a 5d 2b 29 3a 29 28 3f 50 3c 6f 77 6e 65 72 3e 5b 5e 2f 5d 2b 29 2f 28 3f 50 3c 72 65 >[^:]+):)(?P<owner>[^/]+)/(?P<re
99de0 70 6f 3e 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e 67 69 74 7c 2f 29 3f 24 23 27 3b 0a 0a 0a 0a 0a 0a po>[^/]+?)(?:\.git|/)?$#';......
99e00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b ..public.function.initialize().{
99e20 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 73 65 6c 66 3a 3a 55 52 4c 5f 52 45 47 45 58 .if.(!preg_match(self::URL_REGEX
99e40 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e ,.$this->url,.$match)).{.throw.n
99e60 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 54 68 ew.\InvalidArgumentException('Th
99e80 65 20 55 52 4c 20 70 72 6f 76 69 64 65 64 20 69 73 20 69 6e 76 61 6c 69 64 2e 20 49 74 20 6d 75 e.URL.provided.is.invalid..It.mu
99ea0 73 74 20 62 65 20 74 68 65 20 48 54 54 50 20 55 52 4c 20 6f 66 20 61 20 47 69 74 4c 61 62 20 70 st.be.the.HTTP.URL.of.a.GitLab.p
99ec0 72 6f 6a 65 63 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 63 68 65 6d 65 20 3d 20 21 65 roject.');.}..$this->scheme.=.!e
99ee0 6d 70 74 79 28 24 6d 61 74 63 68 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 6d 61 74 63 68 5b mpty($match['scheme']).?.$match[
99f00 27 73 63 68 65 6d 65 27 5d 20 3a 20 27 68 74 74 70 73 27 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 'scheme'].:.'https';.$this->orig
99f20 69 6e 55 72 6c 20 3d 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 27 64 6f 6d 61 69 6e 27 5d 29 inUrl.=.!empty($match['domain'])
99f40 20 3f 20 24 6d 61 74 63 68 5b 27 64 6f 6d 61 69 6e 27 5d 20 3a 20 24 6d 61 74 63 68 5b 27 64 6f .?.$match['domain'].:.$match['do
99f60 6d 61 69 6e 32 27 5d 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 27 main2'];.$this->owner.=.$match['
99f80 6f 77 6e 65 72 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 70 72 65 owner'];.$this->repository.=.pre
99fa0 67 5f 72 65 70 6c 61 63 65 28 27 23 28 5c 2e 67 69 74 29 24 23 27 2c 20 27 27 2c 20 24 6d 61 74 g_replace('#(\.git)$#',.'',.$mat
99fc0 63 68 5b 27 72 65 70 6f 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 ch['repo']);..$this->cache.=.new
99fe0 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d .Cache($this->io,.$this->config-
9a000 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 24 74 68 69 73 >get('cache-repo-dir').'/'.$this
9a020 2d 3e 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 ->originUrl.'/'.$this->owner.'/'
9a040 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 65 74 .$this->repository);..$this->fet
9a060 63 68 50 72 6f 6a 65 63 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e chProject();.}........public.fun
9a080 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 74 65 ction.setRemoteFilesystem(Remote
9a0a0 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 29 0a 7b 0a Filesystem.$remoteFilesystem).{.
9a0c0 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 65 6d 6f 74 $this->remoteFilesystem.=.$remot
9a0e0 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eFilesystem;.}.........public.fu
9a100 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 nction.getComposerInformation($i
9a120 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 dentifier).{...if.(!preg_match('
9a140 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 29 20 {[a-f0-9]{40}}i',.$identifier)).
9a160 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 {.$branches.=.$this->getBranches
9a180 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 62 72 61 6e 63 68 65 73 5b 24 69 64 65 6e 74 69 66 ();.if.(isset($branches[$identif
9a1a0 69 65 72 5d 29 29 20 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 24 62 72 61 6e 63 68 65 73 ier])).{.$identifier.=.$branches
9a1c0 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 [$identifier];.}.}..if.(isset($t
9a1e0 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])).{.
9a200 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 return.$this->infoCache[$identif
9a220 69 65 72 5d 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d ier];.}..if.(preg_match('{[a-f0-
9a240 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 9]{40}}i',.$identifier).&&.$res.
9a260 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 =.$this->cache->read($identifier
9a280 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 )).{.return.$this->infoCache[$id
9a2a0 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(
9a2c0 24 72 65 73 2c 20 24 72 65 73 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 $res,.$res);.}..try.{.$composer.
9a2e0 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e =.$this->fetchComposerFile($iden
9a300 74 69 66 69 65 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 tifier);.}.catch.(TransportExcep
9a320 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 3d tion.$e).{.if.($e->getCode().!==
9a340 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 .404).{.throw.$e;.}.$composer.=.
9a360 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 26 26 20 21 69 73 73 65 false;.}..if.($composer.&&.!isse
9a380 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 74 t($composer['time']).&&.isset($t
9a3a0 68 69 73 2d 3e 63 6f 6d 6d 69 74 73 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 63 his->commits[$identifier])).{.$c
9a3c0 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 69 74 73 omposer['time'].=.$this->commits
9a3e0 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 5b 27 63 6f 6d 6d 69 74 74 65 64 5f 64 61 74 65 27 5d 3b [$identifier]['committed_date'];
9a400 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 .}..if.(preg_match('{[a-f0-9]{40
9a420 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 }}i',.$identifier)).{.$this->cac
9a440 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f he->write($identifier,.json_enco
9a460 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d de($composer));.}..return.$this-
9a480 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f >infoCache[$identifier].=.$compo
9a4a0 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 67 65 74 52 65 ser;.}.....public.function.getRe
9a4c0 70 6f 73 69 74 6f 72 79 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 positoryUrl().{.return.$this->pr
9a4e0 6f 6a 65 63 74 5b 27 73 73 68 5f 75 72 6c 5f 74 6f 5f 72 65 70 6f 27 5d 3b 0a 7d 0a 0a 0a 0a 0a oject['ssh_url_to_repo'];.}.....
9a500 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 public.function.getUrl().{.retur
9a520 6e 20 24 74 68 69 73 2d 3e 70 72 6f 6a 65 63 74 5b 27 77 65 62 5f 75 72 6c 27 5d 3b 0a 7d 0a 0a n.$this->project['web_url'];.}..
9a540 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
9a560 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 41 70 69 55 72 tifier).{.$url.=.$this->getApiUr
9a580 6c 28 29 2e 27 2f 72 65 70 6f 73 69 74 6f 72 79 2f 61 72 63 68 69 76 65 2e 7a 69 70 3f 73 68 61 l().'/repository/archive.zip?sha
9a5a0 3d 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 ='.$identifier;..return.array('t
9a5c0 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 ype'.=>.'zip',.'url'.=>.$url,.'r
9a5e0 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 eference'.=>.$identifier,.'shasu
9a600 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e m'.=>.'');.}.....public.function
9a620 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e .getSource($identifier).{.return
9a640 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e .array('type'.=>.'git',.'url'.=>
9a660 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 55 72 6c 28 29 2c 20 27 72 65 66 .$this->getRepositoryUrl(),.'ref
9a680 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 erence'.=>.$identifier);.}.....p
9a6a0 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 69 66 69 65 72 ublic.function.getRootIdentifier
9a6c0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 6a 65 63 74 5b 27 64 65 66 61 ().{.return.$this->project['defa
9a6e0 75 6c 74 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ult_branch'];.}.....public.funct
9a700 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e ion.getBranches().{.if.(!$this->
9a720 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 24 74 branches).{.$this->branches.=.$t
9a740 68 69 73 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 27 62 72 61 6e 63 68 65 73 27 29 3b 0a his->getReferences('branches');.
9a760 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a }..return.$this->branches;.}....
9a780 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 .public.function.getTags().{.if.
9a7a0 28 21 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 24 (!$this->tags).{.$this->tags.=.$
9a7c0 74 68 69 73 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 27 74 61 67 73 27 29 3b 0a 7d 0a 0a this->getReferences('tags');.}..
9a7e0 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 0a 0a 0a 0a 70 72 return.$this->tags;.}.........pr
9a800 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 43 6f 6d 70 6f 73 65 72 46 69 otected.function.fetchComposerFi
9a820 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 le($identifier).{.$resource.=.$t
9a840 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 2e 27 2f 72 65 70 6f 73 69 74 6f 72 79 2f 62 6c his->getApiUrl().'/repository/bl
9a860 6f 62 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 3f 66 69 6c 65 70 61 74 68 3d 63 6f 6d obs/'.$identifier.'?filepath=com
9a880 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 poser.json';..return.JsonFile::p
9a8a0 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 arseJson($this->getContents($res
9a8c0 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ource),.$resource);.}.....public
9a8e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 69 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 .function.getApiUrl().{.return.$
9a900 74 68 69 73 2d 3e 73 63 68 65 6d 65 2e 27 3a 2f 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e this->scheme.'://'.$this->origin
9a920 55 72 6c 2e 27 2f 61 70 69 2f 76 33 2f 70 72 6f 6a 65 63 74 73 2f 27 2e 24 74 68 69 73 2d 3e 6f Url.'/api/v3/projects/'.$this->o
9a940 77 6e 65 72 2e 27 25 32 46 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a wner.'%2F'.$this->repository;.}.
9a960 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 52 65 66 65 ......protected.function.getRefe
9a980 72 65 6e 63 65 73 28 24 74 79 70 65 29 0a 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 rences($type).{.$resource.=.$thi
9a9a0 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 2e 27 2f 72 65 70 6f 73 69 74 6f 72 79 2f 27 2e 24 74 s->getApiUrl().'/repository/'.$t
9a9c0 79 70 65 3b 0a 0a 24 64 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f ype;..$data.=.JsonFile::parseJso
9a9e0 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c n($this->getContents($resource),
9aa00 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 .$resource);..$references.=.arra
9aa20 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 64 61 74 75 6d 29 20 y();..foreach.($data.as.$datum).
9aa40 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 64 61 74 75 6d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 {.$references[$datum['name']].=.
9aa60 24 64 61 74 75 6d 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 69 64 27 5d 3b 0a 0a 0a 20 0a 20 24 74 68 $datum['commit']['id'];......$th
9aa80 69 73 2d 3e 63 6f 6d 6d 69 74 73 5b 24 64 61 74 75 6d 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 69 64 is->commits[$datum['commit']['id
9aaa0 27 5d 5d 20 3d 20 24 64 61 74 75 6d 5b 27 63 6f 6d 6d 69 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 ']].=.$datum['commit'];.}..retur
9aac0 6e 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 n.$references;.}..protected.func
9aae0 74 69 6f 6e 20 66 65 74 63 68 50 72 6f 6a 65 63 74 28 29 0a 7b 0a 0a 20 24 72 65 73 6f 75 72 63 tion.fetchProject().{...$resourc
9ab00 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 3b 0a 24 74 68 69 73 2d 3e 70 e.=.$this->getApiUrl();.$this->p
9ab20 72 6f 6a 65 63 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 roject.=.JsonFile::parseJson($th
9ab40 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 2c 20 74 72 75 65 29 is->getContents($resource,.true)
9ab60 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ,.$resource);.}..protected.funct
9ab80 69 6f 6e 20 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 74 72 79 ion.attemptCloneFallback().{.try
9aba0 20 7b 0a 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 .{.......$this->setupGitDriver($
9abc0 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 65 74 75 72 6e this->generateSshUrl());..return
9abe0 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 ;.}.catch.(\RuntimeException.$e)
9ac00 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 0a 0a 24 74 68 .{.$this->gitDriver.=.null;..$th
9ac20 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 46 61 69 6c 65 is->io->writeError('<error>Faile
9ac40 64 20 74 6f 20 63 6c 6f 6e 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 d.to.clone.the.'.$this->generate
9ac60 53 73 68 55 72 6c 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 SshUrl().'.repository,.try.runni
9ac80 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 ng.in.interactive.mode.so.that.y
9aca0 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 63 72 65 64 65 6e 74 69 61 6c 73 3c 2f 65 ou.can.enter.your.credentials</e
9acc0 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 rror>');.throw.$e;.}.}..protecte
9ace0 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 75 72 6c 29 0a d.function.setupGitDriver($url).
9ad00 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 65 77 20 47 69 74 44 72 69 76 {.$this->gitDriver.=.new.GitDriv
9ad20 65 72 28 0a 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 29 2c 0a 24 74 68 69 73 2d er(.array('url'.=>.$url),.$this-
9ad40 3e 69 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 >io,.$this->config,.$this->proce
9ad60 73 73 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 3b 0a 24 ss,.$this->remoteFilesystem.);.$
9ad80 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d this->gitDriver->initialize();.}
9ada0 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 6f 6e 74 65 .....protected.function.getConte
9adc0 6e 74 73 28 24 75 72 6c 2c 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 20 3d 20 66 61 nts($url,.$fetchingRepoData.=.fa
9ade0 6c 73 65 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 lse).{.try.{.return.parent::getC
9ae00 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 ontents($url);.}.catch.(Transpor
9ae20 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 67 69 74 4c 61 62 55 74 69 6c 20 3d 20 6e tException.$e).{.$gitLabUtil.=.n
9ae40 65 77 20 47 69 74 4c 61 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.GitLab($this->io,.$this->conf
9ae60 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 72 65 6d 6f 74 ig,.$this->process,.$this->remot
9ae80 65 46 69 6c 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f eFilesystem);..switch.($e->getCo
9aea0 64 65 28 29 29 20 7b 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 0a 20 69 66 de()).{.case.401:.case.404:...if
9aec0 20 28 21 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 24 65 .(!$fetchingRepoData).{.throw.$e
9aee0 3b 0a 7d 0a 0a 69 66 20 28 24 67 69 74 4c 61 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f ;.}..if.($gitLabUtil->authorizeO
9af00 41 75 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 Auth($this->originUrl)).{.return
9af20 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 0a 0a 69 .parent::getContents($url);.}..i
9af40 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 f.(!$this->io->isInteractive()).
9af60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c {.return.$this->attemptCloneFall
9af80 62 61 63 6b 28 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 back();.}.$this->io->writeError(
9afa0 27 3c 77 61 72 6e 69 6e 67 3e 46 61 69 6c 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 27 20 2e '<warning>Failed.to.download.'..
9afc0 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 72 65 70 .$this->owner...'/'...$this->rep
9afe0 6f 73 69 74 6f 72 79 20 2e 20 27 3a 27 20 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 ository...':'...$e->getMessage()
9b000 20 2e 20 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 67 69 74 4c 61 62 55 74 69 6c 2d 3e 61 ...'</warning>');.$gitLabUtil->a
9b020 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 74 68 69 73 uthorizeOAuthInteractively($this
9b040 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 59 6f 75 72 20 63 72 65 64 65 6e 74 69 61 6c 73 20 61 ->originUrl,.'Your.credentials.a
9b060 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 66 65 74 63 68 20 70 72 69 76 61 74 65 20 72 65 70 re.required.to.fetch.private.rep
9b080 6f 73 69 74 6f 72 79 20 6d 65 74 61 64 61 74 61 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d ository.metadata.(<info>'.$this-
9b0a0 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 >url.'</info>)');..return.parent
9b0c0 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 0a 63 61 73 65 20 34 30 33 3a 0a ::getContents($url);..case.403:.
9b0e0 69 66 20 28 21 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 69 6f if.(!$this->io->hasAuthenticatio
9b100 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 26 26 20 24 67 69 74 4c 61 62 55 74 n($this->originUrl).&&.$gitLabUt
9b120 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e il->authorizeOAuth($this->origin
9b140 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e Url)).{.return.parent::getConten
9b160 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 ts($url);.}..if.(!$this->io->isI
9b180 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 nteractive().&&.$fetchingRepoDat
9b1a0 61 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 a).{.return.$this->attemptCloneF
9b1c0 61 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 61 75 6c 74 allback();.}..throw.$e;..default
9b1e0 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 :.throw.$e;.}.}.}........public.
9b200 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
9b220 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,.
9b240 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 68 $deep.=.false).{.if.(!preg_match
9b260 28 73 65 6c 66 3a 3a 55 52 4c 5f 52 45 47 45 58 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 (self::URL_REGEX,.$url,.$match))
9b280 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 63 68 65 6d 65 20 3d 20 21 65 .{.return.false;.}..$scheme.=.!e
9b2a0 6d 70 74 79 28 24 6d 61 74 63 68 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 6d 61 74 63 68 5b mpty($match['scheme']).?.$match[
9b2c0 27 73 63 68 65 6d 65 27 5d 20 3a 20 27 68 74 74 70 73 27 3b 0a 24 6f 72 69 67 69 6e 55 72 6c 20 'scheme'].:.'https';.$originUrl.
9b2e0 3d 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 27 64 6f 6d 61 69 6e 27 5d 29 20 3f 20 24 6d 61 =.!empty($match['domain']).?.$ma
9b300 74 63 68 5b 27 64 6f 6d 61 69 6e 27 5d 20 3a 20 24 6d 61 74 63 68 5b 27 64 6f 6d 61 69 6e 32 27 tch['domain'].:.$match['domain2'
9b320 5d 3b 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 28 61 ];..if.(!in_array($originUrl,.(a
9b340 72 72 61 79 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 6c 61 62 2d 64 6f 6d 61 69 rray).$config->get('gitlab-domai
9b360 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 0a 69 66 20 28 27 68 ns'))).{.return.false;.}..if.('h
9b380 74 74 70 73 27 20 3d 3d 3d 20 24 73 63 68 65 6d 65 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e 5f ttps'.===.$scheme.&&.!extension_
9b3a0 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
9b3c0 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e Verbose()).{.$io->write('Skippin
9b3e0 67 20 47 69 74 4c 61 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.GitLab.driver.for.'.$url.'.bec
9b400 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
9b420 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;.}
9b440 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ..return.true;.}.}.<?php........
9b460 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 ....namespace.Composer\Repositor
9b480 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 y\Vcs;..use.Composer\Config;.use
9b4a0 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
9b4c0 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 poser\IO\IOInterface;.....class.
9b4e0 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 HgBitbucketDriver.extends.VcsDri
9b500 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 ver.{.protected.$owner;.protecte
9b520 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a d.$repository;.protected.$tags;.
9b540 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 protected.$branches;.protected.$
9b560 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 rootIdentifier;.protected.$infoC
9b580 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ache.=.array();.....public.funct
9b5a0 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 ion.initialize().{.preg_match('#
9b5c0 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 2f 5d 2b 29 ^https?://bitbucket\.org/([^/]+)
9b5e0 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 /([^/]+)/?$#',.$this->url,.$matc
9b600 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 h);.$this->owner.=.$match[1];.$t
9b620 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 his->repository.=.$match[2];.$th
9b640 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b is->originUrl.=.'bitbucket.org';
9b660 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
9b680 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d entifier().{.if.(null.===.$this-
9b6a0 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 >rootIdentifier).{.$resource.=.$
9b6c0 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
9b6e0 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 t.org/api/1.0/repositories/'.$th
9b700 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e is->owner.'/'.$this->repository.
9b720 27 2f 74 61 67 73 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 '/tags';.$repoData.=.JsonFile::p
9b740 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 arseJson($this->getContents($res
9b760 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 ource),.$resource);.if.(array().
9b780 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 7c 7c 20 21 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 ===.$repoData.||.!isset($repoDat
9b7a0 61 5b 27 74 69 70 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 a['tip'])).{.throw.new.\RuntimeE
9b7c0 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 64 6f 65 73 20 6e 6f 74 20 61 xception($this->url.'.does.not.a
9b7e0 70 70 65 61 72 20 74 6f 20 62 65 20 61 20 6d 65 72 63 75 72 69 61 6c 20 72 65 70 6f 73 69 74 6f ppear.to.be.a.mercurial.reposito
9b800 72 79 2c 20 75 73 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2e 67 69 74 20 69 66 20 74 68 ry,.use.'.$this->url.'.git.if.th
9b820 69 73 20 69 73 20 61 20 67 69 74 20 62 69 74 62 75 63 6b 65 74 20 72 65 70 6f 73 69 74 6f 72 79 is.is.a.git.bitbucket.repository
9b840 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 ');.}.$this->rootIdentifier.=.$r
9b860 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 0a 72 epoData['tip']['raw_node'];.}..r
9b880 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a eturn.$this->rootIdentifier;.}..
9b8a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 ...public.function.getUrl().{.re
9b8c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 turn.$this->url;.}.....public.fu
9b8e0 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a nction.getSource($identifier).{.
9b900 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 return.array('type'.=>.'hg',.'ur
9b920 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 l'.=>.$this->getUrl(),.'referenc
9b940 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e'.=>.$identifier);.}.....public
9b960 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b .function.getDist($identifier).{
9b980 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f .$url.=.$this->getScheme()...':/
9b9a0 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f /bitbucket.org/'.$this->owner.'/
9b9c0 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 69 64 65 '.$this->repository.'/get/'.$ide
9b9e0 6e 74 69 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 ntifier.'.zip';..return.array('t
9ba00 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 ype'.=>.'zip',.'url'.=>.$url,.'r
9ba20 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 eference'.=>.$identifier,.'shasu
9ba40 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e m'.=>.'');.}.....public.function
9ba60 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 .getComposerInformation($identif
9ba80 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 ier).{.if.(!isset($this->infoCac
9baa0 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 he[$identifier])).{.$resource.=.
9bac0 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b $this->getScheme()...'://bitbuck
9bae0 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 et.org/api/1.0/repositories/'.$t
9bb00 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
9bb20 2e 27 2f 73 72 63 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e .'/src/'.$identifier.'/composer.
9bb40 6a 73 6f 6e 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 json';.$repoData.=.JsonFile::par
9bb60 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 seJson($this->getContents($resou
9bb80 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 21 rce),.$resource);..........if.(!
9bba0 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 64 61 74 61 27 2c 20 24 72 65 70 6f 44 61 array_key_exists('data',.$repoDa
9bbc0 74 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 ta)).{.return;.}..$composer.=.Js
9bbe0 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 70 6f 44 61 74 61 5b 27 64 61 74 onFile::parseJson($repoData['dat
9bc00 61 27 5d 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 a'],.$resource);..if.(empty($com
9bc20 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 poser['time'])).{.$resource.=.$t
9bc40 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 his->getScheme()...'://bitbucket
9bc60 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 .org/api/1.0/repositories/'.$thi
9bc80 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.'
9bca0 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e /changesets/'.$identifier;.$chan
9bcc0 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 geset.=.JsonFile::parseJson($thi
9bce0 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f s->getContents($resource),.$reso
9bd00 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e urce);.$composer['time'].=.$chan
9bd20 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 geset['timestamp'];.}.$this->inf
9bd40 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b oCache[$identifier].=.$composer;
9bd60 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 .}..return.$this->infoCache[$ide
9bd80 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ntifier];.}.....public.function.
9bda0 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e getTags().{.if.(null.===.$this->
9bdc0 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 tags).{.$resource.=.$this->getSc
9bde0 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 31 heme()...'://bitbucket.org/api/1
9be00 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 .0/repositories/'.$this->owner.'
9be20 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 /'.$this->repository.'/tags';.$t
9be40 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 agsData.=.JsonFile::parseJson($t
9be60 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
9be80 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a source);.$this->tags.=.array();.
9bea0 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 foreach.($tagsData.as.$tag.=>.$d
9bec0 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 ata).{.$this->tags[$tag].=.$data
9bee0 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 74 61 67 ['raw_node'];.}.unset($this->tag
9bf00 73 5b 27 74 69 70 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 s['tip']);.}..return.$this->tags
9bf20 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 ;.}.....public.function.getBranc
9bf40 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e hes().{.if.(null.===.$this->bran
9bf60 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 ches).{.$resource.=.$this->getSc
9bf80 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 31 heme()...'://bitbucket.org/api/1
9bfa0 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 .0/repositories/'.$this->owner.'
9bfc0 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 /'.$this->repository.'/branches'
9bfe0 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a ;.$branchData.=.JsonFile::parseJ
9c000 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 son($this->getContents($resource
9c020 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d ),.$resource);.$this->branches.=
9c040 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 .array();.foreach.($branchData.a
9c060 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 s.$branch.=>.$data).{.$this->bra
9c080 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 nches[$branch].=.$data['raw_node
9c0a0 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b '];.}.}..return.$this->branches;
9c0c0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 .}.....public.static.function.su
9c0e0 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 24 pports(IOInterface.$io,.Config.$
9c100 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 69 config,.$url,.$deep.=.false).{.i
9c120 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f 2f 62 69 74 62 75 f.(!preg_match('#^https?://bitbu
9c140 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 cket\.org/([^/]+)/([^/]+)/?$#',.
9c160 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 $url)).{.return.false;.}..if.(!e
9c180 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 xtension_loaded('openssl')).{.if
9c1a0 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 .($io->isVerbose()).{.$io->write
9c1c0 45 72 72 6f 72 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 68 67 20 64 72 69 Error('Skipping.Bitbucket.hg.dri
9c1e0 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 ver.for.'.$url.'.because.the.Ope
9c200 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 nSSL.PHP.extension.is.missing.')
9c220 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 ;.}..return.false;.}..return.tru
9c240 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 e;.}.}.<?php............namespac
9c260 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 e.Composer\Repository\Vcs;..use.
9c280 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 Composer\Config;.use.Composer\Js
9c2a0 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
9c2c0 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
9c2e0 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 49 4f 5c 49 4f l\Filesystem;.use.Composer\IO\IO
9c300 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 72 69 76 65 72 20 65 78 Interface;.....class.HgDriver.ex
9c320 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 tends.VcsDriver.{.protected.$tag
9c340 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 s;.protected.$branches;.protecte
9c360 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 d.$rootIdentifier;.protected.$re
9c380 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 poDir;.protected.$infoCache.=.ar
9c3a0 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
9c3c0 61 6c 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 alize().{.if.(Filesystem::isLoca
9c3e0 6c 50 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 lPath($this->url)).{.$this->repo
9c400 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 Dir.=.$this->url;.}.else.{.$cach
9c420 65 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 eDir.=.$this->config->get('cache
9c440 2d 76 63 73 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 63 61 -vcs-dir');.$this->repoDir.=.$ca
9c460 63 68 65 44 69 72 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e cheDir...'/'...preg_replace('{[^
9c480 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 a-z0-9]}i',.'-',.$this->url)...'
9c4a0 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 /';..$fs.=.new.Filesystem();.$fs
9c4c0 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 61 63 68 65 44 69 ->ensureDirectoryExists($cacheDi
9c4e0 72 29 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 r);..if.(!is_writable(dirname($t
9c500 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e his->repoDir))).{.throw.new.\Run
9c520 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 timeException('Can.not.clone.'.$
9c540 74 68 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e this->url.'.to.access.package.in
9c560 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 24 63 61 63 68 65 44 69 72 2e 27 22 20 64 formation..The."'.$cacheDir.'".d
9c580 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 irectory.is.not.writable.by.the.
9c5a0 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 current.user.');.}....if.(is_dir
9c5c0 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 68 69 73 2d ($this->repoDir).&&.0.===.$this-
9c5e0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 >process->execute('hg.summary',.
9c600 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 69 66 20 28 $output,.$this->repoDir)).{.if.(
9c620 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 68 0.!==.$this->process->execute('h
9c640 67 20 70 75 6c 6c 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 g.pull',.$output,.$this->repoDir
9c660 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 65 72 72 )).{.$this->io->writeError('<err
9c680 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
9c6a0 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
9c6c0 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.('.
9c6e0 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()
9c700 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d .')</error>');.}.}.else.{...$fs-
9c720 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 >removeDirectory($this->repoDir)
9c740 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 ;..if.(0.!==.$this->process->exe
9c760 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 2d 2d 6e 6f 75 70 64 61 74 cute(sprintf('hg.clone.--noupdat
9c780 65 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 63 61 70 e.%s.%s',.ProcessExecutor::escap
9c7a0 65 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a e($this->url),.ProcessExecutor::
9c7c0 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 escape($this->repoDir)),.$output
9c7e0 2c 20 24 63 61 63 68 65 44 69 72 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d ,.$cacheDir)).{.$output.=.$this-
9c800 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 >process->getErrorOutput();..if.
9c820 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 (0.!==.$this->process->execute('
9c840 68 67 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 hg.--version',.$ignoredOutput)).
9c860 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
9c880 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 68 ailed.to.clone.'.$this->url.',.h
9c8a0 67 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 g.was.not.found,.check.that.it.i
9c8c0 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 s.installed.and.in.your.PATH.env
9c8e0 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 .'..."\n\n"...$this->process->ge
9c900 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 tErrorOutput());.}..throw.new.\R
9c920 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
9c940 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 .'.$this->url.',.could.not.read.
9c960 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 packages.from.it'..."\n\n"..$out
9c980 70 75 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 put);.}.}.}..$this->getTags();.$
9c9a0 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 this->getBranches();.}.....publi
9c9c0 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 0a 7b c.function.getRootIdentifier().{
9c9e0 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 74 69 66 .if.(null.===.$this->rootIdentif
9ca00 69 65 72 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 ier).{.$this->process->execute(s
9ca20 70 72 69 6e 74 66 28 27 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 printf('hg.tip.--template."{node
9ca40 7d 22 27 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a }"'),.$output,.$this->repoDir);.
9ca60 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c $output.=.$this->process->splitL
9ca80 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 ines($output);.$this->rootIdenti
9caa0 66 69 65 72 20 3d 20 24 6f 75 74 70 75 74 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 fier.=.$output[0];.}..return.$th
9cac0 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
9cae0 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
9cb00 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
9cb20 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
9cb40 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
9cb60 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
9cb80 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
9cba0 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 6e .getDist($identifier).{.return.n
9cbc0 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 6f ull;.}.....public.function.getCo
9cbe0 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b mposerInformation($identifier).{
9cc00 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 .if.(!isset($this->infoCache[$id
9cc20 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 entifier])).{.$this->process->ex
9cc40 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 61 74 20 2d 72 20 25 73 20 63 6f 6d 70 ecute(sprintf('hg.cat.-r.%s.comp
9cc60 6f 73 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 oser.json',.ProcessExecutor::esc
9cc80 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 ape($identifier)),.$composer,.$t
9cca0 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 6f his->repoDir);..if.(!trim($compo
9ccc0 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a ser)).{.return;.}..$composer.=.J
9cce0 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 sonFile::parseJson($composer,.$i
9cd00 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 dentifier);..if.(empty($composer
9cd20 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 ['time'])).{.$this->process->exe
9cd40 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 cute(sprintf('hg.log.--template.
9cd60 22 7b 64 61 74 65 7c 72 66 63 33 33 33 39 64 61 74 65 7d 22 20 2d 72 20 25 73 27 2c 20 50 72 6f "{date|rfc3339date}".-r.%s',.Pro
9cd80 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 72 cessExecutor::escape($identifier
9cda0 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 64 )),.$output,.$this->repoDir);.$d
9cdc0 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 ate.=.new.\DateTime(trim($output
9cde0 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 ),.new.\DateTimeZone('UTC'));.$c
9ce00 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 omposer['time'].=.$date->format(
9ce20 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 'Y-m-d.H:i:s');.}.$this->infoCac
9ce40 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a he[$identifier].=.$composer;.}..
9ce60 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 return.$this->infoCache[$identif
9ce80 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 ier];.}.....public.function.getT
9cea0 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 ags().{.if.(null.===.$this->tags
9cec0 29 20 7b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f ).{.$tags.=.array();..$this->pro
9cee0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 cess->execute('hg.tags',.$output
9cf00 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ,.$this->repoDir);.foreach.($thi
9cf20 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 s->process->splitLines($output).
9cf40 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 as.$tag).{.if.($tag.&&.preg_matc
9cf60 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 74 61 h('(^([^\s]+)\s+\d+:(.*)$)',.$ta
9cf80 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d g,.$match)).{.$tags[$match[1]].=
9cfa0 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 70 .$match[2];.}.}.unset($tags['tip
9cfc0 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 65 ']);..$this->tags.=.$tags;.}..re
9cfe0 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 turn.$this->tags;.}.....public.f
9d000 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c unction.getBranches().{.if.(null
9d020 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 .===.$this->branches).{.$branche
9d040 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 20 3d 20 61 72 72 61 79 28 s.=.array();.$bookmarks.=.array(
9d060 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 );..$this->process->execute('hg.
9d080 62 72 61 6e 63 68 65 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 branches',.$output,.$this->repoD
9d0a0 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
9d0c0 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a litLines($output).as.$branch).{.
9d0e0 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e if.($branch.&&.preg_match('(^([^
9d100 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 5b 61 2d 66 30 2d 39 5d 2b 29 29 27 2c 20 24 62 72 61 6e \s]+)\s+\d+:([a-f0-9]+))',.$bran
9d120 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 5b ch,.$match)).{.$branches[$match[
9d140 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 1]].=.$match[2];.}.}..$this->pro
9d160 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 6f 6f 6b 6d 61 72 6b 73 27 2c 20 24 6f cess->execute('hg.bookmarks',.$o
9d180 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 utput,.$this->repoDir);.foreach.
9d1a0 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 ($this->process->splitLines($out
9d1c0 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 put).as.$branch).{.if.($branch.&
9d1e0 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 3f 3a 5b 5c 73 2a 5d 2a 29 28 5b 5e 5c 73 5d &.preg_match('(^(?:[\s*]*)([^\s]
9d200 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 +)\s+\d+:(.*)$)',.$branch,.$matc
9d220 68 29 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d h)).{.$bookmarks[$match[1]].=.$m
9d240 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 atch[2];.}.}....$this->branches.
9d260 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 62 6f 6f 6b 6d 61 72 6b 73 2c 20 24 62 72 61 6e 63 =.array_merge($bookmarks,.$branc
9d280 68 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b hes);.}..return.$this->branches;
9d2a0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 .}.....public.static.function.su
9d2c0 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 24 pports(IOInterface.$io,.Config.$
9d2e0 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 69 config,.$url,.$deep.=.false).{.i
9d300 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 f.(preg_match('#(^(?:https?|ssh)
9d320 3a 2f 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 ://(?:[^@]@)?bitbucket.org|https
9d340 3a 2f 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c ://(?:.*?)\.kilnhg.com)#i',.$url
9d360 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 46 69 6c 65 73 )).{.return.true;.}....if.(Files
9d380 79 73 74 65 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 ystem::isLocalPath($url)).{.$url
9d3a0 20 3d 20 46 69 6c 65 73 79 73 74 65 6d 3a 3a 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 .=.Filesystem::getPlatformPath($
9d3c0 75 72 6c 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 url);.if.(!is_dir($url)).{.retur
9d3e0 6e 20 66 61 6c 73 65 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 n.false;.}..$process.=.new.Proce
9d400 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 ssExecutor();...if.($process->ex
9d420 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 ecute('hg.summary',.$output,.$ur
9d440 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 l).===.0).{.return.true;.}.}..if
9d460 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 .(!$deep).{.return.false;.}..$pr
9d480 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 ocessExecutor.=.new.ProcessExecu
9d4a0 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d tor();.$exit.=.$processExecutor-
9d4c0 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 69 64 65 6e 74 69 66 79 20 25 73 >execute(sprintf('hg.identify.%s
9d4e0 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 29 ',.ProcessExecutor::escape($url)
9d500 29 2c 20 24 69 67 6e 6f 72 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d 3d 20 ),.$ignored);..return.$exit.===.
9d520 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 0;.}.}.<?php............namespac
9d540 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 e.Composer\Repository\Vcs;..use.
9d560 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f Composer\Config;.use.Composer\IO
9d580 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\
9d5a0 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 55 74 ProcessExecutor;.use.Composer\Ut
9d5c0 69 6c 5c 50 65 72 66 6f 72 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 44 il\Perforce;.....class.PerforceD
9d5e0 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 river.extends.VcsDriver.{.protec
9d600 74 65 64 20 24 64 65 70 6f 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 3b 0a 70 ted.$depot;.protected.$branch;.p
9d620 72 6f 74 65 63 74 65 64 20 24 70 65 72 66 6f 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 rotected.$perforce;.protected.$c
9d640 6f 6d 70 6f 73 65 72 49 6e 66 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 omposerInfo;.protected.$composer
9d660 49 6e 66 6f 49 64 65 6e 74 69 66 69 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 InfoIdentifier;.....public.funct
9d680 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 6f 74 20 ion.initialize().{.$this->depot.
9d6a0 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 3b 0a 24 74 =.$this->repoConfig['depot'];.$t
9d6c0 68 69 73 2d 3e 62 72 61 6e 63 68 20 3d 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 his->branch.=.'';.if.(!empty($th
9d6e0 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 is->repoConfig['branch'])).{.$th
9d700 69 73 2d 3e 62 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 is->branch.=.$this->repoConfig['
9d720 62 72 61 6e 63 68 27 5d 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 50 65 72 66 6f 72 63 65 branch'];.}..$this->initPerforce
9d740 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 ($this->repoConfig);.$this->perf
9d760 6f 72 63 65 2d 3e 70 34 4c 6f 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d orce->p4Login($this->io);.$this-
9d780 3e 70 65 72 66 6f 72 63 65 2d 3e 63 68 65 63 6b 53 74 72 65 61 6d 28 24 74 68 69 73 2d 3e 64 65 >perforce->checkStream($this->de
9d7a0 70 6f 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 77 72 69 74 65 50 34 43 pot);..$this->perforce->writeP4C
9d7c0 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6f lientSpec();.$this->perforce->co
9d7e0 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a nnectClient();..return.true;.}..
9d800 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 72 private.function.initPerforce($r
9d820 65 70 6f 43 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 epoConfig).{.if.(!empty($this->p
9d840 65 72 66 6f 72 63 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 44 69 72 20 erforce)).{.return;.}..$repoDir.
9d860 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d =.$this->config->get('cache-vcs-
9d880 64 69 72 27 29 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 3b 0a 24 74 68 69 dir')...'/'...$this->depot;.$thi
9d8a0 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 50 65 72 66 6f 72 63 65 3a 3a 63 72 65 61 74 65 28 24 s->perforce.=.Perforce::create($
9d8c0 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 24 72 65 repoConfig,.$this->getUrl(),.$re
9d8e0 70 6f 44 69 72 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 69 6f poDir,.$this->process,.$this->io
9d900 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 );.}.....public.function.getComp
9d920 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 oserInformation($identifier).{.i
9d940 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 49 64 65 f.(!empty($this->composerInfoIde
9d960 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 73 74 72 63 6d 70 28 24 69 64 65 6e 74 69 66 69 ntifier)).{.if.(strcmp($identifi
9d980 65 72 2c 20 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 er,.$this->composerInfoIdentifie
9d9a0 72 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 r).===.0).{.return.$this->compos
9d9c0 65 72 49 6e 66 6f 3b 0a 7d 0a 7d 0a 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 20 3d 20 24 74 68 erInfo;.}.}.$composer_info.=.$th
9d9e0 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 is->perforce->getComposerInforma
9da00 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 tion($identifier);..return.$comp
9da20 6f 73 65 72 5f 69 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e oser_info;.}.....public.function
9da40 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 .getRootIdentifier().{.return.$t
9da60 68 69 73 2d 3e 62 72 61 6e 63 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 his->branch;.}.....public.functi
9da80 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 on.getBranches().{.$branches.=.$
9daa0 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a this->perforce->getBranches();..
9dac0 72 65 74 75 72 6e 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 return.$branches;.}.....public.f
9dae0 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 24 74 61 67 73 20 3d 20 24 74 68 69 unction.getTags().{.$tags.=.$thi
9db00 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 s->perforce->getTags();..return.
9db20 24 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 $tags;.}.....public.function.get
9db40 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 6e 75 6c 6c 3b Dist($identifier).{.return.null;
9db60 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
9db80 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 73 6f 75 72 63 65 20 3d 20 61 72 72 61 79 28 ($identifier).{.$source.=.array(
9dba0 0a 27 74 79 70 65 27 20 3d 3e 20 27 70 65 72 66 6f 72 63 65 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 .'type'.=>.'perforce',.'url'.=>.
9dbc0 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 0a 27 72 65 66 65 72 $this->repoConfig['url'],.'refer
9dbe0 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 0a 27 70 34 75 73 65 72 27 20 3d ence'.=>.$identifier,.'p4user'.=
9dc00 3e 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 55 73 65 72 28 29 2c 0a 29 3b >.$this->perforce->getUser(),.);
9dc20 0a 0a 72 65 74 75 72 6e 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ..return.$source;.}.....public.f
9dc40 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d unction.getUrl().{.return.$this-
9dc60 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 68 61 73 43 >url;.}.....public.function.hasC
9dc80 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 24 74 68 69 73 omposerFile($identifier).{.$this
9dca0 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 ->composerInfo.=.$this->perforce
9dcc0 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 27 2f 2f 27 20 2e 20 ->getComposerInformation('//'...
9dce0 24 74 68 69 73 2d 3e 64 65 70 6f 74 20 2e 20 27 2f 27 20 2e 20 24 69 64 65 6e 74 69 66 69 65 72 $this->depot...'/'...$identifier
9dd00 29 3b 0a 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 );.$this->composerInfoIdentifier
9dd20 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 .=.$identifier;..return.!empty($
9dd40 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 this->composerInfo);.}.....publi
9dd60 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 c.function.getContents($url).{.r
9dd80 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 73 74 61 74 69 63 eturn.false;.}.....public.static
9dda0 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 .function.supports(IOInterface.$
9ddc0 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 24 64 65 65 70 20 io,.Config.$config,.$url,.$deep.
9dde0 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 64 65 65 70 20 7c 7c 20 70 72 65 67 5f 6d 61 74 =.false).{.if.($deep.||.preg_mat
9de00 63 68 28 27 23 5c 62 28 70 65 72 66 6f 72 63 65 7c 70 34 29 5c 62 23 69 27 2c 20 24 75 72 6c 29 ch('#\b(perforce|p4)\b#i',.$url)
9de20 29 20 7b 0a 72 65 74 75 72 6e 20 50 65 72 66 6f 72 63 65 3a 3a 63 68 65 63 6b 53 65 72 76 65 72 ).{.return.Perforce::checkServer
9de40 45 78 69 73 74 73 28 24 75 72 6c 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 Exists($url,.new.ProcessExecutor
9de60 28 24 69 6f 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 ($io));.}..return.false;.}.....p
9de80 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 24 74 68 69 73 ublic.function.cleanup().{.$this
9dea0 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 3b ->perforce->cleanupClientSpec();
9dec0 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c .$this->perforce.=.null;.}..publ
9dee0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ic.function.getDepot().{.return.
9df00 24 74 68 69 73 2d 3e 64 65 70 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $this->depot;.}..public.function
9df20 20 67 65 74 42 72 61 6e 63 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 .getBranch().{.return.$this->bra
9df40 6e 63 68 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 nch;.}.}.<?php............namesp
9df60 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 ace.Composer\Repository\Vcs;..us
9df80 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 e.Composer\Cache;.use.Composer\C
9dfa0 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c onfig;.use.Composer\Json\JsonFil
9dfc0 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 63 e;.use.Composer\Util\ProcessExec
9dfe0 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 utor;.use.Composer\Util\Filesyst
9e000 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e em;.use.Composer\Util\Svn.as.Svn
9e020 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 Util;.use.Composer\IO\IOInterfac
9e040 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 73 e;.use.Composer\Downloader\Trans
9e060 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 72 69 portException;......class.SvnDri
9e080 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 ver.extends.VcsDriver.{....prote
9e0a0 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b cted.$cache;.protected.$baseUrl;
9e0c0 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
9e0e0 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
9e100 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 ;.protected.$infoCache.=.array()
9e120 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 75 6e 6b 50 61 74 68 20 3d 20 27 74 72 75 6e 6b ;..protected.$trunkPath.=.'trunk
9e140 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 27 62 72 ';.protected.$branchesPath.=.'br
9e160 61 6e 63 68 65 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 50 61 74 68 20 3d 20 27 anches';.protected.$tagsPath.=.'
9e180 74 61 67 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 50 61 74 68 20 3d 20 tags';.protected.$packagePath.=.
9e1a0 27 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 '';.protected.$cacheCredentials.
9e1c0 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 69 6c 3b 0a 0a 0a 0a 0a 70 =.true;.....private.$util;.....p
9e1e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 ublic.function.initialize().{.$t
9e200 68 69 73 2d 3e 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 his->url.=.$this->baseUrl.=.rtri
9e220 6d 28 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 m(self::normalizeUrl($this->url)
9e240 2c 20 27 2f 27 29 3b 0a 0a 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 69 ,.'/');..SvnUtil::cleanEnv();..i
9e260 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 72 75 6e f.(isset($this->repoConfig['trun
9e280 6b 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 3d 20 k-path'])).{.$this->trunkPath.=.
9e2a0 24 74 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 3b $this->repoConfig['trunk-path'];
9e2c0 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 .}.if.(isset($this->repoConfig['
9e2e0 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 branches-path'])).{.$this->branc
9e300 68 65 73 50 61 74 68 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 hesPath.=.$this->repoConfig['bra
9e320 6e 63 68 65 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d nches-path'];.}.if.(isset($this-
9e340 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 >repoConfig['tags-path'])).{.$th
9e360 69 73 2d 3e 74 61 67 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 is->tagsPath.=.$this->repoConfig
9e380 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 ['tags-path'];.}.if.(array_key_e
9e3a0 78 69 73 74 73 28 27 73 76 6e 2d 63 61 63 68 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 27 2c 20 24 xists('svn-cache-credentials',.$
9e3c0 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 this->repoConfig)).{.$this->cach
9e3e0 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 72 65 70 eCredentials.=.(bool).$this->rep
9e400 6f 43 6f 6e 66 69 67 5b 27 73 76 6e 2d 63 61 63 68 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 27 5d oConfig['svn-cache-credentials']
9e420 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b ;.}.if.(isset($this->repoConfig[
9e440 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 'package-path'])).{.$this->packa
9e460 67 65 50 61 74 68 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 gePath.=.'/'...trim($this->repoC
9e480 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 2c 20 27 2f 27 29 3b 0a 7d 0a 0a onfig['package-path'],.'/');.}..
9e4a0 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 74 if.(false.!==.($pos.=.strrpos($t
9e4c0 68 69 73 2d 3e 75 72 6c 2c 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 his->url,.'/'...$this->trunkPath
9e4e0 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 72 28 24 74 ))).{.$this->baseUrl.=.substr($t
9e500 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 his->url,.0,.$pos);.}..$this->ca
9e520 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
9e540 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').
9e560 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 '/'.preg_replace('{[^a-z0-9.]}i'
9e580 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 68 69 73 2d ,.'-',.$this->baseUrl));..$this-
9e5a0 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 >getBranches();.$this->getTags()
9e5c0 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
9e5e0 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 dentifier().{.return.$this->root
9e600 49 64 65 6e 74 69 66 69 65 72 20 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a Identifier.?:.$this->trunkPath;.
9e620 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b }.....public.function.getUrl().{
9e640 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .return.$this->url;.}.....public
9e660 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 .function.getSource($identifier)
9e680 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e 27 2c .{.return.array('type'.=>.'svn',
9e6a0 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 65 72 .'url'.=>.$this->baseUrl,.'refer
9e6c0 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ence'.=>.$identifier);.}.....pub
9e6e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 lic.function.getDist($identifier
9e700 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ).{.return.null;.}.....public.fu
9e720 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 nction.getComposerInformation($i
9e740 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 20 2e dentifier).{.$identifier.=.'/'..
9e760 20 74 72 69 6d 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 0a .trim($identifier,.'/')...'/';..
9e780 69 66 20 28 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 if.($res.=.$this->cache->read($i
9e7a0 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 dentifier.'.json')).{.$this->inf
9e7c0 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a oCache[$identifier].=.JsonFile::
9e7e0 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 parseJson($res);.}..if.(!isset($
9e800 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b this->infoCache[$identifier])).{
9e820 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f 24 7d 27 2c .preg_match('{^(.+?)(@\d+)?/$}',
9e840 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 .$identifier,.$match);.if.(!empt
9e860 79 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 63 68 5b 31 y($match[2])).{.$path.=.$match[1
9e880 5d 3b 0a 24 72 65 76 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 ];.$rev.=.$match[2];.}.else.{.$p
9e8a0 61 74 68 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a ath.=.$identifier;.$rev.=.'';.}.
9e8c0 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 .try.{.$resource.=.$path.'compos
9e8e0 65 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 er.json';.$output.=.$this->execu
9e900 74 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 te('svn.cat',.$this->baseUrl...$
9e920 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 74 resource...$rev);.if.(!trim($out
9e940 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 put)).{.return;.}.}.catch.(\Runt
9e960 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 imeException.$e).{.throw.new.Tra
9e980 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 nsportException($e->getMessage()
9e9a0 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 );.}..$composer.=.JsonFile::pars
9e9c0 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 eJson($output,.$this->baseUrl...
9e9e0 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 $resource...$rev);..if.(empty($c
9ea00 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 omposer['time'])).{.$output.=.$t
9ea20 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 73 2d 3e his->execute('svn.info',.$this->
9ea40 62 61 73 65 55 72 6c 20 2e 20 24 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 61 63 68 baseUrl...$path...$rev);.foreach
9ea60 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 .($this->process->splitLines($ou
9ea80 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 tput).as.$line).{.if.($line.&&.p
9eaa0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 65 3a 20 reg_match('{^Last.Changed.Date:.
9eac0 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 ([^(]+)}',.$line,.$match)).{.$da
9eae0 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 te.=.new.\DateTime($match[1],.ne
9eb00 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 w.\DateTimeZone('UTC'));.$compos
9eb20 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d er['time'].=.$date->format('Y-m-
9eb40 64 20 48 3a 69 3a 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e d.H:i:s');.break;.}.}.}..$this->
9eb60 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 cache->write($identifier.'.json'
9eb80 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 74 68 69 73 ,.json_encode($composer));.$this
9eba0 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 ->infoCache[$identifier].=.$comp
9ebc0 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 oser;.}..return.$this->infoCache
9ebe0 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 [$identifier];.}.....public.func
9ec00 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 tion.getTags().{.if.(null.===.$t
9ec20 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 his->tags).{.$this->tags.=.array
9ec40 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 21 3d 3d 20 66 61 6c ();..if.($this->tagsPath.!==.fal
9ec60 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 se).{.$output.=.$this->execute('
9ec80 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 svn.ls.--verbose',.$this->baseUr
9eca0 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 29 3b 0a 69 66 20 28 l...'/'...$this->tagsPath);.if.(
9ecc0 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 $output).{.foreach.($this->proce
9ece0 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 ss->splitLines($output).as.$line
9ed00 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 ).{.$line.=.trim($line);.if.($li
9ed20 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 ne.&&.preg_match('{^\s*(\S+).*?(
9ed40 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 \S+)\s*$}',.$line,.$match)).{.if
9ed60 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 .(isset($match[1]).&&.isset($mat
9ed80 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a ch[2]).&&.$match[2].!==.'./').{.
9eda0 24 74 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 $this->tags[rtrim($match[2],.'/'
9edc0 29 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 )].=.$this->buildIdentifier(.'/'
9ede0 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 ...$this->tagsPath...'/'...$matc
9ee00 68 5b 32 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a h[2],.$match[1].);.}.}.}.}.}.}..
9ee20 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 63 return.$this->tags;.}.....public
9ee40 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 75 .function.getBranches().{.if.(nu
9ee60 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d ll.===.$this->branches).{.$this-
9ee80 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 >branches.=.array();..if.(false.
9eea0 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 20 7b 0a 24 74 72 75 6e 6b 50 61 ===.$this->trunkPath).{.$trunkPa
9eec0 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 3b 0a 7d 20 65 rent.=.$this->baseUrl...'/';.}.e
9eee0 6c 73 65 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 lse.{.$trunkParent.=.$this->base
9ef00 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a 7d 0a Url...'/'...$this->trunkPath;.}.
9ef20 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 76 6e 20 6c .$output.=.$this->execute('svn.l
9ef40 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 72 75 6e 6b 50 61 72 65 6e 74 29 3b 0a 69 66 20 s.--verbose',.$trunkParent);.if.
9ef60 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 ($output).{.foreach.($this->proc
9ef80 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e ess->splitLines($output).as.$lin
9efa0 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c e).{.$line.=.trim($line);.if.($l
9efc0 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f ine.&&.preg_match('{^\s*(\S+).*?
9efe0 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 (\S+)\s*$}',.$line,.$match)).{.i
9f000 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 f.(isset($match[1]).&&.isset($ma
9f020 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 27 2e 2f 27 29 20 7b tch[2]).&&.$match[2].===.'./').{
9f040 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 20 3d 20 24 74 68 69 .$this->branches['trunk'].=.$thi
9f060 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d s->buildIdentifier(.'/'...$this-
9f080 3e 74 72 75 6e 6b 50 61 74 68 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 24 74 68 69 73 2d 3e >trunkPath,.$match[1].);.$this->
9f0a0 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 rootIdentifier.=.$this->branches
9f0c0 5b 27 74 72 75 6e 6b 27 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 28 ['trunk'];.break;.}.}.}.}.unset(
9f0e0 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 $output);..if.($this->branchesPa
9f100 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d th.!==.false).{.$output.=.$this-
9f120 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 >execute('svn.ls.--verbose',.$th
9f140 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 is->baseUrl...'/'...$this->branc
9f160 68 65 73 50 61 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 hesPath);.if.($output).{.foreach
9f180 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 74 72 69 .($this->process->splitLines(tri
9f1a0 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 m($output)).as.$line).{.$line.=.
9f1c0 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 6d trim($line);.if.($line.&&.preg_m
9f1e0 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 20 atch('{^\s*(\S+).*?(\S+)\s*$}',.
9f200 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 74 $line,.$match)).{.if.(isset($mat
9f220 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 6d ch[1]).&&.isset($match[2]).&&.$m
9f240 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 atch[2].!==.'./').{.$this->branc
9f260 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 24 74 68 hes[rtrim($match[2],.'/')].=.$th
9f280 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 is->buildIdentifier(.'/'...$this
9f2a0 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d ->branchesPath...'/'...$match[2]
9f2c0 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 ,.$match[1].);.}.}.}.}.}.}..retu
9f2e0 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
9f300 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
9f320 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,
9f340 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 75 72 6c 20 3d 20 73 65 6c 66 3a 3a 6e .$deep.=.false).{.$url.=.self::n
9f360 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 ormalizeUrl($url);.if.(preg_matc
9f380 68 28 27 23 28 5e 73 76 6e 3a 2f 2f 7c 5e 73 76 6e 5c 2b 73 73 68 3a 2f 2f 7c 73 76 6e 5c 2e 29 h('#(^svn://|^svn\+ssh://|svn\.)
9f3a0 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 #i',.$url)).{.return.true;.}....
9f3c0 69 66 20 28 21 24 64 65 65 70 20 26 26 20 21 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 if.(!$deep.&&.!Filesystem::isLoc
9f3e0 61 6c 50 61 74 68 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 alPath($url)).{.return.false;.}.
9f400 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 .$processExecutor.=.new.ProcessE
9f420 78 65 63 75 74 6f 72 28 29 3b 0a 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 xecutor();..$exit.=.$processExec
9f440 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 0a 22 73 76 6e 20 69 6e 66 6f 20 2d 2d 6e 6f 6e 2d 69 utor->execute(."svn.info.--non-i
9f460 6e 74 65 72 61 63 74 69 76 65 20 7b 24 75 72 6c 7d 22 2c 0a 24 69 67 6e 6f 72 65 64 4f 75 74 70 nteractive.{$url}",.$ignoredOutp
9f480 75 74 0a 29 3b 0a 0a 69 66 20 28 24 65 78 69 74 20 3d 3d 3d 20 30 29 20 7b 0a 0a 20 72 65 74 75 ut.);..if.($exit.===.0).{...retu
9f4a0 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f rn.true;.}..if.(false.!==.stripo
9f4c0 73 28 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 s($processExecutor->getErrorOutp
9f4e0 75 74 28 29 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 64 3a 27 29 29 20 ut(),.'authorization.failed:')).
9f500 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c {.....return.true;.}..return.fal
9f520 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 se;.}.........protected.static.f
9f540 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 66 73 unction.normalizeUrl($url).{.$fs
9f560 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 69 66 20 28 24 66 73 2d 3e 69 73 .=.new.Filesystem();.if.($fs->is
9f580 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 66 69 AbsolutePath($url)).{.return.'fi
9f5a0 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 24 75 72 6c 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b le://'...strtr($url,.'\\',.'/');
9f5c0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f .}..return.$url;.}...........pro
9f5e0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 tected.function.execute($command
9f600 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 75 74 ,.$url).{.if.(null.===.$this->ut
9f620 69 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 74 69 6c 28 il).{.$this->util.=.new.SvnUtil(
9f640 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 $this->baseUrl,.$this->io,.$this
9f660 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 68 69 73 ->config,.$this->process);.$this
9f680 2d 3e 75 74 69 6c 2d 3e 73 65 74 43 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 28 24 74 68 69 ->util->setCacheCredentials($thi
9f6a0 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 s->cacheCredentials);.}..try.{.r
9f6c0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d eturn.$this->util->execute($comm
9f6e0 61 6e 64 2c 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 and,.$url);.}.catch.(\RuntimeExc
9f700 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 eption.$e).{.if.(0.!==.$this->pr
9f720 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 ocess->execute('svn.--version',.
9f740 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 $ignoredOutput)).{.throw.new.\Ru
9f760 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 6c 6f 61 64 20 27 ntimeException('Failed.to.load.'
9f780 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 73 76 6e 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 .$this->url.',.svn.was.not.found
9f7a0 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
9f7c0 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"...$
9f7e0 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())
9f800 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
9f820 28 0a 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 (.'Repository.'.$this->url.'.cou
9f840 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 ld.not.be.processed,.'.$e->getMe
9f860 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ssage().);.}.}..........protecte
9f880 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 24 62 61 73 65 d.function.buildIdentifier($base
9f8a0 44 69 72 2c 20 24 72 65 76 69 73 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 Dir,.$revision).{.return.rtrim($
9f8c0 62 61 73 65 44 69 72 2c 20 27 2f 27 29 20 2e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 50 61 baseDir,.'/')...$this->packagePa
9f8e0 74 68 20 2e 20 27 2f 40 27 20 2e 20 24 72 65 76 69 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 th...'/@'...$revision;.}.}.<?php
9f900 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
9f920 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 44 6f 77 epository\Vcs;..use.Composer\Dow
9f940 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 75 73 65 20 nloader\TransportException;.use.
9f960 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f Composer\Config;.use.Composer\IO
9f980 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\
9f9a0 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 55 74 ProcessExecutor;.use.Composer\Ut
9f9c0 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 il\RemoteFilesystem;.use.Compose
9f9e0 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 61 62 73 74 72 61 63 r\Util\Filesystem;.......abstrac
9fa00 74 20 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 t.class.VcsDriver.implements.Vcs
9fa20 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c DriverInterface.{.protected.$url
9fa40 3b 0a 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 ;.protected.$originUrl;.protecte
9fa60 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 d.$repoConfig;.protected.$io;.pr
9fa80 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 20 24 70 72 6f 63 otected.$config;.protected.$proc
9faa0 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d ess;.protected.$remoteFilesystem
9fac0 3b 0a 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 ;...........final.public.functio
9fae0 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 69 67 2c n.__construct(array.$repoConfig,
9fb00 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 66 69 67 .IOInterface.$io,.Config.$config
9fb20 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
9fb40 6c 2c 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 l,.RemoteFilesystem.$remoteFiles
9fb60 79 73 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 ystem.=.null).{.if.(Filesystem::
9fb80 69 73 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 isLocalPath($repoConfig['url']))
9fba0 20 7b 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 .{.$repoConfig['url'].=.Filesyst
9fbc0 65 6d 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 em::getPlatformPath($repoConfig[
9fbe0 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 'url']);.}..$this->url.=.$repoCo
9fc00 6e 66 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 nfig['url'];.$this->originUrl.=.
9fc20 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 72 65 70 6f 43 $repoConfig['url'];.$this->repoC
9fc40 6f 6e 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 onfig.=.$repoConfig;.$this->io.=
9fc60 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 67 3b 0a 24 .$io;.$this->config.=.$config;.$
9fc80 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.
9fca0 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 69 73 2d 3e 72 65 6d ProcessExecutor($io);.$this->rem
9fcc0 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 oteFilesystem.=.$remoteFilesyste
9fce0 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 m.?:.new.RemoteFilesystem($io,.$
9fd00 63 6f 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 config);.}.....public.function.h
9fd20 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 74 72 asComposerFile($identifier).{.tr
9fd40 79 20 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 y.{.return.(bool).$this->getComp
9fd60 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 3b 0a 7d 20 oserInformation($identifier);.}.
9fd80 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a catch.(TransportException.$e).{.
9fda0 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 }..return.false;.}.........prote
9fdc0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 68 65 6d 65 28 29 0a 7b 0a 69 66 20 28 cted.function.getScheme().{.if.(
9fde0 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 72 extension_loaded('openssl')).{.r
9fe00 65 74 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 27 3b eturn.'https';.}..return.'http';
9fe20 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 65 .}.........protected.function.ge
9fe40 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tContents($url).{.return.$this->
9fe60 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 remoteFilesystem->getContents($t
9fe80 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a his->originUrl,.$url,.false);.}.
9fea0 0a 0a 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 ....public.function.cleanup().{.
9fec0 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 61 6d return;.}.}.<?php............nam
9fee0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a espace.Composer\Repository\Vcs;.
9ff00 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 .use.Composer\Config;.use.Compos
9ff20 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 er\IO\IOInterface;.....interface
9ff40 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 .VcsDriverInterface.{....public.
9ff60 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 function.initialize();........pu
9ff80 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
9ffa0 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tion($identifier);.......public.
9ffc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 0a 0a function.getRootIdentifier();...
9ffe0 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 28 ....public.function.getBranches(
a0000 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 );.......public.function.getTags
a0020 28 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 ();......public.function.getDist
a0040 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ($identifier);......public.funct
a0060 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a ion.getSource($identifier);.....
a0080 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a ..public.function.getUrl();.....
a00a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 ....public.function.hasComposerF
a00c0 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ile($identifier);.....public.fun
a00e0 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ction.cleanup();...........publi
a0100 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 c.static.function.supports(IOInt
a0120 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c erface.$io,.Config.$config,.$url
a0140 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ,.$deep.=.false);.}.<?php.......
a0160 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
a0180 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 ry;..use.Composer\Downloader\Tra
a01a0 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 52 65 nsportException;.use.Composer\Re
a01c0 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 3b pository\Vcs\VcsDriverInterface;
a01e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 56 65 72 73 69 6f 6e 50 61 72 73 .use.Composer\Semver\VersionPars
a0200 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\
a0220 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 ArrayLoader;.use.Composer\Packag
a0240 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a e\Loader\ValidatingArrayLoader;.
a0260 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 49 6e 76 61 use.Composer\Package\Loader\Inva
a0280 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 70 6f 73 65 lidPackageException;.use.Compose
a02a0 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 72 66 61 63 65 r\Package\Loader\LoaderInterface
a02c0 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
a02e0 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 4f 5c ventDispatcher;.use.Composer\IO\
a0300 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 6e 66 69 67 IOInterface;.use.Composer\Config
a0320 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 78 74 65 6e 64 ;.....class.VcsRepository.extend
a0340 73 20 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 43 6f 6e s.ArrayRepository.implements.Con
a0360 66 69 67 75 72 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 70 figurableRepositoryInterface.{.p
a0380 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 rotected.$url;.protected.$packag
a03a0 65 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 3b 0a 70 72 6f 74 65 eName;.protected.$verbose;.prote
a03c0 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
a03e0 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 tected.$versionParser;.protected
a0400 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 .$type;.protected.$loader;.prote
a0420 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 cted.$repoConfig;.protected.$bra
a0440 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 75 62 6c 69 nchErrorOccurred.=.false;..publi
a0460 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 65 c.function.__construct(array.$re
a0480 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 69 poConfig,.IOInterface.$io,.Confi
a04a0 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 64 69 73 70 g.$config,.EventDispatcher.$disp
a04c0 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 64 72 69 76 65 72 73 20 3d 20 atcher.=.null,.array.$drivers.=.
a04e0 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 3d 20 24 64 72 69 76 65 72 null).{.$this->drivers.=.$driver
a0500 73 20 3f 3a 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 s.?:.array(.'github'.=>.'Compose
a0520 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 44 72 69 76 65 72 27 2c 0a r\Repository\Vcs\GitHubDriver',.
a0540 27 67 69 74 6c 61 62 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 'gitlab'.=>.'Composer\Repository
a0560 5c 56 63 73 5c 47 69 74 4c 61 62 44 72 69 76 65 72 27 2c 0a 27 67 69 74 2d 62 69 74 62 75 63 6b \Vcs\GitLabDriver',.'git-bitbuck
a0580 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c et'.=>.'Composer\Repository\Vcs\
a05a0 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 67 69 74 27 20 3d 3e 20 27 43 GitBitbucketDriver',.'git'.=>.'C
a05c0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 44 72 69 76 65 72 omposer\Repository\Vcs\GitDriver
a05e0 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 6f 73 65 72 5c 52 ',.'hg-bitbucket'.=>.'Composer\R
a0600 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 72 69 76 65 72 27 epository\Vcs\HgBitbucketDriver'
a0620 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 74 6f 72 79 5c 56 ,.'hg'.=>.'Composer\Repository\V
a0640 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 3e 20 27 43 6f 6d cs\HgDriver',.'perforce'.=>.'Com
a0660 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 72 63 65 44 72 69 poser\Repository\Vcs\PerforceDri
a0680 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 5c 52 65 70 6f 73 ver',...'svn'.=>.'Composer\Repos
a06a0 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 24 74 68 69 73 2d itory\Vcs\SvnDriver',.);..$this-
a06c0 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 >url.=.$repoConfig['url'];.$this
a06e0 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 69 73 73 65 74 28 ->io.=.$io;.$this->type.=.isset(
a0700 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 70 6f 43 6f 6e 66 $repoConfig['type']).?.$repoConf
a0720 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 3e 76 65 72 62 6f ig['type'].:.'vcs';.$this->verbo
a0740 73 65 20 3d 20 24 69 6f 2d 3e 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 3b 0a 24 74 68 69 73 se.=.$io->isVeryVerbose();.$this
a0760 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 6f 43 ->config.=.$config;.$this->repoC
a0780 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 20 66 onfig.=.$repoConfig;.}..public.f
a07a0 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 72 6e unction.getRepoConfig().{.return
a07c0 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 66 75 .$this->repoConfig;.}..public.fu
a07e0 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 63 65 nction.setLoader(LoaderInterface
a0800 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 6f 61 .$loader).{.$this->loader.=.$loa
a0820 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 76 65 der;.}..public.function.getDrive
a0840 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 5b 24 r().{.if.(isset($this->drivers[$
a0860 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 2d 3e this->type])).{.$class.=.$this->
a0880 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 3d 20 drivers[$this->type];.$driver.=.
a08a0 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 24 74 new.$class($this->repoConfig,.$t
a08c0 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 his->io,.$this->config);.$driver
a08e0 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b ->initialize();..return.$driver;
a0900 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 .}..foreach.($this->drivers.as.$
a0920 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 driver).{.if.($driver::supports(
a0940 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d $this->io,.$this->config,.$this-
a0960 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 28 24 >url)).{.$driver.=.new.$driver($
a0980 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 74 68 this->repoConfig,.$this->io,.$th
a09a0 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 7a 65 is->config);.$driver->initialize
a09c0 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 61 63 ();..return.$driver;.}.}..foreac
a09e0 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 7b 0a h.($this->drivers.as.$driver).{.
a0a00 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 6f 2c if.($driver::supports($this->io,
a0a20 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 75 65 .$this->config,.$this->url,.true
a0a40 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 69 73 )).{.$driver.=.new.$driver($this
a0a60 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 2d 3e ->repoConfig,.$this->io,.$this->
a0a80 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 3b 0a config);.$driver->initialize();.
a0aa0 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 20 66 .return.$driver;.}.}.}..public.f
a0ac0 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 0a 72 unction.hadInvalidBranches().{.r
a0ae0 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 65 64 eturn.$this->branchErrorOccurred
a0b00 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 ;.}..protected.function.initiali
a0b20 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 ze().{.parent::initialize();..$v
a0b40 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 76 65 erbose.=.$this->verbose;..$drive
a0b60 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 64 72 r.=.$this->getDriver();.if.(!$dr
a0b80 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 6d 65 iver).{.throw.new.\InvalidArgume
a0ba0 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 6f 20 ntException('No.driver.found.to.
a0bc0 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 3e 75 handle.VCS.repository.'.$this->u
a0be0 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 20 6e rl);.}..$this->versionParser.=.n
a0c00 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 6c 6f ew.VersionParser;.if.(!$this->lo
a0c20 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 72 61 ader).{.$this->loader.=.new.Arra
a0c40 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 0a 7d yLoader($this->versionParser);.}
a0c60 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 65 72 ..try.{.if.($driver->hasComposer
a0c80 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 72 28 File($driver->getRootIdentifier(
a0ca0 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 6f 73 ))).{.$data.=.$driver->getCompos
a0cc0 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 49 64 erInformation($driver->getRootId
a0ce0 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 65 20 entifier());.$this->packageName.
a0d00 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 61 5b =.!empty($data['name']).?.$data[
a0d20 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 63 65 'name'].:.null;.}.}.catch.(\Exce
a0d40 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 ption.$e).{.if.($verbose).{.$thi
a0d60 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 70 65 s->io->writeError('<error>Skippe
a0d80 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 65 6e d.parsing.'.$driver->getRootIden
a0da0 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 2e 27 tifier().',.'.$e->getMessage().'
a0dc0 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 76 65 </error>');.}.}..foreach.($drive
a0de0 72 2d 3e 67 65 74 54 61 67 73 28 29 20 61 73 20 24 74 61 67 20 3d 3e 20 24 69 64 65 6e 74 69 66 r->getTags().as.$tag.=>.$identif
a0e00 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e ier).{.$msg.=.'Reading.composer.
a0e20 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 json.of.<info>'...($this->packag
a0e40 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 eName.?:.$this->url)...'</info>.
a0e60 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 61 67 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e (<comment>'...$tag...'</comment>
a0e80 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 )';.if.($verbose).{.$this->io->w
a0ea0 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 73 2d riteError($msg);.}.else.{.$this-
a0ec0 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 65 29 >io->overwriteError($msg,.false)
a0ee0 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 65 61 ;.}....$tag.=.str_replace('relea
a0f00 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 54 61 se-',.'',.$tag);..if.(!$parsedTa
a0f20 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 7b 0a g.=.$this->validateTag($tag)).{.
a0f40 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 if.($verbose).{.$this->io->write
a0f60 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 24 74 Error('<warning>Skipped.tag.'.$t
a0f80 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 67 3e ag.',.invalid.tag.name</warning>
a0fa0 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 24 64 ');.}.continue;.}..try.{.if.(!$d
a0fc0 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d ata.=.$driver->getComposerInform
a0fe0 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 62 6f ation($identifier)).{.if.($verbo
a1000 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
a1020 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 20 63 rning>Skipped.tag.'.$tag.',.no.c
a1040 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 6e 74 omposer.file</warning>');.}.cont
a1060 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 72 73 inue;.}....if.(isset($data['vers
a1080 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 6c 69 ion'])).{.$data['version_normali
a10a0 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 6e 6f zed'].=.$this->versionParser->no
a10c0 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 6c 73 rmalize($data['version']);.}.els
a10e0 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 0a 24 e.{...$data['version'].=.$tag;.$
a1100 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 70 61 data['version_normalized'].=.$pa
a1120 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 20 3d rsedTag;.}....$data['version'].=
a1140 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 27 27 .preg_replace('{[.-]?dev$}i',.''
a1160 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 72 73 ,.$data['version']);.$data['vers
a1180 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 65 28 ion_normalized'].=.preg_replace(
a11a0 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 61 74 '{(^dev-|[.-]?dev$)}i',.'',.$dat
a11c0 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 66 20 a['version_normalized']);....if.
a11e0 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 3d 3d ($data['version_normalized'].!==
a1200 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 0a 24 .$parsedTag).{.if.($verbose).{.$
a1220 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 3e 53 this->io->writeError('<warning>S
a1240 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 61 72 kipped.tag.'.$tag.',.tag.('.$par
a1260 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 6f 6e sedTag.').does.not.match.version
a1280 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 5d 2e .('.$data['version_normalized'].
a12a0 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 29 3b ').in.composer.json</warning>');
a12c0 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 7b 0a .}.continue;.}..if.($verbose).{.
a12e0 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 6e 67 $this->io->writeError('Importing
a1300 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 6e 5f .tag.'.$tag.'.('.$data['version_
a1320 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 64 64 normalized'].')');.}..$this->add
a1340 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 68 69 Package($this->loader->load($thi
a1360 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 24 69 s->preProcess($driver,.$data,.$i
a1380 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 69 6f dentifier)));.}.catch.(\Exceptio
a13a0 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 n.$e).{.if.($verbose).{.$this->i
a13c0 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 64 20 o->writeError('<warning>Skipped.
a13e0 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 27 2e 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 tag.'.$tag.',.'.($e.instanceof.T
a1400 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 3f 20 27 6e 6f 20 63 6f 6d 70 6f 73 65 72 ransportException.?.'no.composer
a1420 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 .file.was.found'.:.$e->getMessag
a1440 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 3b 0a e()).'</warning>');.}.continue;.
a1460 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 6f 2d }.}..if.(!$verbose).{.$this->io-
a1480 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 0a 66 >overwriteError('',.false);.}..f
a14a0 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 20 61 oreach.($driver->getBranches().a
a14c0 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 73 67 s.$branch.=>.$identifier).{.$msg
a14e0 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 69 6e .=.'Reading.composer.json.of.<in
a1500 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 24 74 fo>'...($this->packageName.?:.$t
a1520 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 3e 27 his->url)...'</info>.(<comment>'
a1540 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 20 28 ...$branch...'</comment>)';.if.(
a1560 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 72 6f $verbose).{.$this->io->writeErro
a1580 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 76 65 r($msg);.}.else.{.$this->io->ove
a15a0 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 66 20 rwriteError($msg,.false);.}..if.
a15c0 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 61 74 (!$parsedBranch.=.$this->validat
a15e0 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 73 65 eBranch($branch)).{.if.($verbose
a1600 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 6e ).{.$this->io->writeError('<warn
a1620 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 20 ing>Skipped.branch.'.$branch.',.
a1640 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 6e 74 invalid.name</warning>');.}.cont
a1660 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 64 72 69 inue;.}..try.{.if.(!$data.=.$dri
a1680 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 ver->getComposerInformation($ide
a16a0 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 ntifier)).{.if.($verbose).{.$thi
a16c0 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 69 70 s->io->writeError('<warning>Skip
a16e0 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f ped.branch.'.$branch.',.no.compo
a1700 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 75 65 ser.file</warning>');.}.continue
a1720 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 6e 63 ;.}....$data['version'].=.$branc
a1740 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 20 3d h;.$data['version_normalized'].=
a1760 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 3d 3d .$parsedBranch;....if.('dev-'.==
a1780 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 7c 7c =.substr($parsedBranch,.0,.4).||
a17a0 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 63 68 .'9999999-dev'.===.$parsedBranch
a17c0 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 2e 20 ).{.$data['version'].=.'dev-'...
a17e0 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 74 61 $data['version'];.}.else.{.$data
a1800 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 5c 2e ['version'].=.preg_replace('{(\.
a1820 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 3b 0a 9{7})+}',.'.x',.$parsedBranch);.
a1840 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 }..if.($verbose).{.$this->io->wr
a1860 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 62 72 iteError('Importing.branch.'.$br
a1880 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 29 3b anch.'.('.$data['version'].')');
a18a0 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 72 6f .}..$packageData.=.$this->prePro
a18c0 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 65 72 cess($driver,.$data,.$identifier
a18e0 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 6f 61 );.$package.=.$this->loader->loa
a1900 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 61 64 d($packageData);.if.($this->load
a1920 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 6f 61 er.instanceof.ValidatingArrayLoa
a1940 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 6e 67 der.&&.$this->loader->getWarning
a1960 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 65 45 s()).{.throw.new.InvalidPackageE
a1980 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 6f 72 xception($this->loader->getError
a19a0 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 73 28 s(),.$this->loader->getWarnings(
a19c0 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 50 61 ),.$packageData);.}.$this->addPa
a19e0 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 73 70 ckage($package);.}.catch.(Transp
a1a00 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 65 29 ortException.$e).{.if.($verbose)
a1a20 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
a1a40 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 20 6e ng>Skipped.branch.'.$branch.',.n
a1a60 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 6e 69 o.composer.file.was.found</warni
a1a80 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 78 63 ng>');.}.continue;.}.catch.(\Exc
a1aa0 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 24 74 eption.$e).{.if.(!$verbose).{.$t
a1ac0 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 69 73 his->io->writeError('');.}.$this
a1ae0 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 24 74 ->branchErrorOccurred.=.true;.$t
a1b00 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
a1b20 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 67 65 ped.branch.'.$branch.',.'.$e->ge
a1b40 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 3e 69 tMessage().'</error>');.$this->i
a1b60 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 0a 7d o->writeError('');.continue;.}.}
a1b80 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 72 62 .$driver->cleanup();..if.(!$verb
a1ba0 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 6f 72 ose).{.$this->io->overwriteError
a1bc0 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 74 50 ('',.false);.}..if.(!$this->getP
a1be0 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 52 65 ackages()).{.throw.new.InvalidRe
a1c00 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 6d 70 positoryException('No.valid.comp
a1c20 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 6e 63 oser.json.was.found.in.any.branc
a1c40 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 75 6c h.or.tag.of.'.$this->url.',.coul
a1c60 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 29 3b d.not.load.a.package.from.it.');
a1c80 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 6f 63 .}.}..protected.function.preProc
a1ca0 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 2c 20 ess(VcsDriverInterface.$driver,.
a1cc0 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 24 64 array.$data,.$identifier).{...$d
a1ce0 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 6d 65 ata['name'].=.$this->packageName
a1d00 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 28 24 .?:.$data['name'];..if.(!isset($
a1d20 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 20 3d data['dist'])).{.$data['dist'].=
a1d40 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 3b 0a .$driver->getDist($identifier);.
a1d60 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 20 7b }.if.(!isset($data['source'])).{
a1d80 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 74 53 .$data['source'].=.$driver->getS
a1da0 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 24 64 ource($identifier);.}..return.$d
a1dc0 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 61 74 ata;.}..private.function.validat
a1de0 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 6e 20 eBranch($branch).{.try.{.return.
a1e00 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 42 $this->versionParser->normalizeB
a1e20 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 70 74 ranch($branch);.}.catch.(\Except
a1e40 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 70 72 ion.$e).{.}..return.false;.}..pr
a1e60 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 72 73 ivate.function.validateTag($vers
a1e80 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 73 69 ion).{.try.{.return.$this->versi
a1ea0 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 0a 7d onParser->normalize($version);.}
a1ec0 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 74 75 .catch.(\Exception.$e).{.}..retu
a1ee0 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 0a 6e rn.false;.}.}.<?php............n
a1f00 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
a1f20 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
a1f40 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 73 ;.......class.WritableArrayRepos
a1f60 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d itory.extends.ArrayRepository.im
a1f80 70 6c 65 6d 65 6e 74 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 plements.WritableRepositoryInter
a1fa0 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 28 face.{....public.function.write(
a1fc0 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 64 ).{.}.....public.function.reload
a1fe0 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 61 ().{.}.....public.function.getCa
a2000 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 20 nonicalPackages().{.$packages.=.
a2020 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 67 $this->getPackages();....$packag
a2040 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 61 esByName.=.array();.foreach.($pa
a2060 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 74 ckages.as.$package).{.if.(!isset
a2080 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 61 ($packagesByName[$package->getNa
a20a0 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 61 me()]).||.$packagesByName[$packa
a20c0 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 50 ge->getName()].instanceof.AliasP
a20e0 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 61 ackage).{.$packagesByName[$packa
a2100 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 0a ge->getName()].=.$package;.}.}..
a2120 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 0a $canonicalPackages.=.array();...
a2140 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 61 .foreach.($packagesByName.as.$pa
a2160 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 63 ckage).{.while.($package.instanc
a2180 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 24 eof.AliasPackage).{.$package.=.$
a21a0 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 6e package->getAliasOf();.}..$canon
a21c0 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 65 icalPackages[].=.$package;.}..re
a21e0 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 70 turn.$canonicalPackages;.}.}.<?p
a2200 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
a2220 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 6b 61 \Repository;..use.Composer\Packa
a2240 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 69 6e 74 65 72 ge\PackageInterface;.......inter
a2260 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 65 72 66 61 63 65 face.WritableRepositoryInterface
a2280 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a .extends.RepositoryInterface.{..
a22a0 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 0a 0a 0a 0a 0a 0a ..public.function.write();......
a22c0 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 65 28 50 61 63 6b .public.function.addPackage(Pack
a22e0 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 0a 0a 0a 0a 70 75 ageInterface.$package);.......pu
a2300 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b blic.function.removePackage(Pack
a2320 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 0a 0a 0a 0a 70 75 ageInterface.$package);.......pu
a2340 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 50 61 63 6b 61 67 blic.function.getCanonicalPackag
a2360 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 72 65 6c 6f 61 64 es();.....public.function.reload
a2380 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ();.}.<?php............namespace
a23a0 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 6f .Composer\Script;.......class.Co
a23c0 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 70 mmandEvent.extends.Event.{.}.<?p
a23e0 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
a2400 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b \Script;..use.Composer\Composer;
a2420 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
a2440 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 74 e.Composer\EventDispatcher\Event
a2460 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 20 45 76 65 6e .as.BaseEvent;........class.Even
a2480 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 69 76 61 74 65 t.extends.BaseEvent.{....private
a24a0 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a .$composer;.....private.$io;....
a24c0 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 0a 0a 0a 70 75 .private.$devMode;............pu
a24e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c blic.function.__construct($name,
a2500 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 .Composer.$composer,.IOInterface
a2520 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 61 79 20 24 61 .$io,.$devMode.=.false,.array.$a
a2540 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 20 3d 20 61 72 rgs.=.array(),.array.$flags.=.ar
a2560 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 74 28 24 6e 61 ray()).{.parent::__construct($na
a2580 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 63 6f 6d 70 6f me,.$args,.$flags);.$this->compo
a25a0 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f ser.=.$composer;.$this->io.=.$io
a25c0 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 3b 0a 7d 0a 0a ;.$this->devMode.=.$devMode;.}..
a25e0 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
a2600 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 3b 0a 7d 0a 0a ().{.return.$this->composer;.}..
a2620 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 .....public.function.getIO().{.r
a2640 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 62 6c 69 63 20 eturn.$this->io;.}.......public.
a2660 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 72 6e 20 24 74 function.isDevMode().{.return.$t
a2680 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 0a 0a 0a 0a 0a his->devMode;.}.}.<?php.........
a26a0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 ...namespace.Composer\Script;..u
a26c0 73 65 20 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 65 45 76 65 se.Composer\Installer\PackageEve
a26e0 6e 74 20 61 73 20 42 61 73 65 50 61 63 6b 61 67 65 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c nt.as.BasePackageEvent;.......cl
a2700 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 ass.PackageEvent.extends.BasePac
a2720 6b 61 67 65 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e kageEvent.{.}.<?php............n
a2740 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a amespace.Composer\Script;.......
a2760 0a 63 6c 61 73 73 20 53 63 72 69 70 74 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e .class.ScriptEvents.{........con
a2780 73 74 20 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 72 65 2d 69 6e 73 74 61 6c st.PRE_INSTALL_CMD.=.'pre-instal
a27a0 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 49 4e 53 54 41 l-cmd';.........const.POST_INSTA
a27c0 4c 4c 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a LL_CMD.=.'post-install-cmd';....
a27e0 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 72 65 .....const.PRE_UPDATE_CMD.=.'pre
a2800 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 -update-cmd';.........const.POST
a2820 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b _UPDATE_CMD.=.'post-update-cmd';
a2840 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 20 3d 20 .........const.PRE_STATUS_CMD.=.
a2860 27 70 72 65 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 'pre-status-cmd';.........const.
a2880 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 73 74 61 74 75 73 2d 63 POST_STATUS_CMD.=.'post-status-c
a28a0 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 41 55 54 4f 4c 4f 41 44 5f md';.........const.PRE_AUTOLOAD_
a28c0 44 55 4d 50 20 3d 20 27 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a 0a 0a 0a DUMP.=.'pre-autoload-dump';.....
a28e0 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 27 ....const.POST_AUTOLOAD_DUMP.=.'
a2900 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e post-autoload-dump';.........con
a2920 73 74 20 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 st.POST_ROOT_PACKAGE_INSTALL.=.'
a2940 70 6f 73 74 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a post-root-package-install';.....
a2960 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f 43 .....const.POST_CREATE_PROJECT_C
a2980 4d 44 20 3d 20 27 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 27 3b 0a MD.=.'post-create-project-cmd';.
a29a0 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 41 52 43 48 49 56 45 5f 43 4d 44 20 3d 20 ........const.PRE_ARCHIVE_CMD.=.
a29c0 27 70 72 65 2d 61 72 63 68 69 76 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 'pre-archive-cmd';.........const
a29e0 20 50 4f 53 54 5f 41 52 43 48 49 56 45 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 61 72 63 68 69 76 .POST_ARCHIVE_CMD.=.'post-archiv
a2a00 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 e-cmd';............const.PRE_PAC
a2a20 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 KAGE_INSTALL.=.'pre-package-inst
a2a40 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 50 41 43 4b 41 47 all';..........const.POST_PACKAG
a2a60 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c E_INSTALL.=.'post-package-instal
a2a80 6c 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 l';..........const.PRE_PACKAGE_U
a2aa0 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a PDATE.=.'pre-package-update';...
a2ac0 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 .......const.POST_PACKAGE_UPDATE
a2ae0 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a .=.'post-package-update';.......
a2b00 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 3d ...const.PRE_PACKAGE_UNINSTALL.=
a2b20 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a .'pre-package-uninstall';.......
a2b40 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 ...const.POST_PACKAGE_UNINSTALL.
a2b60 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 3c 3f =.'post-package-uninstall';.}.<?
a2b80 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
a2ba0 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 67 3b 0a 75 73 r\Util;..use.Composer\Config;.us
a2bc0 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
a2be0 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 20 24 69 6f 3b lass.AuthHelper.{.protected.$io;
a2c00 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 20 66 75 6e 63 .protected.$config;..public.func
a2c20 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f tion.__construct(IOInterface.$io
a2c40 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 ,.Config.$config).{.$this->io.=.
a2c60 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a $io;.$this->config.=.$config;.}.
a2c80 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 24 6f 72 69 67 .public.function.storeAuth($orig
a2ca0 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 20 3d 20 66 61 inUrl,.$storeAuth).{.$store.=.fa
a2cc0 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 3e 63 6f 6e 66 lse;.$configSource.=.$this->conf
a2ce0 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 69 66 20 28 24 ig->getAuthConfigSource();.if.($
a2d00 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 65 20 3d 20 24 storeAuth.===.true).{.$store.=.$
a2d20 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 6f 72 65 41 75 configSource;.}.elseif.($storeAu
a2d40 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 3d 20 24 74 68 th.===.'prompt').{.$answer.=.$th
a2d60 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 20 79 6f 75 20 is->io->askAndValidate(.'Do.you.
a2d80 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 6f 72 20 27 2e want.to.store.credentials.for.'.
a2da0 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 75 72 63 65 2d $originUrl.'.in.'.$configSource-
a2dc0 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 74 69 6f 6e 20 >getName().'.?.[Yn].',.function.
a2de0 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 77 65 72 28 73 ($value).{.$input.=.strtolower(s
a2e00 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 0a 69 66 20 28 ubstr(trim($value),.0,.1));.if.(
a2e20 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 27 6e 27 29 29 in_array($input,.array('y','n'))
a2e40 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 6e 65 77 20 5c ).{.return.$input;.}.throw.new.\
a2e60 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 73 77 65 72 20 RuntimeException('Please.answer.
a2e80 28 79 29 65 73 20 6f 72 20 28 6e 29 6f 27 29 3b 0a 7d 2c 0a 6e 75 6c 6c 2c 0a 27 79 27 0a 29 3b (y)es.or.(n)o');.},.null,.'y'.);
a2ea0 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 73 74 6f 72 65 20 ..if.($answer.===.'y').{.$store.
a2ec0 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 73 74 6f 72 65 29 =.$configSource;.}.}.if.($store)
a2ee0 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 67 28 0a 27 68 74 .{.$store->addConfigSetting(.'ht
a2f00 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 69 73 2d 3e 69 6f tp-basic.'.$originUrl,.$this->io
a2f20 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 6e 55 72 6c 29 0a ->getAuthentication($originUrl).
a2f40 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 70 );.}.}.}.<?php............namesp
a2f60 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 6c 61 73 73 20 43 ace.Composer\Util;.......class.C
a2f80 6f 6d 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 omposerMirror.{.public.static.fu
a2fa0 6e 63 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 nction.processUrl($mirrorUrl,.$p
a2fc0 61 63 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 ackageName,.$version,.$reference
a2fe0 2c 20 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 ,.$type).{.if.($reference).{.$re
a3000 66 65 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 ference.=.preg_match('{^([a-f0-9
a3020 5d 2a 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 ]*|%reference%)$}',.$reference).
a3040 3f 20 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 ?.$reference.:.md5($reference);.
a3060 7d 0a 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 }.$version.=.strpos($version,.'/
a3080 27 29 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 ').===.false.?.$version.:.md5($v
a30a0 65 72 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 ersion);..return.str_replace(.ar
a30c0 72 61 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 ray('%package%',.'%version%',.'%
a30e0 72 65 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 reference%',.'%type%'),.array($p
a3100 61 63 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 ackageName,.$version,.$reference
a3120 2c 20 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 ,.$type),.$mirrorUrl.);.}..publi
a3140 63 20 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 c.static.function.processGitUrl(
a3160 24 6d 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 $mirrorUrl,.$packageName,.$url,.
a3180 24 74 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 $type).{.if.(preg_match('#^(?:(?
a31a0 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 :https?|git)://github\.com/|git@
a31c0 67 69 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 github\.com:)([^/]+)/(.+?)(?:\.g
a31e0 69 74 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 it)?$#',.$url,.$match)).{.$url.=
a3200 20 27 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 .'gh-'.$match[1].'/'.$match[2];.
a3220 7d 20 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 }.elseif.(preg_match('#^https://
a3240 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 3f 29 28 3f 3a 5c bitbucket\.org/([^/]+)/(.+?)(?:\
a3260 2e 67 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 .git)?/?$#',.$url,.$match)).{.$u
a3280 72 6c 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 rl.=.'bb-'.$match[1].'/'.$match[
a32a0 32 5d 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 2];.}.else.{.$url.=.preg_replace
a32c0 28 27 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 ('{[^a-z0-9_.-]}i',.'-',.trim($u
a32e0 72 6c 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 rl,.'/'));.}..return.str_replace
a3300 28 0a 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 (.array('%package%',.'%normalize
a3320 64 55 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 dUrl%',.'%type%'),.array($packag
a3340 65 4e 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 eName,.$url,.$type),.$mirrorUrl.
a3360 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f );.}..public.static.function.pro
a3380 63 65 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 cessHgUrl($mirrorUrl,.$packageNa
a33a0 6d 65 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 me,.$url,.$type).{.return.self::
a33c0 70 72 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 processGitUrl($mirrorUrl,.$packa
a33e0 67 65 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 geName,.$url,.$type);.}.}.<?php.
a3400 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ...........namespace.Composer\Ut
a3420 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 64 65 72 il;..use.Composer\Package\Loader
a3440 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 61 \ArrayLoader;.use.Composer\Packa
a3460 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b ge\Loader\ValidatingArrayLoader;
a3480 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 49 6e 76 .use.Composer\Package\Loader\Inv
a34a0 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 70 6f 73 alidPackageException;.use.Compos
a34c0 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 6f 6e 3b er\Json\JsonValidationException;
a34e0 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
a3500 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
a3520 6d 70 6f 73 65 72 5c 53 70 64 78 5c 53 70 64 78 4c 69 63 65 6e 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a mposer\Spdx\SpdxLicenses;.......
a3540 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 61 74 65 .class.ConfigValidator.{.private
a3560 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 74 72 75 .$io;..public.function.__constru
a3580 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 69 6f 20 ct(IOInterface.$io).{.$this->io.
a35a0 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 74 69 6f =.$io;.}..........public.functio
a35c0 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 72 56 61 n.validate($file,.$arrayLoaderVa
a35e0 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 61 79 4c lidationFlags.=.ValidatingArrayL
a3600 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 20 61 72 oader::CHECK_ALL).{.$errors.=.ar
a3620 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 28 29 3b ray();.$publishErrors.=.array();
a3640 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 56 61 6c .$warnings.=.array();....$laxVal
a3660 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 20 4a 73 id.=.false;.try.{.$json.=.new.Js
a3680 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 79 73 74 onFile($file,.new.RemoteFilesyst
a36a0 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 6a 73 6f em($this->io));.$manifest.=.$jso
a36c0 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 68 65 6d n->read();..$json->validateSchem
a36e0 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 56 61 6c a(JsonFile::LAX_SCHEMA);.$laxVal
a3700 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 65 6d 61 id.=.true;.$json->validateSchema
a3720 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 63 65 70 ();.}.catch.(JsonValidationExcep
a3740 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 72 6f 72 tion.$e).{.foreach.($e->getError
a3760 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 6c 69 64 s().as.$message).{.if.($laxValid
a3780 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 67 65 3b ).{.$publishErrors[].=.$message;
a37a0 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 65 3b 0a .}.else.{.$errors[].=.$message;.
a37c0 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 0a 24 65 }.}.}.catch.(\Exception.$e).{.$e
a37e0 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 72 65 74 rrors[].=.$e->getMessage();..ret
a3800 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 72 6f 72 urn.array($errors,.$publishError
a3820 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 79 28 24 s,.$warnings);.}....if.(!empty($
a3840 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 28 69 73 manifest['license'])).{...if.(is
a3860 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 20 7b 0a _array($manifest['license'])).{.
a3880 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 20 61 73 foreach.($manifest['license'].as
a38a0 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 70 72 69 .$key.=>.$license).{.if.('propri
a38c0 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 24 6d 61 etary'.===.$license).{.unset($ma
a38e0 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 0a 7d 0a nifest['license'][$key]);.}.}.}.
a3900 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 4c 69 63 .$licenseValidator.=.new.SpdxLic
a3920 65 6e 73 65 73 28 29 3b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 74 61 72 79 27 20 21 3d 3d 20 24 enses();.if.('proprietary'.!==.$
a3940 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 61 72 72 61 79 28 29 20 21 manifest['license'].&&.array().!
a3960 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 21 24 6c 69 63 ==.$manifest['license'].&&.!$lic
a3980 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 6d 61 6e 69 66 65 73 enseValidator->validate($manifes
a39a0 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 t['license'])).{.$warnings[].=.s
a39c0 70 72 69 6e 74 66 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 20 69 73 20 6e 6f 74 20 61 20 76 61 6c printf(.'License.%s.is.not.a.val
a39e0 69 64 20 53 50 44 58 20 6c 69 63 65 6e 73 65 20 69 64 65 6e 74 69 66 69 65 72 2c 20 73 65 65 20 id.SPDX.license.identifier,.see.
a3a00 68 74 74 70 3a 2f 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 20 69 66 http://www.spdx.org/licenses/.if
a3a20 20 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 2e 27 0a 2e 22 5c 6e 49 .you.use.an.open.license.'.."\nI
a3a40 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 73 20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 2c f.the.software.is.closed-source,
a3a60 20 79 6f 75 20 6d 61 79 20 75 73 65 20 5c 22 70 72 6f 70 72 69 65 74 61 72 79 5c 22 20 61 73 20 .you.may.use.\"proprietary\".as.
a3a80 6c 69 63 65 6e 73 65 2e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 6d 61 6e 69 66 65 73 74 license.",.json_encode($manifest
a3aa0 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 61 72 6e ['license']).);.}.}.else.{.$warn
a3ac0 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 65 20 73 70 65 63 69 66 69 65 64 2c 20 ings[].=.'No.license.specified,.
a3ae0 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 64 6f 20 73 6f 2e 20 46 6f 72 20 it.is.recommended.to.do.so..For.
a3b00 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 20 73 6f 66 74 77 61 72 65 20 79 6f 75 20 6d 61 79 20 75 closed-source.software.you.may.u
a3b20 73 65 20 22 70 72 6f 70 72 69 65 74 61 72 79 22 20 61 73 20 6c 69 63 65 6e 73 65 2e 27 3b 0a 7d se."proprietary".as.license.';.}
a3b40 0a 0a 69 66 20 28 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 ..if.(isset($manifest['version']
a3b60 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 54 68 65 20 76 65 72 73 69 6f 6e 20 )).{.$warnings[].=.'The.version.
a3b80 66 69 65 6c 64 20 69 73 20 70 72 65 73 65 6e 74 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e field.is.present,.it.is.recommen
a3ba0 64 65 64 20 74 6f 20 6c 65 61 76 65 20 69 74 20 6f 75 74 20 69 66 20 74 68 65 20 70 61 63 6b 61 ded.to.leave.it.out.if.the.packa
a3bc0 67 65 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 6f 6e 20 50 61 63 6b 61 67 69 73 74 2e 27 3b 0a ge.is.published.on.Packagist.';.
a3be0 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 }..if.(!empty($manifest['name'])
a3c00 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d 5a 5d 7d 27 2c 20 24 6d 61 6e 69 66 .&&.preg_match('{[A-Z]}',.$manif
a3c20 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 70 est['name'])).{.$suggestName.=.p
a3c40 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 5d 29 7c reg_replace('{(?:([a-z])([A-Z])|
a3c60 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 5c 33 2d ([A-Z])([A-Z][a-z]))}',.'\\1\\3-
a3c80 5c 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 73 75 \\2\\4',.$manifest['name']);.$su
a3ca0 67 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 75 67 67 65 73 74 4e ggestName.=.strtolower($suggestN
a3cc0 61 6d 65 29 3b 0a 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 73 70 72 69 6e 74 ame);..$publishErrors[].=.sprint
a3ce0 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 74 63 68 20 74 68 65 f(.'Name."%s".does.not.match.the
a3d00 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 72 2d 63 61 73 65 64 .best.practice.(e.g..lower-cased
a3d20 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 20 75 73 69 6e 67 20 /with-dashes)..We.suggest.using.
a3d40 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 20 77 69 6c 6c 20 6e "%s".instead..As.such.you.will.n
a3d60 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 6f 20 50 61 63 6b 61 ot.be.able.to.submit.it.to.Packa
a3d80 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 2c 0a 24 73 75 67 67 gist.',.$manifest['name'],.$sugg
a3da0 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 24 6d 61 6e 69 66 65 estName.);.}..if.(!empty($manife
a3dc0 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 27 74 79 70 65 27 5d st['type']).&&.$manifest['type']
a3de0 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 20 7b 0a 24 77 61 72 .==.'composer-installer').{.$war
a3e00 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 70 65 20 27 63 6f 6d nings[].=."The.package.type.'com
a3e20 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 63 61 74 65 64 2e 20 poser-installer'.is.deprecated..
a3e40 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 73 74 6f 6d 20 69 6e Please.distribute.your.custom.in
a3e60 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 6e 6f 77 20 6f 6e 2e stallers.as.plugins.from.now.on.
a3e80 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 72 67 2f 64 6f 63 2f .See.http://getcomposer.org/doc/
a3ea0 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 6c 75 67 69 6e 20 64 articles/plugins.md.for.plugin.d
a3ec0 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 69 73 73 65 74 28 24 ocumentation.";.}....if.(isset($
a3ee0 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 73 73 65 74 28 24 6d manifest['require']).&&.isset($m
a3f00 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 7b 0a 24 72 65 71 75 anifest['require-dev'])).{.$requ
a3f20 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 72 73 65 63 74 5f 6b ireOverrides.=.array_intersect_k
a3f40 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 24 6d 61 6e 69 66 65 ey($manifest['require'],.$manife
a3f60 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 21 65 6d 70 74 79 28 st['require-dev']);..if.(!empty(
a3f80 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 75 72 61 6c 20 3d 20 $requireOverrides)).{.$plural.=.
a3fa0 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 20 3e 20 31 29 20 3f (count($requireOverrides).>.1).?
a3fc0 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 5d 20 3d 20 69 6d 70 .'are'.:.'is';.$warnings[].=.imp
a3fe0 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 71 75 69 72 65 4f 76 lode(',.',.array_keys($requireOv
a4000 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 71 75 69 72 65 64 20 errides))..".{$plural}.required.
a4020 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 72 65 2d 64 65 76 2c both.in.require.and.require-dev,
a4040 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 74 65 64 20 62 65 68 .this.can.lead.to.unexpected.beh
a4060 61 76 69 6f 72 22 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 69 72 65 20 3d 20 69 73 73 65 74 28 avior";.}.}....$require.=.isset(
a4080 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 20 24 6d 61 6e 69 66 65 73 $manifest['require']).?.$manifes
a40a0 74 5b 27 72 65 71 75 69 72 65 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 t['require'].:.array();.$require
a40c0 44 65 76 20 3d 20 69 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 Dev.=.isset($manifest['require-d
a40e0 65 76 27 5d 29 20 3f 20 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d ev']).?.$manifest['require-dev']
a4100 20 3a 20 61 72 72 61 79 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 .:.array();.$packages.=.array_me
a4120 72 67 65 28 24 72 65 71 75 69 72 65 2c 20 24 72 65 71 75 69 72 65 44 65 76 29 3b 0a 66 6f 72 65 rge($require,.$requireDev);.fore
a4140 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 20 3d 3e 20 24 76 ach.($packages.as.$package.=>.$v
a4160 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 23 2f 27 2c 20 ersion).{.if.(preg_match('/#/',.
a4180 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 31 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d $version).===.1).{.$warnings[].=
a41a0 20 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 22 25 73 22 20 69 73 20 70 .sprintf(.'The.package."%s".is.p
a41c0 6f 69 6e 74 69 6e 67 20 74 6f 20 61 20 63 6f 6d 6d 69 74 2d 72 65 66 2c 20 74 68 69 73 20 69 73 ointing.to.a.commit-ref,.this.is
a41e0 20 62 61 64 20 70 72 61 63 74 69 63 65 20 61 6e 64 20 63 61 6e 20 63 61 75 73 65 20 75 6e 66 6f .bad.practice.and.can.cause.unfo
a4200 72 65 73 65 65 6e 20 69 73 73 75 65 73 2e 27 2c 0a 24 70 61 63 6b 61 67 65 0a 29 3b 0a 7d 0a 7d reseen.issues.',.$package.);.}.}
a4220 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 61 75 74 6f 6c 6f 61 ....if.(isset($manifest['autoloa
a4240 64 27 5d 5b 27 70 73 72 2d 30 27 5d 5b 27 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d d']['psr-0'][''])).{.$warnings[]
a4260 20 3d 20 22 44 65 66 69 6e 69 6e 67 20 61 75 74 6f 6c 6f 61 64 2e 70 73 72 2d 30 20 77 69 74 68 .=."Defining.autoload.psr-0.with
a4280 20 61 6e 20 65 6d 70 74 79 20 6e 61 6d 65 73 70 61 63 65 20 70 72 65 66 69 78 20 69 73 20 61 20 .an.empty.namespace.prefix.is.a.
a42a0 62 61 64 20 69 64 65 61 20 66 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 22 3b 0a 7d 0a 69 66 20 bad.idea.for.performance";.}.if.
a42c0 28 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 27 70 73 (isset($manifest['autoload']['ps
a42e0 72 2d 34 27 5d 5b 27 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 22 44 65 66 r-4'][''])).{.$warnings[].=."Def
a4300 69 6e 69 6e 67 20 61 75 74 6f 6c 6f 61 64 2e 70 73 72 2d 34 20 77 69 74 68 20 61 6e 20 65 6d 70 ining.autoload.psr-4.with.an.emp
a4320 74 79 20 6e 61 6d 65 73 70 61 63 65 20 70 72 65 66 69 78 20 69 73 20 61 20 62 61 64 20 69 64 65 ty.namespace.prefix.is.a.bad.ide
a4340 61 20 66 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 22 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f a.for.performance";.}..try.{.$lo
a4360 61 64 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 ader.=.new.ValidatingArrayLoader
a4380 28 6e 65 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 (new.ArrayLoader(),.true,.null,.
a43a0 24 61 72 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 $arrayLoaderValidationFlags);.if
a43c0 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 .(!isset($manifest['version'])).
a43e0 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 31 2e 30 2e 30 27 {.$manifest['version'].=.'1.0.0'
a4400 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d ;.}.if.(!isset($manifest['name']
a4420 29 29 20 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 64 75 6d 6d 79 2f )).{.$manifest['name'].=.'dummy/
a4440 64 75 6d 6d 79 27 3b 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 61 6e 69 66 65 73 dummy';.}.$loader->load($manifes
a4460 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 t);.}.catch.(InvalidPackageExcep
a4480 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 tion.$e).{.$errors.=.array_merge
a44a0 28 24 65 72 72 6f 72 73 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 24 ($errors,.$e->getErrors());.}..$
a44c0 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 77 61 72 6e 69 6e 67 73 warnings.=.array_merge($warnings
a44e0 2c 20 24 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 3b 0a 0a 72 65 74 75 ,.$loader->getWarnings());..retu
a4500 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 72 6f 72 73 rn.array($errors,.$publishErrors
a4520 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$warnings);.}.}.<?php.........
a4540 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 ...namespace.Composer\Util;..use
a4560 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;.......
a4580 63 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 class.ErrorHandler.{.private.sta
a45a0 74 69 63 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 tic.$io;.............public.stat
a45c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 28 24 6c 65 76 65 6c 2c 20 24 6d 65 73 73 ic.function.handle($level,.$mess
a45e0 61 67 65 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 0a 7b 0a 0a 20 69 66 20 28 21 65 72 72 6f age,.$file,.$line).{...if.(!erro
a4600 72 5f 72 65 70 6f 72 74 69 6e 67 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 r_reporting()).{.return;.}..if.(
a4620 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 29 29 20 7b 0a 24 6d 65 73 ini_get('xdebug.scream')).{.$mes
a4640 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 57 61 72 6e 69 6e 67 3a 20 59 6f 75 20 68 61 76 65 20 78 sage..=."\n\nWarning:.You.have.x
a4660 64 65 62 75 67 2e 73 63 72 65 61 6d 20 65 6e 61 62 6c 65 64 2c 20 74 68 65 20 77 61 72 6e 69 6e debug.scream.enabled,.the.warnin
a4680 67 20 61 62 6f 76 65 20 6d 61 79 20 62 65 22 2e 0a 22 5c 6e 61 20 6c 65 67 69 74 69 6d 61 74 65 g.above.may.be".."\na.legitimate
a46a0 6c 79 20 73 75 70 70 72 65 73 73 65 64 20 65 72 72 6f 72 20 74 68 61 74 20 79 6f 75 20 77 65 72 ly.suppressed.error.that.you.wer
a46c0 65 20 6e 6f 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 73 65 65 2e 22 3b 0a 7d 0a 0a 69 66 20 28 e.not.supposed.to.see.";.}..if.(
a46e0 24 6c 65 76 65 6c 20 21 3d 3d 20 45 5f 44 45 50 52 45 43 41 54 45 44 20 26 26 20 24 6c 65 76 65 $level.!==.E_DEPRECATED.&&.$leve
a4700 6c 20 21 3d 3d 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 20 7b 0a 74 68 72 6f 77 l.!==.E_USER_DEPRECATED).{.throw
a4720 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 30 .new.\ErrorException($message,.0
a4740 2c 20 24 6c 65 76 65 6c 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 69 66 20 28 ,.$level,.$file,.$line);.}..if.(
a4760 73 65 6c 66 3a 3a 24 69 6f 29 20 7b 0a 73 65 6c 66 3a 3a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 self::$io).{.self::$io->writeErr
a4780 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 44 65 70 72 65 63 61 74 69 6f 6e 20 4e 6f 74 69 63 65 3a or('<warning>Deprecation.Notice:
a47a0 20 27 2e 24 6d 65 73 73 61 67 65 2e 27 20 69 6e 20 27 2e 24 66 69 6c 65 2e 27 3a 27 2e 24 6c 69 .'.$message.'.in.'.$file.':'.$li
a47c0 6e 65 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 69 66 20 28 73 65 6c 66 3a 3a 24 69 6f 2d ne.'</warning>');.if.(self::$io-
a47e0 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 69 6f 2d 3e 77 72 69 74 65 >isVerbose()).{.self::$io->write
a4800 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 74 61 63 6b 20 74 72 61 63 65 3a 3c 2f 77 61 Error('<warning>Stack.trace:</wa
a4820 72 6e 69 6e 67 3e 27 29 3b 0a 73 65 6c 66 3a 3a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 rning>');.self::$io->writeError(
a4840 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 array_filter(array_map(function.
a4860 28 24 61 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 61 5b 27 6c 69 6e 65 27 5d 2c 20 24 61 5b ($a).{.if.(isset($a['line'],.$a[
a4880 27 66 69 6c 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e 69 6e 67 3e 20 27 2e 'file'])).{.return.'<warning>.'.
a48a0 24 61 5b 27 66 69 6c 65 27 5d 2e 27 3a 27 2e 24 61 5b 27 6c 69 6e 65 27 5d 2e 27 3c 2f 77 61 72 $a['file'].':'.$a['line'].'</war
a48c0 6e 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 2c 20 61 72 72 61 79 ning>';.}..return.null;.},.array
a48e0 5f 73 6c 69 63 65 28 64 65 62 75 67 5f 62 61 63 6b 74 72 61 63 65 28 29 2c 20 32 29 29 29 29 3b _slice(debug_backtrace(),.2))));
a4900 0a 7d 0a 7d 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 .}.}.}.......public.static.funct
a4920 69 6f 6e 20 72 65 67 69 73 74 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e ion.register(IOInterface.$io.=.n
a4940 75 6c 6c 29 0a 7b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 61 72 72 61 79 28 5f ull).{.set_error_handler(array(_
a4960 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 61 6e 64 6c 65 27 29 29 3b 0a 73 65 6c 66 3a 3a 24 69 6f 20 _CLASS__,.'handle'));.self::$io.
a4980 3d 20 24 69 6f 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 =.$io;.}.}.<?php............name
a49a0 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 52 65 63 75 72 73 space.Composer\Util;..use.Recurs
a49c0 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 52 65 63 75 72 73 iveDirectoryIterator;.use.Recurs
a49e0 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 iveIteratorIterator;.use.Symfony
a4a00 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 \Component\Finder\Finder;......c
a4a20 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 lass.Filesystem.{.private.$proce
a4a40 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 ssExecutor;..public.function.__c
a4a60 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 65 78 65 63 75 74 onstruct(ProcessExecutor.$execut
a4a80 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 or.=.null).{.$this->processExecu
a4aa0 74 6f 72 20 3d 20 24 65 78 65 63 75 74 6f 72 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 tor.=.$executor.?:.new.ProcessEx
a4ac0 65 63 75 74 6f 72 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d ecutor();.}..public.function.rem
a4ae0 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 6c 65 29 29 20 ove($file).{.if.(is_dir($file)).
a4b00 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 {.return.$this->removeDirectory(
a4b20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 $file);.}..if.(file_exists($file
a4b40 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 29 )).{.return.$this->unlink($file)
a4b60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ;.}..return.false;.}........publ
a4b80 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 72 45 6d 70 74 79 28 24 64 69 72 29 0a 7b 0a 24 ic.function.isDirEmpty($dir).{.$
a4ba0 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 69 67 6e 6f finder.=.Finder::create().->igno
a4bc0 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 73 28 66 61 reVCS(false).->ignoreDotFiles(fa
a4be0 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 0a 72 65 74 lse).->depth(0).->in($dir);..ret
a4c00 75 72 6e 20 63 6f 75 6e 74 28 24 66 69 6e 64 65 72 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 75 62 urn.count($finder).===.0;.}..pub
a4c20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6d 70 74 79 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 lic.function.emptyDirectory($dir
a4c40 2c 20 24 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 20 3d 20 74 72 75 65 29 ,.$ensureDirectoryExists.=.true)
a4c60 0a 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 29 20 26 26 20 69 73 5f 6c .{.if.(file_exists($dir).&&.is_l
a4c80 69 6e 6b 28 24 64 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 64 69 72 29 ink($dir)).{.$this->unlink($dir)
a4ca0 3b 0a 7d 0a 0a 69 66 20 28 24 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 29 ;.}..if.($ensureDirectoryExists)
a4cc0 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 .{.$this->ensureDirectoryExists(
a4ce0 24 64 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 24 66 $dir);.}..if.(is_dir($dir)).{.$f
a4d00 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 69 67 6e 6f 72 inder.=.Finder::create().->ignor
a4d20 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 73 28 66 61 6c eVCS(false).->ignoreDotFiles(fal
a4d40 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 0a 66 6f 72 65 se).->depth(0).->in($dir);..fore
a4d60 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e ach.($finder.as.$path).{.$this->
a4d80 72 65 6d 6f 76 65 28 28 73 74 72 69 6e 67 29 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a remove((string).$path);.}.}.}...
a4da0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 .........public.function.removeD
a4dc0 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 24 74 68 69 73 irectory($directory).{.if.($this
a4de0 2d 3e 69 73 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 ->isSymlinkedDirectory($director
a4e00 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 53 79 6d 6c 69 6e y)).{.return.$this->unlinkSymlin
a4e20 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 kedDirectory($directory);.}..if.
a4e40 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 20 7c 7c 20 21 69 73 (!file_exists($directory).||.!is
a4e60 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b _dir($directory)).{.return.true;
a4e80 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5b 61 2d 7a 5d 3a 29 .}..if.(preg_match('{^(?:[a-z]:)
a4ea0 3f 5b 2f 5c 5c 5c 5c 5d 2b 24 7d 69 27 2c 20 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 74 68 ?[/\\\\]+$}i',.$directory)).{.th
a4ec0 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
a4ee0 69 6e 67 20 61 6e 20 61 74 74 65 6d 70 74 65 64 20 64 65 6c 65 74 69 6f 6e 20 6f 66 20 27 2e 24 ing.an.attempted.deletion.of.'.$
a4f00 64 69 72 65 63 74 6f 72 79 2e 27 2c 20 74 68 69 73 20 77 61 73 20 70 72 6f 62 61 62 6c 79 20 6e directory.',.this.was.probably.n
a4f20 6f 74 20 69 6e 74 65 6e 64 65 64 2c 20 69 66 20 69 74 20 69 73 20 61 20 72 65 61 6c 20 75 73 65 ot.intended,.if.it.is.a.real.use
a4f40 20 63 61 73 65 20 70 6c 65 61 73 65 20 72 65 70 6f 72 74 20 69 74 2e 27 29 3b 0a 7d 0a 0a 69 66 .case.please.report.it.');.}..if
a4f60 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 .(!function_exists('proc_open'))
a4f80 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 .{.return.$this->removeDirectory
a4fa0 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 Php($directory);.}..if.(defined(
a4fc0 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 'PHP_WINDOWS_VERSION_BUILD')).{.
a4fe0 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 64 69 72 20 2f 53 20 2f 51 20 25 73 27 2c $cmd.=.sprintf('rmdir./S./Q.%s',
a5000 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 72 65 61 6c 70 61 74 .ProcessExecutor::escape(realpat
a5020 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6d 64 20 3d h($directory)));.}.else.{.$cmd.=
a5040 20 73 70 72 69 6e 74 66 28 27 72 6d 20 2d 72 66 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 .sprintf('rm.-rf.%s',.ProcessExe
a5060 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 64 69 72 65 63 74 6f 72 79 29 29 3b 0a 7d 0a 0a 24 cutor::escape($directory));.}..$
a5080 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 2d 3e 65 78 result.=.$this->getProcess()->ex
a50a0 65 63 75 74 65 28 24 63 6d 64 2c 20 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 30 3b 0a 0a 0a 20 63 ecute($cmd,.$output).===.0;....c
a50c0 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 20 28 24 72 65 73 75 6c 74 20 26 26 learstatcache();..if.($result.&&
a50e0 20 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 .!file_exists($directory)).{.ret
a5100 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 urn.true;.}..return.$this->remov
a5120 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 0a 0a eDirectoryPhp($directory);.}....
a5140 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 69 ........public.function.removeDi
a5160 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 69 74 20 3d 20 6e rectoryPhp($directory).{.$it.=.n
a5180 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 64 ew.RecursiveDirectoryIterator($d
a51a0 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 irectory,.RecursiveDirectoryIter
a51c0 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 ator::SKIP_DOTS);.$ri.=.new.Recu
a51e0 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 rsiveIteratorIterator($it,.Recur
a5200 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 43 48 49 4c 44 5f 46 49 52 53 siveIteratorIterator::CHILD_FIRS
a5220 54 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 T);..foreach.($ri.as.$file).{.if
a5240 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6d 64 69 72 .($file->isDir()).{.$this->rmdir
a5260 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b ($file->getPathname());.}.else.{
a5280 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d .$this->unlink($file->getPathnam
a52a0 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6d 64 69 72 28 24 e());.}.}..return.$this->rmdir($
a52c0 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 directory);.}..public.function.e
a52e0 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 nsureDirectoryExists($directory)
a5300 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 69 66 .{.if.(!is_dir($directory)).{.if
a5320 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 74 68 72 .(file_exists($directory)).{.thr
a5340 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 63 ow.new.\RuntimeException(.$direc
a5360 74 6f 72 79 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 tory.'.exists.and.is.not.a.direc
a5380 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 65 63 74 6f tory.'.);.}.if.(!@mkdir($directo
a53a0 72 79 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ry,.0777,.true)).{.throw.new.\Ru
a53c0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 2e 27 20 64 6f 65 ntimeException(.$directory.'.doe
a53e0 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 s.not.exist.and.could.not.be.cre
a5400 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ated.'.);.}.}.}.........public.f
a5420 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 40 24 74 unction.unlink($path).{.if.(!@$t
a5440 68 69 73 2d 3e 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 28 24 70 61 74 68 29 his->unlinkImplementation($path)
a5460 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f ).{...if.(!defined('PHP_WINDOWS_
a5480 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 28 75 73 6c 65 65 70 28 33 35 30 30 30 VERSION_BUILD').||.(usleep(35000
a54a0 30 29 20 26 26 20 21 40 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 6e 74 61 74 0).&&.!@$this->unlinkImplementat
a54c0 69 6f 6e 28 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 ion($path))).{.$error.=.error_ge
a54e0 74 5f 6c 61 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 t_last();.$message.=.'Could.not.
a5500 64 65 6c 65 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 delete.'.$path.':.'...@$error['m
a5520 65 73 73 61 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 essage'];.if.(defined('PHP_WINDO
a5540 57 53 5f 56 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 WS_VERSION_BUILD')).{.$message..
a5560 3d 20 22 5c 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 =."\nThis.can.be.due.to.an.antiv
a5580 69 72 75 73 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 irus.or.the.Windows.Search.Index
a55a0 65 72 20 6c 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 er.locking.the.file.while.they.a
a55c0 72 65 20 61 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 re.analyzed";.}..throw.new.\Runt
a55e0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 imeException($message);.}.}..ret
a5600 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 urn.true;.}.........public.funct
a5620 69 6f 6e 20 72 6d 64 69 72 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 40 72 6d 64 69 72 28 24 ion.rmdir($path).{.if.(!@rmdir($
a5640 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 50 48 50 5f 57 49 4e path)).{...if.(!defined('PHP_WIN
a5660 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 75 73 6c 65 65 70 28 DOWS_VERSION_BUILD').||.(usleep(
a5680 33 35 30 30 30 30 29 20 26 26 20 21 40 72 6d 64 69 72 28 24 70 61 74 68 29 29 29 20 7b 0a 24 65 350000).&&.!@rmdir($path))).{.$e
a56a0 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 24 6d 65 73 73 61 67 rror.=.error_get_last();.$messag
a56c0 65 20 3d 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 e.=.'Could.not.delete.'.$path.':
a56e0 20 27 20 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 .'...@$error['message'];.if.(def
a5700 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'
a5720 29 29 20 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 )).{.$message..=."\nThis.can.be.
a5740 64 75 65 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 due.to.an.antivirus.or.the.Windo
a5760 77 73 20 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 ws.Search.Indexer.locking.the.fi
a5780 6c 65 20 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 le.while.they.are.analyzed";.}..
a57a0 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 throw.new.\RuntimeException($mes
a57c0 73 61 67 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 sage);.}.}..return.true;.}......
a57e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 54 68 65 6e 52 65 6d .....public.function.copyThenRem
a5800 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 69 73 5f ove($source,.$target).{.if.(!is_
a5820 64 69 72 28 24 73 6f 75 72 63 65 29 29 20 7b 0a 63 6f 70 79 28 24 73 6f 75 72 63 65 2c 20 24 74 dir($source)).{.copy($source,.$t
a5840 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 73 6f 75 72 63 65 29 3b 0a arget);.$this->unlink($source);.
a5860 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 44 .return;.}..$it.=.new.RecursiveD
a5880 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 73 6f 75 72 63 65 2c 20 52 65 63 75 72 73 irectoryIterator($source,.Recurs
a58a0 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 iveDirectoryIterator::SKIP_DOTS)
a58c0 3b 0a 24 72 69 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 ;.$ri.=.new.RecursiveIteratorIte
a58e0 72 61 74 6f 72 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 rator($it,.RecursiveIteratorIter
a5900 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 ator::SELF_FIRST);.$this->ensure
a5920 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 29 3b 0a 0a 66 6f 72 65 61 DirectoryExists($target);..forea
a5940 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 61 72 67 65 74 50 61 74 68 20 ch.($ri.as.$file).{.$targetPath.
a5960 3d 20 24 74 61 72 67 65 74 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 =.$target...DIRECTORY_SEPARATOR.
a5980 2e 20 24 72 69 2d 3e 67 65 74 53 75 62 50 61 74 68 4e 61 6d 65 28 29 3b 0a 69 66 20 28 24 66 69 ..$ri->getSubPathName();.if.($fi
a59a0 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 le->isDir()).{.$this->ensureDire
a59c0 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 20 65 6c 73 65 ctoryExists($targetPath);.}.else
a59e0 20 7b 0a 63 6f 70 79 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c 20 24 74 .{.copy($file->getPathname(),.$t
a5a00 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 argetPath);.}.}..$this->removeDi
a5a20 72 65 63 74 6f 72 79 50 68 70 28 24 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 rectoryPhp($source);.}..public.f
a5a40 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 unction.rename($source,.$target)
a5a60 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 40 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c .{.if.(true.===.@rename($source,
a5a80 20 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e .$target)).{.return;.}..if.(!fun
a5aa0 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 ction_exists('proc_open')).{.ret
a5ac0 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 urn.$this->copyThenRemove($sourc
a5ae0 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 e,.$target);.}..if.(defined('PHP
a5b00 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 24 63 _WINDOWS_VERSION_BUILD')).{...$c
a5b20 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 78 63 6f 70 79 20 25 73 20 25 73 20 2f 45 ommand.=.sprintf('xcopy.%s.%s./E
a5b40 20 2f 49 20 2f 51 20 2f 59 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 ./I./Q./Y',.ProcessExecutor::esc
a5b60 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 75 74 6f 72 3a 3a 65 ape($source),.ProcessExecutor::e
a5b80 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 3d 20 24 74 68 69 73 scape($target));.$result.=.$this
a5ba0 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d ->processExecutor->execute($comm
a5bc0 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 and,.$output);....clearstatcache
a5be0 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d ();..if.(0.===.$result).{.$this-
a5c00 3e 72 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 65 >remove($source);..return;.}.}.e
a5c20 6c 73 65 20 7b 0a 0a 20 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 6d 76 lse.{.....$command.=.sprintf('mv
a5c40 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 63 61 70 65 .%s.%s',.ProcessExecutor::escape
a5c60 28 24 73 6f 75 72 63 65 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 ($source),.ProcessExecutor::esca
a5c80 70 65 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 pe($target));.$result.=.$this->p
a5ca0 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 rocessExecutor->execute($command
a5cc0 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b ,.$output);....clearstatcache();
a5ce0 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d ..if.(0.===.$result).{.return;.}
a5d00 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 .}..return.$this->copyThenRemove
a5d20 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ($source,.$target);.}...........
a5d40 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 68 public.function.findShortestPath
a5d60 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d 20 66 61 6c 73 ($from,.$to,.$directories.=.fals
a5d80 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 e).{.if.(!$this->isAbsolutePath(
a5da0 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 $from).||.!$this->isAbsolutePath
a5dc0 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d ($to)).{.throw.new.\InvalidArgum
a5de0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 73 29 entException(sprintf('$from.(%s)
a5e00 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 .and.$to.(%s).must.be.absolute.p
a5e20 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d aths.',.$from,.$to));.}..$from.=
a5e40 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 .lcfirst($this->normalizePath($f
a5e60 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d rom));.$to.=.lcfirst($this->norm
a5e80 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 63 74 6f 72 69 alizePath($to));..if.($directori
a5ea0 65 73 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 72 74 72 69 6d 28 24 66 72 6f 6d 2c 20 27 2f 27 29 20 es).{.$from.=.rtrim($from,.'/').
a5ec0 2e 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 27 3b 0a 7d 0a 0a 69 66 20 28 64 69 72 6e 61 6d 65 28 ..'/dummy_file';.}..if.(dirname(
a5ee0 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 20 7b 0a 72 65 74 75 72 $from).===.dirname($to)).{.retur
a5f00 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 74 6f 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e n.'./'.basename($to);.}..$common
a5f20 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2e Path.=.$to;.while.(strpos($from.
a5f40 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 2e 27 2f 27 29 20 21 3d 3d 20 30 20 26 26 20 27 '/',.$commonPath.'/').!==.0.&&.'
a5f60 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 /'.!==.$commonPath.&&.!preg_matc
a5f80 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 h('{^[a-z]:/?$}i',.$commonPath))
a5fa0 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 .{.$commonPath.=.strtr(dirname($
a5fc0 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 commonPath),.'\\',.'/');.}..if.(
a5fe0 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 0.!==.strpos($from,.$commonPath)
a6000 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 .||.'/'.===.$commonPath).{.retur
a6020 6e 20 24 74 6f 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 n.$to;.}..$commonPath.=.rtrim($c
a6040 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 24 73 6f 75 72 63 65 50 61 ommonPath,.'/')...'/';.$sourcePa
a6060 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 thDepth.=.substr_count(substr($f
a6080 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 3b rom,.strlen($commonPath)),.'/');
a60a0 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2e .$commonPathCode.=.str_repeat('.
a60c0 2e 2f 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 ./',.$sourcePathDepth);..return.
a60e0 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 ($commonPathCode...substr($to,.s
a6100 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 29 20 3f 3a 20 27 2e 2f 27 3b 0a 7d 0a trlen($commonPath))).?:.'./';.}.
a6120 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
a6140 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 ortestPathCode($from,.$to,.$dire
a6160 63 74 6f 72 69 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 ctories.=.false).{.if.(!$this->i
a6180 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e sAbsolutePath($from).||.!$this->
a61a0 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 isAbsolutePath($to)).{.throw.new
a61c0 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
a61e0 74 66 28 27 24 66 72 6f 6d 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 tf('$from.(%s).and.$to.(%s).must
a6200 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f .be.absolute.paths.',.$from,.$to
a6220 29 29 3b 0a 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 ));.}..$from.=.lcfirst($this->no
a6240 72 6d 61 6c 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 rmalizePath($from));.$to.=.lcfir
a6260 73 74 28 24 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 st($this->normalizePath($to));..
a6280 69 66 20 28 24 66 72 6f 6d 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 if.($from.===.$to).{.return.$dir
a62a0 65 63 74 6f 72 69 65 73 20 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f ectories.?.'__DIR__'.:.'__FILE__
a62c0 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 ';.}..$commonPath.=.$to;.while.(
a62e0 73 74 72 70 6f 73 28 24 66 72 6f 6d 2e 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 2e 27 2f strpos($from.'/',.$commonPath.'/
a6300 27 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 ').!==.0.&&.'/'.!==.$commonPath.
a6320 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 &&.!preg_match('{^[a-z]:/?$}i',.
a6340 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 $commonPath).&&.'.'.!==.$commonP
a6360 61 74 68 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 ath).{.$commonPath.=.strtr(dirna
a6380 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a me($commonPath),.'\\',.'/');.}..
a63a0 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 if.(0.!==.strpos($from,.$commonP
a63c0 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 ath).||.'/'.===.$commonPath.||.'
a63e0 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 .'.===.$commonPath).{.return.var
a6400 5f 65 78 70 6f 72 74 28 24 74 6f 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 _export($to,.true);.}..$commonPa
a6420 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 th.=.rtrim($commonPath,.'/')...'
a6440 2f 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d /';.if.(strpos($to,.$from.'/').=
a6460 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f ==.0).{.return.'__DIR__...'.var_
a6480 65 78 70 6f 72 74 28 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 export(substr($to,.strlen($from)
a64a0 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 ),.true);.}.$sourcePathDepth.=.s
a64c0 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e ubstr_count(substr($from,.strlen
a64e0 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 ($commonPath)),.'/').+.$director
a6500 69 65 73 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 ies;.$commonPathCode.=.str_repea
a6520 74 28 27 64 69 72 6e 61 6d 65 28 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e t('dirname(',.$sourcePathDepth).
a6540 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 '__DIR__'.str_repeat(')',.$sourc
a6560 65 50 61 74 68 44 65 70 74 68 29 3b 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 ePathDepth);.$relTarget.=.substr
a6580 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 ($to,.strlen($commonPath));..ret
a65a0 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 urn.$commonPathCode...(strlen($r
a65c0 65 6c 54 61 72 67 65 74 29 20 3f 20 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 elTarget).?.'.'...var_export('/'
a65e0 20 2e 20 24 72 65 6c 54 61 72 67 65 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a ...$relTarget,.true).:.'');.}...
a6600 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 .....public.function.isAbsoluteP
a6620 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 ath($path).{.return.substr($path
a6640 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c ,.0,.1).===.'/'.||.substr($path,
a6660 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .1,.1).===.':';.}..........publi
a6680 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 7a 65 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 66 69 c.function.size($path).{.if.(!fi
a66a0 6c 65 5f 65 78 69 73 74 73 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 le_exists($path)).{.throw.new.\R
a66c0 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 24 70 61 74 68 20 64 6f 65 73 20 6e 6f 74 20 untimeException("$path.does.not.
a66e0 65 78 69 73 74 2e 22 29 3b 0a 7d 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b exist.");.}.if.(is_dir($path)).{
a6700 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 70 61 .return.$this->directorySize($pa
a6720 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 69 6c 65 73 69 7a 65 28 24 70 61 74 68 29 3b 0a th);.}..return.filesize($path);.
a6740 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 6e 6f 72 6d 61 6c }.........public.function.normal
a6760 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 61 72 72 61 79 28 izePath($path).{.$parts.=.array(
a6780 29 3b 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 );.$path.=.strtr($path,.'\\',.'/
a67a0 27 29 3b 0a 24 70 72 65 66 69 78 20 3d 20 27 27 3b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 66 61 ');.$prefix.=.'';.$absolute.=.fa
a67c0 6c 73 65 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 30 2d 39 61 2d 7a lse;..if.(preg_match('{^([0-9a-z
a67e0 5d 2b 3a 28 3f 3a 2f 2f 28 3f 3a 5b 61 2d 7a 5d 3a 29 3f 29 3f 29 7d 69 27 2c 20 24 70 61 74 68 ]+:(?://(?:[a-z]:)?)?)}i',.$path
a6800 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 24 6d 61 74 63 68 5b 31 5d ,.$match)).{.$prefix.=.$match[1]
a6820 3b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 ;.$path.=.substr($path,.strlen($
a6840 70 72 65 66 69 78 29 29 3b 0a 7d 0a 0a 69 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 prefix));.}..if.(substr($path,.0
a6860 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 74 72 75 65 ,.1).===.'/').{.$absolute.=.true
a6880 3b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 29 3b 0a 7d 0a 0a 24 ;.$path.=.substr($path,.1);.}..$
a68a0 75 70 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 2f 27 up.=.false;.foreach.(explode('/'
a68c0 2c 20 24 70 61 74 68 29 20 61 73 20 24 63 68 75 6e 6b 29 20 7b 0a 69 66 20 28 27 2e 2e 27 20 3d ,.$path).as.$chunk).{.if.('..'.=
a68e0 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 28 24 61 62 73 6f 6c 75 74 65 20 7c 7c 20 24 75 70 29 29 ==.$chunk.&&.($absolute.||.$up))
a6900 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 24 75 70 20 3d 20 21 28 65 6d .{.array_pop($parts);.$up.=.!(em
a6920 70 74 79 28 24 70 61 72 74 73 29 20 7c 7c 20 27 2e 2e 27 20 3d 3d 3d 20 65 6e 64 28 24 70 61 72 pty($parts).||.'..'.===.end($par
a6940 74 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 20 26 ts));.}.elseif.('.'.!==.$chunk.&
a6960 26 20 27 27 20 21 3d 3d 20 24 63 68 75 6e 6b 29 20 7b 0a 24 70 61 72 74 73 5b 5d 20 3d 20 24 63 &.''.!==.$chunk).{.$parts[].=.$c
a6980 68 75 6e 6b 3b 0a 24 75 70 20 3d 20 27 2e 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 3b 0a 7d 0a 7d hunk;.$up.=.'..'.!==.$chunk;.}.}
a69a0 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 28 24 61 62 73 6f 6c 75 74 65 20 3f 20 27 2f ..return.$prefix.($absolute.?.'/
a69c0 27 20 3a 20 27 27 29 2e 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 72 74 73 29 3b 0a 7d 0a '.:.'').implode('/',.$parts);.}.
a69e0 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 69 73 .......public.static.function.is
a6a00 4c 6f 63 61 6c 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 LocalPath($path).{.return.(bool)
a6a20 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 66 69 6c 65 3a 2f 2f 7c 2f 7c 5b 61 2d 7a 5d 3a .preg_match('{^(file://|/|[a-z]:
a6a40 5b 5c 5c 5c 5c 2f 5d 7c 5c 2e 5c 2e 5b 5c 5c 5c 5c 2f 5d 7c 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b [\\\\/]|\.\.[\\\\/]|[a-z0-9_.-]+
a6a60 5b 5c 5c 5c 5c 2f 5d 29 7d 69 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 [\\\\/])}i',.$path);.}..public.s
a6a80 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 tatic.function.getPlatformPath($
a6aa0 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
a6ac0 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 _VERSION_BUILD')).{.$path.=.preg
a6ae0 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 3f 3a 66 69 6c 65 3a 2f 2f 2f 28 5b 61 2d 7a 5d 29 2f 29 _replace('{^(?:file:///([a-z])/)
a6b00 7d 69 27 2c 20 27 66 69 6c 65 3a 2f 2f 24 31 3a 2f 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 }i',.'file://$1:/',.$path);.}..r
a6b20 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 3a 2f 2f 7d 69 27 eturn.preg_replace('{^file://}i'
a6b40 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ,.'',.$path);.}..protected.funct
a6b60 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a ion.directorySize($directory).{.
a6b80 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 49 74 65 72 $it.=.new.RecursiveDirectoryIter
a6ba0 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 72 65 63 74 ator($directory,.RecursiveDirect
a6bc0 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 20 3d 20 6e oryIterator::SKIP_DOTS);.$ri.=.n
a6be0 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 28 24 69 74 ew.RecursiveIteratorIterator($it
a6c00 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 3a 43 48 49 ,.RecursiveIteratorIterator::CHI
a6c20 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 24 73 69 7a 65 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 LD_FIRST);..$size.=.0;.foreach.(
a6c40 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 46 69 6c $ri.as.$file).{.if.($file->isFil
a6c60 65 28 29 29 20 7b 0a 24 73 69 7a 65 20 2b 3d 20 24 66 69 6c 65 2d 3e 67 65 74 53 69 7a 65 28 29 e()).{.$size.+=.$file->getSize()
a6c80 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ;.}.}..return.$size;.}..protecte
a6ca0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e d.function.getProcess().{.return
a6cc0 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a .new.ProcessExecutor;.}.........
a6ce0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 ..private.function.unlinkImpleme
a6d00 6e 74 61 74 69 6f 6e 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 ntation($path).{.if.(defined('PH
a6d20 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 69 73 5f P_WINDOWS_VERSION_BUILD').&&.is_
a6d40 64 69 72 28 24 70 61 74 68 29 20 26 26 20 69 73 5f 6c 69 6e 6b 28 24 70 61 74 68 29 29 20 7b 0a dir($path).&&.is_link($path)).{.
a6d60 72 65 74 75 72 6e 20 72 6d 64 69 72 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 75 return.rmdir($path);.}..return.u
a6d80 6e 6c 69 6e 6b 28 24 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 nlink($path);.}.........public.f
a6da0 75 6e 63 74 69 6f 6e 20 72 65 6c 61 74 69 76 65 53 79 6d 6c 69 6e 6b 28 24 74 61 72 67 65 74 2c unction.relativeSymlink($target,
a6dc0 20 24 6c 69 6e 6b 29 0a 7b 0a 24 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 0a 24 72 65 6c .$link).{.$cwd.=.getcwd();..$rel
a6de0 61 74 69 76 65 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 ativePath.=.$this->findShortestP
a6e00 61 74 68 28 24 6c 69 6e 6b 2c 20 24 74 61 72 67 65 74 29 3b 0a 63 68 64 69 72 28 64 69 72 6e 61 ath($link,.$target);.chdir(dirna
a6e20 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 40 73 79 6d 6c 69 6e 6b 28 24 me($link));.$result.=.@symlink($
a6e40 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 6c 69 6e 6b 29 3b 0a 0a 63 68 64 69 72 28 24 63 77 relativePath,.$link);..chdir($cw
a6e60 64 29 3b 0a 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a d);..return.(bool).$result;.}...
a6e80 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 79 6d 6c 69 6e 6b 65 ......public.function.isSymlinke
a6ea0 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 21 69 73 dDirectory($directory).{.if.(!is
a6ec0 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 6c 73 65 _dir($directory)).{.return.false
a6ee0 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 76 65 53 ;.}..$resolved.=.$this->resolveS
a6f00 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
a6f20 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 65 64 29 ory);..return.is_link($resolved)
a6f40 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 6c 69 6e ;.}.......private.function.unlin
a6f60 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 79 29 0a kSymlinkedDirectory($directory).
a6f80 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 79 6d 6c {.$resolved.=.$this->resolveSyml
a6fa0 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 6f 72 79 inkedDirectorySymlink($directory
a6fc0 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 6f 6c 76 );..return.$this->unlink($resolv
a6fe0 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 6f 6e 20 ed);.}.........private.function.
a7000 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 69 6e 6b resolveSymlinkedDirectorySymlink
a7020 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 74 68 6e ($pathname).{.if.(!is_dir($pathn
a7040 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 24 72 65 ame)).{.return.$pathname;.}..$re
a7060 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 29 3b 0a solved.=.rtrim($pathname,.'/');.
a7080 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 74 75 72 .if.(!strlen($resolved)).{.retur
a70a0 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 76 65 64 n.$pathname;.}..return.$resolved
a70c0 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
a70e0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f .Composer\Util;..use.Composer\Co
a7100 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 63 nfig;.use.Composer\IO\IOInterfac
a7120 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f e;.....class.Git.{.protected.$io
a7140 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 20 24 ;.protected.$config;.protected.$
a7160 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a process;.protected.$filesystem;.
a7180 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
a71a0 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 50 72 nterface.$io,.Config.$config,.Pr
a71c0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 46 69 6c 65 73 79 73 74 ocessExecutor.$process,.Filesyst
a71e0 65 6d 20 24 66 73 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 em.$fs).{.$this->io.=.$io;.$this
a7200 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 ->config.=.$config;.$this->proce
a7220 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ss.=.$process;.$this->filesystem
a7240 20 3d 20 24 66 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 43 6f .=.$fs;.}..public.function.runCo
a7260 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 63 mmand($commandCallable,.$url,.$c
a7280 77 64 2c 20 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 wd,.$initialClone.=.false).{.if.
a72a0 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 6f 72 69 67 43 77 64 20 3d 20 24 63 77 ($initialClone).{.$origCwd.=.$cw
a72c0 64 3b 0a 24 63 77 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 d;.$cwd.=.null;.}..if.(preg_matc
a72e0 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 h('{^ssh://[^@]+@[^:]+:[^0-9]+}'
a7300 2c 20 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ,.$url)).{.throw.new.\InvalidArg
a7320 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 4c 20 27 umentException('The.source.URL.'
a7340 2e 24 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f .$url.'.is.invalid,.ssh.URLs.sho
a7360 75 6c 64 20 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 uld.have.a.port.number.after.":"
a7380 2e 27 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 .'."\n".'Use.ssh://git@example.c
a73a0 6f 6d 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 om:22/path.or.just.git@example.c
a73c0 6f 6d 3a 70 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 om:path.if.you.do.not.want.to.pr
a73e0 6f 76 69 64 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e ovide.a.password.or.custom.port.
a7400 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 0a 20 24 ');.}..if.(!$initialClone).{...$
a7420 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f this->process->execute('git.remo
a7440 74 65 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 77 64 29 3b 0a 69 66 20 28 70 72 65 67 te.-v',.$output,.$cwd);.if.(preg
a7460 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 63 6f 6d 70 6f 73 65 72 7c 6f 72 69 67 69 6e 29 5c 73 2b _match('{^(?:composer|origin)\s+
a7480 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 6d 27 2c 20 https?://(.+):(.+)@([^/]+)}im',.
a74a0 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 $output,.$match)).{.$this->io->s
a74c0 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 33 5d 2c 20 75 72 6c 64 etAuthentication($match[3],.urld
a74e0 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 ecode($match[1]),.urldecode($mat
a7500 63 68 5b 32 5d 29 29 3b 0a 7d 0a 7d 0a 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 ch[2]));.}.}..$protocols.=.$this
a7520 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 ->config->get('github-protocols'
a7540 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 20 7b 0a );.if.(!is_array($protocols)).{.
a7560 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 6e throw.new.\RuntimeException('Con
a7580 66 69 67 20 76 61 6c 75 65 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 20 6d 75 73 fig.value."github-protocols".mus
a75a0 74 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 67 6f 74 20 27 2e 67 65 74 74 79 70 65 28 24 70 72 t.be.an.array,.got.'.gettype($pr
a75c0 6f 74 6f 63 6f 6c 73 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 otocols));.}....if.(preg_match('
a75e0 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 27 2e 73 65 6c 66 3a 3a 67 65 74 47 69 {^(?:https?|git)://'.self::getGi
a7600 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 67 29 2e tHubDomainsRegex($this->config).
a7620 27 2f 28 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6d 65 73 73 '/(.*)}',.$url,.$match)).{.$mess
a7640 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 74 6f 63 ages.=.array();.foreach.($protoc
a7660 6f 6c 73 20 61 73 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 69 66 20 28 27 73 73 68 27 20 3d 3d ols.as.$protocol).{.if.('ssh'.==
a7680 3d 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 22 67 69 74 40 22 20 2e 20 24 =.$protocol).{.$url.=."git@"...$
a76a0 6d 61 74 63 68 5b 31 5d 20 2e 20 22 3a 22 20 2e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c match[1]...":"...$match[2];.}.el
a76c0 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 22 3a 2f 2f 22 20 2e 20 24 se.{.$url.=.$protocol.."://"...$
a76e0 6d 61 74 63 68 5b 31 5d 20 2e 20 22 2f 22 20 2e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 69 match[1]..."/"...$match[2];.}..i
a7700 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 f.(0.===.$this->process->execute
a7720 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 (call_user_func($commandCallable
a7740 2c 20 24 75 72 6c 29 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 ,.$url),.$ignoredOutput,.$cwd)).
a7760 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 2d 20 27 20 2e {.return;.}.$messages[].=.'-.'..
a7780 20 24 75 72 6c 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 23 .$url..."\n"...preg_replace('#^#
a77a0 6d 27 2c 20 27 20 20 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 m',.'..',.$this->process->getErr
a77c0 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 orOutput());.if.($initialClone).
a77e0 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 {.$this->filesystem->removeDirec
a7800 74 6f 72 79 28 24 6f 72 69 67 43 77 64 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 74 68 tory($origCwd);.}.}....$this->th
a7820 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 20 rowException('Failed.to.clone.'.
a7840 2e 20 73 65 6c 66 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 20 2e 27 20 76 69 61 ..self::sanitizeUrl($url)..'.via
a7860 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 29 2e 27 20 70 .'.implode(',.',.$protocols).'.p
a7880 72 6f 74 6f 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 rotocols,.aborting.'..."\n\n"...
a78a0 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 2c 20 24 75 72 6c 29 3b implode("\n",.$messages),.$url);
a78c0 0a 7d 0a 0a 0a 20 24 62 79 70 61 73 73 53 73 68 46 6f 72 47 69 74 48 75 62 20 3d 20 70 72 65 67 .}....$bypassSshForGitHub.=.preg
a78e0 5f 6d 61 74 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 _match('{^git@'.self::getGitHubD
a7900 6f 6d 61 69 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 omainsRegex($this->config).':(.+
a7920 3f 29 5c 2e 67 69 74 24 7d 69 27 2c 20 24 75 72 6c 29 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 ?)\.git$}i',.$url).&&.!in_array(
a7940 27 73 73 68 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 2c 20 74 72 75 65 29 3b 0a 0a 24 63 6f 6d 6d 'ssh',.$protocols,.true);..$comm
a7960 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c and.=.call_user_func($commandCal
a7980 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 0a 69 66 20 28 24 62 79 70 61 73 73 53 73 68 46 6f 72 lable,.$url);..if.($bypassSshFor
a79a0 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 6f 63 65 73 73 2d 3e GitHub.||.0.!==.$this->process->
a79c0 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 execute($command,.$ignoredOutput
a79e0 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 63 68 28 27 7b 5e 67 ,.$cwd)).{...if.(preg_match('{^g
a7a00 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 6e 73 52 65 67 65 78 it@'.self::getGitHubDomainsRegex
a7a20 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 67 69 74 24 7d 69 27 ($this->config).':(.+?)\.git$}i'
a7a40 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 ,.$url,.$match)).{.if.(!$this->i
a7a60 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 o->hasAuthentication($match[1]))
a7a80 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 .{.$gitHubUtil.=.new.GitHub($thi
a7aa0 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f s->io,.$this->config,.$this->pro
a7ac0 63 65 73 73 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6c 6f 6e 69 6e 67 20 66 61 69 6c 65 cess);.$message.=.'Cloning.faile
a7ae0 64 20 75 73 69 6e 67 20 61 6e 20 73 73 68 20 6b 65 79 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 d.using.an.ssh.key.for.authentic
a7b00 61 74 69 6f 6e 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 ation,.enter.your.GitHub.credent
a7b20 69 61 6c 73 20 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 3b 0a 0a ials.to.access.private.repos';..
a7b40 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 if.(!$gitHubUtil->authorizeOAuth
a7b60 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 ($match[1]).&&.$this->io->isInte
a7b80 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 ractive()).{.$gitHubUtil->author
a7ba0 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6d 61 74 63 68 5b 31 5d 2c izeOAuthInteractively($match[1],
a7bc0 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e .$message);.}.}..if.($this->io->
a7be0 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a hasAuthentication($match[1])).{.
a7c00 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 $auth.=.$this->io->getAuthentica
a7c20 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f tion($match[1]);.$url.=.'https:/
a7c40 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 65 72 6e 61 6d 65 27 /'.rawurlencode($auth['username'
a7c60 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 61 75 74 68 5b 27 70 ])...':'...rawurlencode($auth['p
a7c80 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 5d 2e 27 2f 27 2e 24 assword'])...'@'.$match[1].'/'.$
a7ca0 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c match[2].'.git';.$command.=.call
a7cc0 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 _user_func($commandCallable,.$ur
a7ce0 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 l);.if.(0.===.$this->process->ex
a7d00 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 ecute($command,.$ignoredOutput,.
a7d20 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 $cwd)).{.return;.}.}.}.elseif.($
a7d40 74 68 69 73 2d 3e 69 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 46 61 69 6c 75 72 65 28 24 75 this->isAuthenticationFailure($u
a7d60 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 20 0a 20 69 66 20 28 73 74 72 70 6f 73 28 24 6d 61 74 rl,.$match)).{...if.(strpos($mat
a7d80 63 68 5b 32 5d 2c 20 27 40 27 29 29 20 7b 0a 6c 69 73 74 28 24 61 75 74 68 50 61 72 74 73 2c 20 ch[2],.'@')).{.list($authParts,.
a7da0 24 6d 61 74 63 68 5b 32 5d 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 40 27 2c 20 24 6d 61 74 63 68 $match[2]).=.explode('@',.$match
a7dc0 5b 32 5d 2c 20 32 29 3b 0a 7d 0a 0a 24 73 74 6f 72 65 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a [2],.2);.}..$storeAuth.=.false;.
a7de0 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 69 6f 6e if.($this->io->hasAuthentication
a7e00 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f ($match[2])).{.$auth.=.$this->io
a7e20 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a ->getAuthentication($match[2]);.
a7e40 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 }.elseif.($this->io->isInteracti
a7e60 76 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 6d 65 20 3d 20 6e 75 6c 6c 3b ve()).{.$defaultUsername.=.null;
a7e80 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 50 61 72 74 73 29 20 26 26 20 24 61 75 74 68 50 .if.(isset($authParts).&&.$authP
a7ea0 61 72 74 73 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 61 75 arts).{.if.(false.!==.strpos($au
a7ec0 74 68 50 61 72 74 73 2c 20 27 3a 27 29 29 20 7b 0a 6c 69 73 74 28 24 64 65 66 61 75 6c 74 55 73 thParts,.':')).{.list($defaultUs
a7ee0 65 72 6e 61 6d 65 2c 20 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 61 75 74 68 50 61 ername,.).=.explode(':',.$authPa
a7f00 72 74 73 2c 20 32 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 rts,.2);.}.else.{.$defaultUserna
a7f20 6d 65 20 3d 20 24 61 75 74 68 50 61 72 74 73 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d me.=.$authParts;.}.}..$this->io-
a7f40 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 >writeError('....Authentication.
a7f60 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c required.(<info>'.parse_url($url
a7f80 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 61 ,.PHP_URL_HOST).'</info>):');.$a
a7fa0 75 74 68 20 3d 20 61 72 72 61 79 28 0a 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 74 68 69 73 uth.=.array(.'username'.=>.$this
a7fc0 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e 61 6d 65 3a 20 27 2c 20 24 64 ->io->ask('......Username:.',.$d
a7fe0 65 66 61 75 6c 74 55 73 65 72 6e 61 6d 65 29 2c 0a 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 efaultUsername),.'password'.=>.$
a8000 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 20 20 20 20 this->io->askAndHideAnswer('....
a8020 20 20 50 61 73 73 77 6f 72 64 3a 20 27 29 2c 0a 29 3b 0a 24 73 74 6f 72 65 41 75 74 68 20 3d 20 ..Password:.'),.);.$storeAuth.=.
a8040 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 73 27 $this->config->get('store-auths'
a8060 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 75 74 68 29 20 7b 0a 24 75 72 6c 20 3d 20 24 6d 61 74 63 68 );.}..if.($auth).{.$url.=.$match
a8080 5b 31 5d 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 [1].rawurlencode($auth['username
a80a0 27 5d 29 2e 27 3a 27 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 70 61 73 73 ']).':'.rawurlencode($auth['pass
a80c0 77 6f 72 64 27 5d 29 2e 27 40 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 24 6d 61 74 63 68 5b 33 5d 3b word']).'@'.$match[2].$match[3];
a80e0 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d ..$command.=.call_user_func($com
a8100 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 mandCallable,.$url);.if.(0.===.$
a8120 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c this->process->execute($command,
a8140 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 24 74 68 69 73 2d .$ignoredOutput,.$cwd)).{.$this-
a8160 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 32 5d >io->setAuthentication($match[2]
a8180 2c 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 5b 27 70 61 73 73 ,.$auth['username'],.$auth['pass
a81a0 77 6f 72 64 27 5d 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 20 3d 20 6e 65 77 20 41 75 74 68 48 word']);.$authHelper.=.new.AuthH
a81c0 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 67 29 3b elper($this->io,.$this->config);
a81e0 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 6d 61 74 63 68 5b 32 .$authHelper->storeAuth($match[2
a8200 5d 2c 20 24 73 74 6f 72 65 41 75 74 68 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a ],.$storeAuth);..return;.}.}.}..
a8220 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 if.($initialClone).{.$this->file
a8240 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 6f 72 69 67 43 77 64 system->removeDirectory($origCwd
a8260 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c );.}.$this->throwException('Fail
a8280 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 73 65 6c 66 3a 3a 73 61 6e 69 74 69 7a 65 ed.to.execute.'...self::sanitize
a82a0 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e Url($command)..."\n\n"...$this->
a82c0 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 75 72 6c 29 process->getErrorOutput(),.$url)
a82e0 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 75 74 68 65 6e ;.}.}..private.function.isAuthen
a8300 74 69 63 61 74 69 6f 6e 46 61 69 6c 75 72 65 28 24 75 72 6c 2c 20 26 24 6d 61 74 63 68 29 0a 7b ticationFailure($url,.&$match).{
a8320 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 29 28 5b .if.(!preg_match('{(https?://)([
a8340 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 29 20 7b 0a ^/]+)(.*)$}i',.$url,.$match)).{.
a8360 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 61 75 74 68 46 61 69 6c 75 72 65 73 20 3d return.false;.}..$authFailures.=
a8380 20 61 72 72 61 79 28 27 66 61 74 61 6c 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 66 61 .array('fatal:.Authentication.fa
a83a0 69 6c 65 64 27 2c 20 27 72 65 6d 6f 74 65 20 65 72 72 6f 72 3a 20 49 6e 76 61 6c 69 64 20 75 73 iled',.'remote.error:.Invalid.us
a83c0 65 72 6e 61 6d 65 20 6f 72 20 70 61 73 73 77 6f 72 64 2e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 ername.or.password.');.foreach.(
a83e0 24 61 75 74 68 46 61 69 6c 75 72 65 73 20 61 73 20 24 61 75 74 68 46 61 69 6c 75 72 65 29 20 7b $authFailures.as.$authFailure).{
a8400 0a 69 66 20 28 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 .if.(strpos($this->process->getE
a8420 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 61 75 74 68 46 61 69 6c 75 72 65 29 20 21 3d 3d 20 rrorOutput(),.$authFailure).!==.
a8440 66 61 6c 73 65 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 false).{.return.true;.}.}..retur
a8460 6e 20 66 61 6c 73 65 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 n.false;.}..public.static.functi
a8480 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 27 73 61 66 on.cleanEnv().{.if.(ini_get('saf
a84a0 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 28 69 6e 69 e_mode').&&.false.===.strpos(ini
a84c0 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 76 61 72 73 _get('safe_mode_allowed_env_vars
a84e0 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 6e 65 77 20 '),.'GIT_ASKPASS')).{.throw.new.
a8500 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 20 69 73 20 \RuntimeException('safe_mode.is.
a8520 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 64 5f 65 6e enabled.and.safe_mode_allowed_en
a8540 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 41 53 4b 50 v_vars.does.not.contain.GIT_ASKP
a8560 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 75 20 63 61 ASS,.can.not.set.env.var..You.ca
a8580 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 73 61 66 65 n.disable.safe_mode.with."-dsafe
a85a0 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 65 72 27 29 _mode=0".when.running.composer')
a85c0 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 53 53 27 29 ;.}....if.(getenv('GIT_ASKPASS')
a85e0 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 53 4b 50 41 .!==.'echo').{.putenv('GIT_ASKPA
a8600 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 49 54 5f 41 SS=echo');.unset($_SERVER['GIT_A
a8620 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 47 49 54 5f SKPASS']);.}....if.(getenv('GIT_
a8640 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 75 6e 73 65 DIR')).{.putenv('GIT_DIR');.unse
a8660 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 20 28 67 65 t($_SERVER['GIT_DIR']);.}.if.(ge
a8680 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 65 6e 76 28 tenv('GIT_WORK_TREE')).{.putenv(
a86a0 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 52 56 45 52 'GIT_WORK_TREE');.unset($_SERVER
a86c0 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 28 67 65 74 ['GIT_WORK_TREE']);.}....if.(get
a86e0 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 75 74 65 6e env('LANGUAGE').!==.'C').{.puten
a8700 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 28 22 44 59 v('LANGUAGE=C');.}....putenv("DY
a8720 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 45 52 56 45 LD_LIBRARY_PATH");.unset($_SERVE
a8740 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 70 75 62 6c R['DYLD_LIBRARY_PATH']);.}..publ
a8760 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 44 6f 6d 61 ic.static.function.getGitHubDoma
a8780 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 65 74 75 72 insRegex(Config.$config).{.retur
a87a0 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 28 27 70 72 n.'('.implode('|',.array_map('pr
a87c0 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 68 75 62 2d eg_quote',.$config->get('github-
a87e0 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 74 61 74 69 domains'))).')';.}..public.stati
a8800 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 61 67 65 29 c.function.sanitizeUrl($message)
a8820 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 28 5b 5e 40 .{.return.preg_replace('{://([^@
a8840 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 6d 65 73 73 ]+?):.+?@}',.'://$1:***@',.$mess
a8860 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 72 6f 77 45 age);.}..private.function.throwE
a8880 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 0a 20 63 6c 65 xception($message,.$url).{...cle
a88a0 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d arstatcache();..if.(0.!==.$this-
a88c0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 2d 2d 76 65 72 73 69 6f 6e >process->execute('git.--version
a88e0 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ',.$ignoredOutput)).{.throw.new.
a8900 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 63 6c 6f \RuntimeException('Failed.to.clo
a8920 6e 65 20 27 2e 73 65 6c 66 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 2e 27 2c 20 ne.'.self::sanitizeUrl($url).',.
a8940 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 git.was.not.found,.check.that.it
a8960 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 .is.installed.and.in.your.PATH.e
a8980 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e nv.'..."\n\n"...$this->process->
a89a0 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 getErrorOutput());.}..throw.new.
a89c0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d \RuntimeException($message);.}.}
a89e0 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
a8a00 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e oser\Util;..use.Composer\IO\IOIn
a8a20 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 73 terface;.use.Composer\Config;.us
a8a40 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 e.Composer\Downloader\TransportE
a8a60 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b 0a 70 72 6f xception;.....class.GitHub.{.pro
a8a80 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 tected.$io;.protected.$config;.p
a8aa0 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 rotected.$process;.protected.$re
a8ac0 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 6c 69 63 20 moteFilesystem;..........public.
a8ae0 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 65 function.__construct(IOInterface
a8b00 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 73 45 78 65 .$io,.Config.$config,.ProcessExe
a8b20 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 65 46 69 6c cutor.$process.=.null,.RemoteFil
a8b40 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 6e 75 6c 6c esystem.$remoteFilesystem.=.null
a8b60 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
a8b80 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 ig.=.$config;.$this->process.=.$
a8ba0 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a process.?:.new.ProcessExecutor;.
a8bc0 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 65 6d 6f 74 $this->remoteFilesystem.=.$remot
a8be0 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 65 73 79 73 eFilesystem.?:.new.RemoteFilesys
a8c00 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 70 75 62 6c tem($io,.$config);.}........publ
a8c20 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 6f 72 69 67 ic.function.authorizeOAuth($orig
a8c40 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 69 6e 55 72 inUrl).{.if.(!in_array($originUr
a8c60 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 62 2d 64 6f l,.$this->config->get('github-do
a8c80 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 0a 0a 20 69 mains'))).{.return.false;.}....i
a8ca0 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 f.(0.===.$this->process->execute
a8cc0 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 6b 65 6e 27 ('git.config.github.accesstoken'
a8ce0 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 41 75 74 68 ,.$output)).{.$this->io->setAuth
a8d00 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 24 6f 75 74 entication($originUrl,.trim($out
a8d20 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 75 72 6e 20 put),.'x-oauth-basic');..return.
a8d40 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 0a 0a true;.}..return.false;.}........
a8d60 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 4f 41 75 74 ...public.function.authorizeOAut
a8d80 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 6d 65 73 73 hInteractively($originUrl,.$mess
a8da0 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 7b 0a 24 74 age.=.null).{.if.($message).{.$t
a8dc0 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 29 3b 0a 7d his->io->writeError($message);.}
a8de0 0a 0a 24 6e 6f 74 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 24 74 68 69 73 2d ..$note.=.'Composer';.if.($this-
a8e00 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 >config->get('github-expose-host
a8e20 6e 61 6d 65 27 29 20 3d 3d 3d 20 74 72 75 65 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e name').===.true.&&.0.===.$this->
a8e40 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 6f 73 74 6e 61 6d 65 27 2c 20 24 6f 75 process->execute('hostname',.$ou
a8e60 74 70 75 74 29 29 20 7b 0a 24 6e 6f 74 65 20 2e 3d 20 27 20 6f 6e 20 27 20 2e 20 74 72 69 6d 28 tput)).{.$note..=.'.on.'...trim(
a8e80 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 24 6e 6f 74 65 20 2e 3d 20 27 20 27 20 2e 20 64 61 74 65 28 $output);.}.$note..=.'.'...date(
a8ea0 27 59 2d 6d 2d 64 20 48 69 27 29 3b 0a 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 2e 'Y-m-d.Hi');..$url.=.'https://'.
a8ec0 24 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 73 65 74 74 69 6e 67 73 2f 74 6f 6b 65 6e 73 2f 6e 65 77 $originUrl.'/settings/tokens/new
a8ee0 3f 73 63 6f 70 65 73 3d 72 65 70 6f 26 64 65 73 63 72 69 70 74 69 6f 6e 3d 27 20 2e 20 73 74 72 ?scopes=repo&description='...str
a8f00 5f 72 65 70 6c 61 63 65 28 27 25 32 30 27 2c 20 27 2b 27 2c 20 72 61 77 75 72 6c 65 6e 63 6f 64 _replace('%20',.'+',.rawurlencod
a8f20 65 28 24 6e 6f 74 65 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 e($note));.$this->io->writeError
a8f40 28 73 70 72 69 6e 74 66 28 27 48 65 61 64 20 74 6f 20 25 73 27 2c 20 24 75 72 6c 29 29 3b 0a 24 (sprintf('Head.to.%s',.$url));.$
a8f60 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 27 74 6f this->io->writeError(sprintf('to
a8f80 20 72 65 74 72 69 65 76 65 20 61 20 74 6f 6b 65 6e 2e 20 49 74 20 77 69 6c 6c 20 62 65 20 73 74 .retrieve.a.token..It.will.be.st
a8fa0 6f 72 65 64 20 69 6e 20 22 25 73 22 20 66 6f 72 20 66 75 74 75 72 65 20 75 73 65 20 62 79 20 43 ored.in."%s".for.future.use.by.C
a8fc0 6f 6d 70 6f 73 65 72 2e 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 41 75 74 omposer.',.$this->config->getAut
a8fe0 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 24 hConfigSource()->getName()));..$
a9000 74 6f 6b 65 6e 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 token.=.trim($this->io->askAndHi
a9020 64 65 41 6e 73 77 65 72 28 27 54 6f 6b 65 6e 20 28 68 69 64 64 65 6e 29 3a 20 27 29 29 3b 0a 0a deAnswer('Token.(hidden):.'));..
a9040 69 66 20 28 21 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 if.(!$token).{.$this->io->writeE
a9060 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 4e 6f 20 74 6f 6b 65 6e 20 67 69 76 65 6e 2c 20 61 rror('<warning>No.token.given,.a
a9080 62 6f 72 74 69 6e 67 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d borting.</warning>');.$this->io-
a90a0 3e 77 72 69 74 65 45 72 72 6f 72 28 27 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 64 64 20 69 74 >writeError('You.can.also.add.it
a90c0 20 6d 61 6e 75 61 6c 6c 79 20 6c 61 74 65 72 20 62 79 20 75 73 69 6e 67 20 22 63 6f 6d 70 6f 73 .manually.later.by.using."compos
a90e0 65 72 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 67 69 74 68 75 62 2e 63 6f er.config.github-oauth.github.co
a9100 6d 20 3c 74 6f 6b 65 6e 3e 22 27 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a m.<token>"');..return.false;.}..
a9120 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 24 6f 72 $this->io->setAuthentication($or
a9140 69 67 69 6e 55 72 6c 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 iginUrl,.$token,.'x-oauth-basic'
a9160 29 3b 0a 0a 74 72 79 20 7b 0a 24 61 70 69 55 72 6c 20 3d 20 28 27 67 69 74 68 75 62 2e 63 6f 6d );..try.{.$apiUrl.=.('github.com
a9180 27 20 3d 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 '.===.$originUrl).?.'api.github.
a91a0 63 6f 6d 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 com'.:.$originUrl...'/api/v3';..
a91c0 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 $this->remoteFilesystem->getCont
a91e0 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 27 68 74 74 70 73 3a 2f 2f 27 2e 20 24 61 70 ents($originUrl,.'https://'..$ap
a9200 69 55 72 6c 20 2e 20 27 2f 72 61 74 65 5f 6c 69 6d 69 74 27 2c 20 66 61 6c 73 65 2c 20 61 72 72 iUrl...'/rate_limit',.false,.arr
a9220 61 79 28 0a 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 ay(.'retry-auth-failure'.=>.fals
a9240 65 2c 0a 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 e,.));.}.catch.(TransportExcepti
a9260 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 on.$e).{.if.(in_array($e->getCod
a9280 65 28 29 2c 20 61 72 72 61 79 28 34 30 33 2c 20 34 30 31 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e e(),.array(403,.401))).{.$this->
a92a0 69 6f 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 74 io->writeError('<error>Invalid.t
a92c0 6f 6b 65 6e 20 70 72 6f 76 69 64 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d oken.provided.</error>');.$this-
a92e0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 64 >io->writeError('You.can.also.ad
a9300 64 20 69 74 20 6d 61 6e 75 61 6c 6c 79 20 6c 61 74 65 72 20 62 79 20 75 73 69 6e 67 20 22 63 6f d.it.manually.later.by.using."co
a9320 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 67 69 74 68 75 mposer.config.github-oauth.githu
a9340 62 2e 63 6f 6d 20 3c 74 6f 6b 65 6e 3e 22 27 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b b.com.<token>"');..return.false;
a9360 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 .}..throw.$e;.}....$this->config
a9380 2d 3e 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 ->getConfigSource()->removeConfi
a93a0 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6f 72 69 67 69 6e gSetting('github-oauth.'.$origin
a93c0 55 72 6c 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 41 75 74 68 43 6f 6e 66 Url);.$this->config->getAuthConf
a93e0 69 67 53 6f 75 72 63 65 28 29 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 igSource()->addConfigSetting('gi
a9400 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 6f 6b 65 6e 29 thub-oauth.'.$originUrl,.$token)
a9420 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 69 6e 66 6f 3e ;..$this->io->writeError('<info>
a9440 54 6f 6b 65 6e 20 73 74 6f 72 65 64 20 73 75 63 63 65 73 73 66 75 6c 6c 79 2e 3c 2f 69 6e 66 6f Token.stored.successfully.</info
a9460 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a >');..return.true;.}.}.<?php....
a9480 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b ........namespace.Composer\Util;
a94a0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 ..use.Composer\IO\IOInterface;.u
a94c0 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
a94e0 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a \Downloader\TransportException;.
a9500 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a use.Composer\Json\JsonFile;.....
a9520 63 6c 61 73 73 20 47 69 74 4c 61 62 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 class.GitLab.{.protected.$io;.pr
a9540 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 20 24 70 72 6f 63 otected.$config;.protected.$proc
a9560 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d ess;.protected.$remoteFilesystem
a9580 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ;..........public.function.__con
a95a0 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 struct(IOInterface.$io,.Config.$
a95c0 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 config,.ProcessExecutor.$process
a95e0 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 65 6d 6f 74 .=.null,.RemoteFilesystem.$remot
a9600 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 eFilesystem.=.null).{.$this->io.
a9620 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 67 3b 0a =.$io;.$this->config.=.$config;.
a9640 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 77 $this->process.=.$process.?:.new
a9660 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 .ProcessExecutor();.$this->remot
a9680 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.
a96a0 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
a96c0 6e 66 69 67 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 nfig);.}.........public.function
a96e0 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 69 66 .authorizeOAuth($originUrl).{.if
a9700 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 74 68 69 73 2d 3e 63 .(!in_array($originUrl,.$this->c
a9720 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 6c 61 62 2d 64 6f 6d 61 69 6e 73 27 29 2c 20 74 72 onfig->get('gitlab-domains'),.tr
a9740 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 ue)).{.return.false;.}....if.(0.
a9760 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 ===.$this->process->execute('git
a9780 20 63 6f 6e 66 69 67 20 67 69 74 6c 61 62 2e 61 63 63 65 73 73 74 6f 6b 65 6e 27 2c 20 24 6f 75 .config.gitlab.accesstoken',.$ou
a97a0 74 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 tput)).{.$this->io->setAuthentic
a97c0 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c ation($originUrl,.trim($output),
a97e0 20 27 6f 61 75 74 68 32 27 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 .'oauth2');..return.true;.}..ret
a9800 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 20 urn.false;.}.............public.
a9820 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 function.authorizeOAuthInteracti
a9840 76 65 6c 79 28 24 73 63 68 65 6d 65 2c 20 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 vely($scheme,.$originUrl,.$messa
a9860 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 7b 0a 24 74 68 ge.=.null).{.if.($message).{.$th
a9880 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 29 3b 0a 7d 0a is->io->writeError($message);.}.
a98a0 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 6e 74 66 28 27 .$this->io->writeError(sprintf('
a98c0 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 20 73 74 6f 72 A.token.will.be.created.and.stor
a98e0 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 69 6c 6c 20 6e ed.in."%s",.your.password.will.n
a9900 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 66 69 67 2d 3e ever.be.stored',.$this->config->
a9920 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 61 6d 65 28 29 getAuthConfigSource()->getName()
a9940 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 54 6f 20 72 65 ));.$this->io->writeError('To.re
a9960 76 6f 6b 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 69 73 20 74 6f 6b 65 6e 20 79 6f 75 20 63 61 voke.access.to.this.token.you.ca
a9980 6e 20 76 69 73 69 74 20 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 70 72 6f 66 69 6c 65 2f 61 n.visit.'.$originUrl.'/profile/a
a99a0 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 3b 0a 0a 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 pplications');..$attemptCounter.
a99c0 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 20 3c =.0;..while.($attemptCounter++.<
a99e0 20 35 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 73 70 6f 6e 73 65 20 3d 20 24 74 68 69 73 2d 3e 63 .5).{.try.{.$response.=.$this->c
a9a00 72 65 61 74 65 54 6f 6b 65 6e 28 24 73 63 68 65 6d 65 2c 20 24 6f 72 69 67 69 6e 55 72 6c 29 3b reateToken($scheme,.$originUrl);
a9a20 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 29 .}.catch.(TransportException.$e)
a9a40 20 7b 0a 0a 20 0a 20 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 .{.....if.(in_array($e->getCode(
a9a60 29 2c 20 61 72 72 61 79 28 34 30 33 2c 20 34 30 31 29 29 29 20 7b 0a 69 66 20 28 34 30 31 20 3d ),.array(403,.401))).{.if.(401.=
a9a80 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 2d 3e 69 6f 2d 3e 77 ==.$e->getCode()).{.$this->io->w
a9aa0 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 73 2e 27 29 3b 0a 7d riteError('Bad.credentials.');.}
a9ac0 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 6f 72 28 27 4d .else.{.$this->io->writeError('M
a9ae0 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 74 65 6d 70 74 73 20 aximum.number.of.login.attempts.
a9b00 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 6e 20 6c 61 74 65 72 exceeded..Please.try.again.later
a9b20 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 72 72 6f 72 28 27 59 .');.}..$this->io->writeError('Y
a9b40 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 74 65 20 61 20 70 65 ou.can.also.manually.create.a.pe
a9b60 72 73 6f 6e 61 6c 20 74 6f 6b 65 6e 20 61 74 20 27 2e 24 73 63 68 65 6d 65 2e 27 3a 2f 2f 27 2e rsonal.token.at.'.$scheme.'://'.
a9b80 24 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 70 72 6f 66 69 6c 65 2f 61 70 70 6c 69 63 61 74 69 6f 6e $originUrl.'/profile/application
a9ba0 73 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 27 41 64 64 20 s');.$this->io->writeError('Add.
a9bc0 69 74 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 6c 61 62 it.using."composer.config.gitlab
a9be0 2d 6f 61 75 74 68 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2e 27 20 3c 74 6f 6b 65 6e 3e 22 27 29 -oauth.'.$originUrl.'.<token>"')
a9c00 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 ;..continue;.}..throw.$e;.}..$th
a9c20 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 is->io->setAuthentication($origi
a9c40 6e 55 72 6c 2c 20 24 72 65 73 70 6f 6e 73 65 5b 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 27 5d 2c nUrl,.$response['access_token'],
a9c60 20 27 6f 61 75 74 68 32 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 .'oauth2');....$this->config->ge
a9c80 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 tAuthConfigSource()->addConfigSe
a9ca0 74 74 69 6e 67 28 27 67 69 74 6c 61 62 2d 6f 61 75 74 68 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c tting('gitlab-oauth.'.$originUrl
a9cc0 2c 20 24 72 65 73 70 6f 6e 73 65 5b 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 27 5d 29 3b 0a 0a 72 ,.$response['access_token']);..r
a9ce0 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 75 6e 74 69 6d eturn.true;.}..throw.new.\Runtim
a9d00 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 47 69 74 4c 61 62 20 63 72 65 64 65 eException('Invalid.GitLab.crede
a9d20 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 6f 72 74 69 6e ntials.5.times.in.a.row,.abortin
a9d40 67 2e 27 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 g.');.}..private.function.create
a9d60 54 6f 6b 65 6e 28 24 73 63 68 65 6d 65 2c 20 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 24 75 73 Token($scheme,.$originUrl).{.$us
a9d80 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d ername.=.$this->io->ask('Usernam
a9da0 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 e:.');.$password.=.$this->io->as
a9dc0 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 0a 24 kAndHideAnswer('Password:.');..$
a9de0 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 27 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 headers.=.array('Content-Type:.a
a9e00 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 pplication/x-www-form-urlencoded
a9e20 27 29 3b 0a 0a 24 61 70 69 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 64 61 74 61 ');..$apiUrl.=.$originUrl;.$data
a9e40 20 3d 20 68 74 74 70 5f 62 75 69 6c 64 5f 71 75 65 72 79 28 61 72 72 61 79 28 0a 27 75 73 65 72 .=.http_build_query(array(.'user
a9e60 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e 61 6d 65 2c 0a 27 70 61 73 73 77 6f 72 64 27 20 3d name'.=>.$username,.'password'.=
a9e80 3e 20 24 70 61 73 73 77 6f 72 64 2c 0a 27 67 72 61 6e 74 5f 74 79 70 65 27 20 3d 3e 20 27 70 61 >.$password,.'grant_type'.=>.'pa
a9ea0 73 73 77 6f 72 64 27 2c 0a 29 29 3b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 ssword',.));.$options.=.array(.'
a9ec0 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 2c 0a 27 68 retry-auth-failure'.=>.false,.'h
a9ee0 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 ttp'.=>.array(.'method'.=>.'POST
a9f00 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 24 68 65 61 64 65 72 73 2c 0a 27 63 6f 6e 74 65 6e ',.'header'.=>.$headers,.'conten
a9f20 74 27 20 3d 3e 20 24 64 61 74 61 2c 0a 29 2c 0a 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 t'.=>.$data,.),.);..$json.=.$thi
a9f40 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 s->remoteFilesystem->getContents
a9f60 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 73 63 68 65 6d 65 2e 27 3a 2f 2f 27 2e 24 61 70 69 55 ($originUrl,.$scheme.'://'.$apiU
a9f80 72 6c 2e 27 2f 6f 61 75 74 68 2f 74 6f 6b 65 6e 27 2c 20 66 61 6c 73 65 2c 20 24 6f 70 74 69 6f rl.'/oauth/token',.false,.$optio
a9fa0 6e 73 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 ns);..$this->io->writeError('Tok
a9fc0 65 6e 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 en.successfully.created');..retu
a9fe0 72 6e 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 rn.JsonFile::parseJson($json);.}
aa000 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
aa020 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 50 72 6f 78 79 50 61 mposer\Util;.....class.NoProxyPa
aa040 74 74 65 72 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 20 3d 20 61 72 ttern.{....protected.$rules.=.ar
aa060 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
aa080 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 struct($pattern).{.$this->rules.
aa0a0 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 22 2f 5b 5c 73 2c 5d 2b 2f 22 2c 20 24 70 61 74 74 65 72 =.preg_split("/[\s,]+/",.$patter
aa0c0 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 n);.}.........public.function.te
aa0e0 73 74 28 24 75 72 6c 29 0a 7b 0a 24 68 6f 73 74 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 st($url).{.$host.=.parse_url($ur
aa100 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 24 70 6f 72 74 20 3d 20 70 61 72 73 65 5f l,.PHP_URL_HOST);.$port.=.parse_
aa120 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 50 4f 52 54 29 3b 0a 0a 69 66 20 28 65 6d url($url,.PHP_URL_PORT);..if.(em
aa140 70 74 79 28 24 70 6f 72 74 29 29 20 7b 0a 73 77 69 74 63 68 20 28 70 61 72 73 65 5f 75 72 6c 28 pty($port)).{.switch.(parse_url(
aa160 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 4d 45 29 29 20 7b 0a 63 61 73 65 20 27 68 $url,.PHP_URL_SCHEME)).{.case.'h
aa180 74 74 70 27 3a 0a 24 70 6f 72 74 20 3d 20 38 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 68 ttp':.$port.=.80;.break;.case.'h
aa1a0 74 74 70 73 27 3a 0a 24 70 6f 72 74 20 3d 20 34 34 33 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a ttps':.$port.=.443;.break;.}.}..
aa1c0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 foreach.($this->rules.as.$rule).
aa1e0 7b 0a 69 66 20 28 24 72 75 6c 65 20 3d 3d 20 27 2a 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 {.if.($rule.==.'*').{.return.tru
aa200 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 6c 69 73 74 28 24 72 75 6c e;.}..$match.=.false;..list($rul
aa220 65 48 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c 65 29 3b 0a 6c 69 eHost).=.explode(':',.$rule);.li
aa240 73 74 28 24 62 61 73 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 72 75 6c 65 48 6f st($base).=.explode('/',.$ruleHo
aa260 73 74 29 3b 0a 0a 69 66 20 28 66 69 6c 74 65 72 5f 76 61 72 28 24 62 61 73 65 2c 20 46 49 4c 54 st);..if.(filter_var($base,.FILT
aa280 45 52 5f 56 41 4c 49 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 34 ER_VALIDATE_IP,.FILTER_FLAG_IPV4
aa2a0 29 29 20 7b 0a 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 69 70 29 29 20 7b 0a 24 69 70 20 3d 20 )).{...if.(!isset($ip)).{.$ip.=.
aa2c0 67 65 74 68 6f 73 74 62 79 6e 61 6d 65 28 24 68 6f 73 74 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 gethostbyname($host);.}..if.(str
aa2e0 70 6f 73 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b pos($ruleHost,.'/').===.false).{
aa300 0a 24 6d 61 74 63 68 20 3d 20 24 69 70 20 3d 3d 3d 20 24 72 75 6c 65 48 6f 73 74 3b 0a 7d 20 65 .$match.=.$ip.===.$ruleHost;.}.e
aa320 6c 73 65 20 7b 0a 0a 20 0a 20 69 66 20 28 24 69 70 20 3d 3d 3d 20 24 68 6f 73 74 29 20 7b 0a 24 lse.{.....if.($ip.===.$host).{.$
aa340 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6d 61 74 63 68 match.=.false;.}.else.{...$match
aa360 20 3d 20 73 65 6c 66 3a 3a 69 6e 43 49 44 52 42 6c 6f 63 6b 28 24 72 75 6c 65 48 6f 73 74 2c 20 .=.self::inCIDRBlock($ruleHost,.
aa380 24 69 70 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 0a 24 68 61 79 73 74 61 63 6b 20 3d $ip);.}.}.}.else.{...$haystack.=
aa3a0 20 27 2e 27 20 2e 20 74 72 69 6d 28 24 68 6f 73 74 2c 20 27 2e 27 29 20 2e 20 27 2e 27 3b 0a 24 .'.'...trim($host,.'.')...'.';.$
aa3c0 6e 65 65 64 6c 65 20 3d 20 27 2e 27 2e 20 74 72 69 6d 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2e needle.=.'.'..trim($ruleHost,.'.
aa3e0 27 29 20 2e 27 2e 27 3b 0a 24 6d 61 74 63 68 20 3d 20 73 74 72 69 70 6f 73 28 73 74 72 72 65 76 ')..'.';.$match.=.stripos(strrev
aa400 28 24 68 61 79 73 74 61 63 6b 29 2c 20 73 74 72 72 65 76 28 24 6e 65 65 64 6c 65 29 29 20 3d 3d ($haystack),.strrev($needle)).==
aa420 3d 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 20 26 26 20 73 74 72 70 6f 73 28 24 =.0;.}....if.($match.&&.strpos($
aa440 72 75 6c 65 2c 20 27 3a 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 6c 69 73 74 28 2c 20 24 rule,.':').!==.false).{.list(,.$
aa460 72 75 6c 65 50 6f 72 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c 65 29 3b rulePort).=.explode(':',.$rule);
aa480 0a 69 66 20 28 21 65 6d 70 74 79 28 24 72 75 6c 65 50 6f 72 74 29 20 26 26 20 24 70 6f 72 74 20 .if.(!empty($rulePort).&&.$port.
aa4a0 21 3d 20 24 72 75 6c 65 50 6f 72 74 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a !=.$rulePort).{.$match.=.false;.
aa4c0 7d 0a 7d 0a 0a 69 66 20 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a }.}..if.($match).{.return.true;.
aa4e0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a }.}..return.false;.}............
aa500 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 43 49 44 52 42 6c private.static.function.inCIDRBl
aa520 6f 63 6b 28 24 63 69 64 72 2c 20 24 69 70 29 0a 7b 0a 0a 20 6c 69 73 74 28 24 62 61 73 65 2c 20 ock($cidr,.$ip).{...list($base,.
aa540 24 62 69 74 73 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 63 69 64 72 29 3b 0a 0a 0a $bits).=.explode('/',.$cidr);...
aa560 20 6c 69 73 74 28 24 61 2c 20 24 62 2c 20 24 63 2c 20 24 64 29 20 3d 20 65 78 70 6c 6f 64 65 28 .list($a,.$b,.$c,.$d).=.explode(
aa580 27 2e 27 2c 20 24 62 61 73 65 29 3b 0a 0a 0a 20 24 69 20 3d 20 28 24 61 20 3c 3c 20 32 34 29 20 '.',.$base);....$i.=.($a.<<.24).
aa5a0 2b 20 28 24 62 20 3c 3c 20 31 36 29 20 2b 20 28 24 63 20 3c 3c 20 38 29 20 2b 20 24 64 3b 0a 24 +.($b.<<.16).+.($c.<<.8).+.$d;.$
aa5c0 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 20 28 mask.=.$bits.==.0.?.0.:.(~0.<<.(
aa5e0 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 6d 61 32.-.$bits));....$low.=.$i.&.$ma
aa600 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 30 78 sk;....$high.=.$i.|.(~$mask.&.0x
aa620 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 20 24 FFFFFFFF);....list($a,.$b,.$c,.$
aa640 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 65 63 d).=.explode('.',.$ip);....$chec
aa660 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 28 24 k.=.($a.<<.24).+.($b.<<.16).+.($
aa680 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 63 6b c.<<.8).+.$d;......return.$check
aa6a0 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 0a 7d .>=.$low.&&.$check.<=.$high;.}.}
aa6c0 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
aa6e0 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e oser\Util;..use.Composer\IO\IOIn
aa700 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 50 terface;.use.Symfony\Component\P
aa720 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 rocess\Process;.....class.Perfor
aa740 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 74 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 ce.{.protected.$path;.protected.
aa760 24 70 34 44 65 70 6f 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 43 6c 69 65 6e 74 3b 0a 70 $p4Depot;.protected.$p4Client;.p
aa780 72 6f 74 65 63 74 65 64 20 24 70 34 55 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 50 rotected.$p4User;.protected.$p4P
aa7a0 61 73 73 77 6f 72 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 50 6f 72 74 3b 0a 70 72 6f 74 assword;.protected.$p4Port;.prot
aa7c0 65 63 74 65 64 20 24 70 34 53 74 72 65 61 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 43 6c ected.$p4Stream;.protected.$p4Cl
aa7e0 69 65 6e 74 53 70 65 63 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 44 65 70 6f 74 54 79 70 65 ientSpec;.protected.$p4DepotType
aa800 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 42 72 61 6e 63 68 3b 0a 70 72 6f 74 65 63 74 65 64 ;.protected.$p4Branch;.protected
aa820 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 6e 69 71 75 65 50 65 72 66 .$process;.protected.$uniquePerf
aa840 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 69 6e 64 6f orceClientName;.protected.$windo
aa860 77 73 46 6c 61 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 wsFlag;.protected.$commandResult
aa880 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 ;..protected.$io;..protected.$fi
aa8a0 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e lesystem;..public.function.__con
aa8c0 73 74 72 75 63 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 6f 72 74 2c 20 24 70 61 74 68 struct($repoConfig,.$port,.$path
aa8e0 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 24 69 73 57 ,.ProcessExecutor.$process,.$isW
aa900 69 6e 64 6f 77 73 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 indows,.IOInterface.$io).{.$this
aa920 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 20 3d 20 24 69 73 57 69 6e 64 6f 77 73 3b 0a 24 74 68 69 ->windowsFlag.=.$isWindows;.$thi
aa940 73 2d 3e 70 34 50 6f 72 74 20 3d 20 24 70 6f 72 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 s->p4Port.=.$port;.$this->initia
aa960 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 lizePath($path);.$this->process.
aa980 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 72 =.$process;.$this->initialize($r
aa9a0 65 70 6f 43 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a epoConfig);.$this->io.=.$io;.}..
aa9c0 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 24 72 public.static.function.create($r
aa9e0 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
aaa00 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 Executor.$process,.IOInterface.$
aaa20 69 6f 29 0a 7b 0a 24 69 73 57 69 6e 64 6f 77 73 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f io).{.$isWindows.=.defined('PHP_
aaa40 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 70 65 72 66 6f 72 WINDOWS_VERSION_BUILD');.$perfor
aaa60 63 65 20 3d 20 6e 65 77 20 50 65 72 66 6f 72 63 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 ce.=.new.Perforce($repoConfig,.$
aaa80 70 6f 72 74 2c 20 24 70 61 74 68 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 port,.$path,.$process,.$isWindow
aaaa0 73 2c 20 24 69 6f 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 65 72 66 6f 72 63 65 3b 0a 7d 0a 0a 70 s,.$io);..return.$perforce;.}..p
aaac0 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 65 72 76 65 ublic.static.function.checkServe
aaae0 72 45 78 69 73 74 73 28 24 75 72 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 rExists($url,.ProcessExecutor.$p
aab00 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c rocessExecutor).{.$output.=.null
aab20 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 ;..return.0.===.$processExecutor
aab40 2d 3e 65 78 65 63 75 74 65 28 27 70 34 20 2d 70 20 27 20 2e 20 24 75 72 6c 20 2e 20 27 20 69 6e ->execute('p4.-p.'...$url...'.in
aab60 66 6f 20 2d 73 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 fo.-s',.$output);.}..public.func
aab80 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 0a 7b 0a 24 tion.initialize($repoConfig).{.$
aaba0 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 20 3d this->uniquePerforceClientName.=
aabc0 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c .$this->generateUniquePerforceCl
aabe0 69 65 6e 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 72 65 70 6f 43 6f 6e ientName();.if.(null.==.$repoCon
aac00 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f fig).{.return;.}.if.(isset($repo
aac20 43 6f 6e 66 69 67 5b 27 75 6e 69 71 75 65 5f 70 65 72 66 6f 72 63 65 5f 63 6c 69 65 6e 74 5f 6e Config['unique_perforce_client_n
aac40 61 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 ame'])).{.$this->uniquePerforceC
aac60 6c 69 65 6e 74 4e 61 6d 65 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 6e 69 71 75 65 5f lientName.=.$repoConfig['unique_
aac80 70 65 72 66 6f 72 63 65 5f 63 6c 69 65 6e 74 5f 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 69 66 20 28 69 perforce_client_name'];.}..if.(i
aaca0 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 29 29 20 7b 0a 24 74 sset($repoConfig['depot'])).{.$t
aacc0 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f his->p4Depot.=.$repoConfig['depo
aace0 74 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 t'];.}.if.(isset($repoConfig['br
aad00 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 20 3d 20 24 72 65 anch'])).{.$this->p4Branch.=.$re
aad20 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 poConfig['branch'];.}.if.(isset(
aad40 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 75 73 65 72 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d $repoConfig['p4user'])).{.$this-
aad60 3e 70 34 55 73 65 72 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 75 73 65 72 27 5d 3b >p4User.=.$repoConfig['p4user'];
aad80 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 74 68 69 73 2d .}.else.{.$this->p4User.=.$this-
aada0 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 27 50 34 55 53 45 52 27 29 3b 0a 7d 0a 69 66 20 28 >getP4variable('P4USER');.}.if.(
aadc0 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 64 27 5d 29 isset($repoConfig['p4password'])
aade0 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 20 3d 20 24 72 65 70 6f 43 6f 6e ).{.$this->p4Password.=.$repoCon
aae00 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 64 27 5d 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 fig['p4password'];.}.}..public.f
aae20 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 44 65 70 6f 74 41 6e 64 42 72 61 6e 63 68 unction.initializeDepotAndBranch
aae40 28 24 64 65 70 6f 74 2c 20 24 62 72 61 6e 63 68 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 ($depot,.$branch).{.if.(isset($d
aae60 65 70 6f 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 3d 20 24 64 65 70 6f 74 epot)).{.$this->p4Depot.=.$depot
aae80 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 62 72 61 6e 63 68 29 29 20 7b 0a 24 74 68 69 73 2d ;.}.if.(isset($branch)).{.$this-
aaea0 3e 70 34 42 72 61 6e 63 68 20 3d 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 >p4Branch.=.$branch;.}.}..public
aaec0 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 63 65 .function.generateUniquePerforce
aaee0 43 6c 69 65 6e 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 67 65 74 68 6f 73 74 6e 61 6d ClientName().{.return.gethostnam
aaf00 65 28 29 20 2e 20 22 5f 22 20 2e 20 74 69 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 e()..."_"...time();.}..public.fu
aaf20 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 63 6c nction.cleanupClientSpec().{.$cl
aaf40 69 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 3b 0a 24 74 61 73 6b ient.=.$this->getClient();.$task
aaf60 20 3d 20 27 63 6c 69 65 6e 74 20 2d 64 20 27 20 2e 20 24 63 6c 69 65 6e 74 3b 0a 24 75 73 65 50 .=.'client.-d.'...$client;.$useP
aaf80 34 43 6c 69 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 4Client.=.false;.$command.=.$thi
aafa0 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 24 74 61 73 6b 2c 20 24 75 73 65 s->generateP4Command($task,.$use
aafc0 50 34 43 6c 69 65 6e 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 P4Client);.$this->executeCommand
aafe0 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 63 6c 69 65 6e 74 53 70 65 63 20 3d 20 24 74 68 69 73 2d ($command);.$clientSpec.=.$this-
ab000 3e 67 65 74 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 66 69 6c 65 53 79 73 74 65 6d 20 >getP4ClientSpec();.$fileSystem.
ab020 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 53 =.$this->getFilesystem();.$fileS
ab040 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 28 24 63 6c 69 65 6e 74 53 70 65 63 29 3b 0a 7d 0a 0a 70 ystem->remove($clientSpec);.}..p
ab060 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 43 6f 6d 6d 61 6e 64 rotected.function.executeCommand
ab080 28 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c ($command).{.$this->commandResul
ab0a0 74 20 3d 20 22 22 3b 0a 24 65 78 69 74 5f 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 t.=."";.$exit_code.=.$this->proc
ab0c0 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 63 6f ess->execute($command,.$this->co
ab0e0 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 5f 63 6f 64 65 mmandResult);..return.$exit_code
ab100 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 6c 69 65 6e 74 28 29 ;.}..public.function.getClient()
ab120 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 29 29 20 .{.if.(!isset($this->p4Client)).
ab140 7b 0a 24 63 6c 65 61 6e 53 74 72 65 61 6d 4e 61 6d 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 {.$cleanStreamName.=.str_replace
ab160 28 27 40 27 2c 20 27 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5f 27 2c 20 ('@',.'',.str_replace('/',.'_',.
ab180 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 str_replace('//',.'',.$this->get
ab1a0 53 74 72 65 61 6d 28 29 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 20 3d 20 27 Stream())));.$this->p4Client.=.'
ab1c0 63 6f 6d 70 6f 73 65 72 5f 70 65 72 66 6f 72 63 65 5f 27 20 2e 20 24 74 68 69 73 2d 3e 75 6e 69 composer_perforce_'...$this->uni
ab1e0 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 20 2e 20 27 5f 27 20 2e 20 24 63 quePerforceClientName...'_'...$c
ab200 6c 65 61 6e 53 74 72 65 61 6d 4e 61 6d 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d leanStreamName;.}..return.$this-
ab220 3e 70 34 43 6c 69 65 6e 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e >p4Client;.}..protected.function
ab240 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;
ab260 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 50 61 .}..public.function.initializePa
ab280 74 68 28 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b th($path).{.$this->path.=.$path;
ab2a0 0a 24 66 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 .$fs.=.$this->getFilesystem();.$
ab2c0 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 70 61 74 68 29 fs->ensureDirectoryExists($path)
ab2e0 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 6f 72 74 28 ;.}..protected.function.getPort(
ab300 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 50 6f 72 74 3b 0a 7d 0a 0a 70 75 62 ).{.return.$this->p4Port;.}..pub
ab320 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a lic.function.setStream($stream).
ab340 7b 0a 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 24 69 6e {.$this->p4Stream.=.$stream;.$in
ab360 64 65 78 20 3d 20 73 74 72 72 70 6f 73 28 24 73 74 72 65 61 6d 2c 20 27 2f 27 29 3b 0a 0a 20 69 dex.=.strrpos($stream,.'/');...i
ab380 66 20 28 24 69 6e 64 65 78 20 3e 20 32 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 54 f.($index.>.2).{.$this->p4DepotT
ab3a0 79 70 65 20 3d 20 27 73 74 72 65 61 6d 27 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ype.=.'stream';.}.}..public.func
ab3c0 74 69 6f 6e 20 69 73 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 73 74 72 63 6d 70 tion.isStream().{.return.(strcmp
ab3e0 28 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 54 79 70 65 2c 20 27 73 74 72 65 61 6d 27 29 20 3d ($this->p4DepotType,.'stream').=
ab400 3d 3d 20 30 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 ==.0);.}..public.function.getStr
ab420 65 61 6d 28 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 53 74 72 65 eam().{.if.(!isset($this->p4Stre
ab440 61 6d 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a am)).{.if.($this->isStream()).{.
ab460 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 3e $this->p4Stream.=.'//'...$this->
ab480 70 34 44 65 70 6f 74 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 3b p4Depot...'/'...$this->p4Branch;
ab4a0 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 20 3d 20 27 2f 2f 27 .}.else.{.$this->p4Stream.=.'//'
ab4c0 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ...$this->p4Depot;.}.}..return.$
ab4e0 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 this->p4Stream;.}..public.functi
ab500 6f 6e 20 67 65 74 53 74 72 65 61 6d 57 69 74 68 6f 75 74 4c 61 62 65 6c 28 24 73 74 72 65 61 6d on.getStreamWithoutLabel($stream
ab520 29 0a 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 73 74 72 65 61 6d 2c 20 27 40 27 ).{.$index.=.strpos($stream,.'@'
ab540 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 );.if.($index.===.false).{.retur
ab560 6e 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 73 74 72 n.$stream;.}..return.substr($str
ab580 65 61 6d 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 eam,.0,.$index);.}..public.funct
ab5a0 69 6f 6e 20 67 65 74 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 70 34 63 6c 69 65 6e ion.getP4ClientSpec().{.$p4clien
ab5c0 74 53 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 tSpec.=.$this->path...'/'...$thi
ab5e0 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 27 2e 70 34 2e 73 70 65 63 27 3b 0a 0a 72 65 s->getClient()...'.p4.spec';..re
ab600 74 75 72 6e 20 24 70 34 63 6c 69 65 6e 74 53 70 65 63 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 turn.$p4clientSpec;.}..public.fu
ab620 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getUser().{.return.$this-
ab640 3e 70 34 55 73 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 55 >p4User;.}..public.function.setU
ab660 73 65 72 28 24 75 73 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 75 73 ser($user).{.$this->p4User.=.$us
ab680 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 65 72 79 50 34 55 73 er;.}..public.function.queryP4Us
ab6a0 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 3b 0a 69 66 20 28 73 74 72 er().{.$this->getUser();.if.(str
ab6c0 6c 65 6e 28 24 74 68 69 73 2d 3e 70 34 55 73 65 72 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e len($this->p4User).>.0).{.return
ab6e0 3b 0a 7d 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 ;.}.$this->p4User.=.$this->getP4
ab700 76 61 72 69 61 62 6c 65 28 27 50 34 55 53 45 52 27 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 variable('P4USER');.if.(strlen($
ab720 74 68 69 73 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 this->p4User).>.0).{.return;.}.$
ab740 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 45 this->p4User.=.$this->io->ask('E
ab760 6e 74 65 72 20 50 34 20 55 73 65 72 3a 27 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 nter.P4.User:');.if.($this->wind
ab780 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 74 20 50 34 owsFlag).{.$command.=.'p4.set.P4
ab7a0 55 53 45 52 3d 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a 7d 20 65 6c 73 65 20 7b USER='...$this->p4User;.}.else.{
ab7c0 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 65 78 70 6f 72 74 20 50 34 55 53 45 52 3d 27 20 2e 20 24 .$command.=.'export.P4USER='...$
ab7e0 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f this->p4User;.}.$this->executeCo
ab800 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 mmand($command);.}..protected.fu
ab820 6e 63 74 69 6f 6e 20 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 nction.getP4variable($name).{.if
ab840 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 .($this->windowsFlag).{.$command
ab860 20 3d 20 27 70 34 20 73 65 74 27 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 .=.'p4.set';.$this->executeComma
ab880 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 69 6d 28 24 74 68 nd($command);.$result.=.trim($th
ab8a0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 is->commandResult);.$resArray.=.
ab8c0 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a 66 6f 72 65 61 explode(PHP_EOL,.$result);.forea
ab8e0 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 66 69 65 6c 64 ch.($resArray.as.$line).{.$field
ab900 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3d 27 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 73 74 72 s.=.explode('=',.$line);.if.(str
ab920 63 6d 70 28 24 6e 61 6d 65 2c 20 24 66 69 65 6c 64 73 5b 30 5d 29 20 3d 3d 20 30 29 20 7b 0a 24 cmp($name,.$fields[0]).==.0).{.$
ab940 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 66 69 65 6c 64 73 5b 31 5d 2c 20 27 20 27 29 3b index.=.strpos($fields[1],.'.');
ab960 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 76 61 6c 75 65 20 .if.($index.===.false).{.$value.
ab980 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 6c 75 65 20 3d 20 =.$fields[1];.}.else.{.$value.=.
ab9a0 73 75 62 73 74 72 28 24 66 69 65 6c 64 73 5b 31 5d 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 7d substr($fields[1],.0,.$index);.}
ab9c0 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 .$value.=.trim($value);..return.
ab9e0 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 $value;.}.}.}.else.{.$command.=.
aba00 27 65 63 68 6f 20 24 27 20 2e 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 'echo.$'...$name;.$this->execute
aba20 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 69 Command($command);.$result.=.tri
aba40 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 0a 72 65 74 75 72 6e m($this->commandResult);..return
aba60 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 .$result;.}.}..public.function.q
aba80 75 65 72 79 50 34 50 61 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 ueryP4Password().{.if.(isset($th
abaa0 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d is->p4Password)).{.return.$this-
abac0 3e 70 34 50 61 73 73 77 6f 72 64 3b 0a 7d 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 >p4Password;.}.$password.=.$this
abae0 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 27 50 34 50 41 53 53 57 44 27 29 3b 0a 69 66 20 ->getP4variable('P4PASSWD');.if.
abb00 28 73 74 72 6c 65 6e 28 24 70 61 73 73 77 6f 72 64 29 20 3c 3d 20 30 29 20 7b 0a 24 70 61 73 73 (strlen($password).<=.0).{.$pass
abb20 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 word.=.$this->io->askAndHideAnsw
abb40 65 72 28 27 45 6e 74 65 72 20 70 61 73 73 77 6f 72 64 20 66 6f 72 20 50 65 72 66 6f 72 63 65 20 er('Enter.password.for.Perforce.
abb60 75 73 65 72 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 3a 20 27 user.'...$this->getUser()...':.'
abb80 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 20 3d 20 24 70 61 73 73 77 6f );.}.$this->p4Password.=.$passwo
abba0 72 64 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 77 6f 72 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 rd;..return.$password;.}..public
abbc0 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d .function.generateP4Command($com
abbe0 6d 61 6e 64 2c 20 24 75 73 65 43 6c 69 65 6e 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 70 34 43 6f mand,.$useClient.=.true).{.$p4Co
abc00 6d 6d 61 6e 64 20 3d 20 27 70 34 20 27 3b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 mmand.=.'p4.';.$p4Command.=.$p4C
abc20 6f 6d 6d 61 6e 64 20 2e 20 27 2d 75 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 ommand...'-u.'...$this->getUser(
abc40 29 20 2e 20 27 20 27 3b 0a 69 66 20 28 24 75 73 65 43 6c 69 65 6e 74 29 20 7b 0a 24 70 34 43 6f )...'.';.if.($useClient).{.$p4Co
abc60 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 27 2d 63 20 27 20 2e 20 24 74 68 mmand.=.$p4Command...'-c.'...$th
abc80 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 27 20 27 3b 0a 7d 0a 24 70 34 43 6f 6d 6d is->getClient()...'.';.}.$p4Comm
abca0 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 27 2d 70 20 27 20 2e 20 24 74 68 69 73 and.=.$p4Command...'-p.'...$this
abcc0 2d 3e 67 65 74 50 6f 72 74 28 29 20 2e 20 27 20 27 3b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 ->getPort()...'.';.$p4Command.=.
abce0 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 72 65 74 75 72 6e 20 24 $p4Command...$command;..return.$
abd00 70 34 43 6f 6d 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 69 73 p4Command;.}..public.function.is
abd20 4c 6f 67 67 65 64 49 6e 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 LoggedIn().{.$command.=.$this->g
abd40 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 6c 6f 67 69 6e 20 2d 73 27 2c 20 66 61 6c enerateP4Command('login.-s',.fal
abd60 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 74 65 43 se);.$exitCode.=.$this->executeC
abd80 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 29 ommand($command);.if.($exitCode)
abda0 20 7b 0a 24 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 .{.$errorOutput.=.$this->process
abdc0 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 ->getErrorOutput();.$index.=.str
abde0 70 6f 73 28 24 65 72 72 6f 72 4f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 pos($errorOutput,.$this->getUser
abe00 28 29 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e ());.if.($index.===.false).{.$in
abe20 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 65 72 72 6f 72 4f 75 74 70 75 74 2c 20 27 70 34 27 29 dex.=.strpos($errorOutput,.'p4')
abe40 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e ;.if.($index.===.false).{.return
abe60 20 66 61 6c 73 65 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 .false;.}.throw.new.\Exception('
abe80 70 34 20 63 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 70 61 74 68 3a 20 27 20 p4.command.not.found.in.path:.'.
abea0 2e 20 24 65 72 72 6f 72 4f 75 74 70 75 74 29 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 ..$errorOutput);.}.throw.new.\Ex
abec0 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 73 65 72 20 6e 61 6d 65 3a 20 27 20 2e 20 ception('Invalid.user.name:.'...
abee0 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 $this->getUser());.}..return.tru
abf00 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 43 6c 69 e;.}..public.function.connectCli
abf20 65 6e 74 28 29 0a 7b 0a 24 70 34 43 72 65 61 74 65 43 6c 69 65 6e 74 43 6f 6d 6d 61 6e 64 20 3d ent().{.$p4CreateClientCommand.=
abf40 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 63 6c 69 65 6e .$this->generateP4Command('clien
abf60 74 20 2d 69 20 3c 20 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 20 22 2c 20 22 5c 5c 20 t.-i.<.'...str_replace(".",."\\.
abf80 22 2c 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 29 29 3b 0a 24 ",.$this->getP4ClientSpec()));.$
abfa0 74 68 69 73 2d 3e 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 this->executeCommand($p4CreateCl
abfc0 69 65 6e 74 43 6f 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 ientCommand);.}..public.function
abfe0 20 73 79 6e 63 43 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 .syncCodeBase($sourceReference).
ac000 7b 0a 24 70 72 65 76 44 69 72 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 74 68 {.$prevDir.=.getcwd();.chdir($th
ac020 69 73 2d 3e 70 61 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 is->path);.$p4SyncCommand.=.$thi
ac040 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 73 79 6e 63 20 2d 66 20 27 29 s->generateP4Command('sync.-f.')
ac060 3b 0a 69 66 20 28 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 ;.if.(null.!=.$sourceReference).
ac080 7b 0a 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e {.$p4SyncCommand.=.$p4SyncComman
ac0a0 64 20 2e 20 27 40 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 d...'@'...$sourceReference;.}.$t
ac0c0 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 70 34 53 79 6e 63 43 6f 6d 6d 61 his->executeCommand($p4SyncComma
ac0e0 6e 64 29 3b 0a 63 68 64 69 72 28 24 70 72 65 76 44 69 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 nd);.chdir($prevDir);.}..public.
ac100 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 43 6c 69 65 6e 74 53 70 65 63 54 6f 46 69 6c 65 28 24 function.writeClientSpecToFile($
ac120 73 70 65 63 29 0a 7b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 43 6c 69 65 6e 74 3a 20 27 spec).{.fwrite($spec,.'Client:.'
ac140 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 50 48 50 5f 45 4f 4c 20 ...$this->getClient()...PHP_EOL.
ac160 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 55 70 64 61 74 ..PHP_EOL);.fwrite($spec,.'Updat
ac180 65 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 e:.'...date('Y/m/d.H:i:s')...PHP
ac1a0 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 20 27 _EOL...PHP_EOL);.fwrite($spec,.'
ac1c0 41 63 63 65 73 73 3a 20 27 20 2e 20 64 61 74 65 28 27 59 2f 6d 2f 64 20 48 3a 69 3a 73 27 29 20 Access:.'...date('Y/m/d.H:i:s').
ac1e0 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 77 6e 65 72 ..PHP_EOL);.fwrite($spec,.'Owner
ac200 3a 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 50 48 50 5f 45 4f :..'...$this->getUser()...PHP_EO
ac220 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 44 65 73 L...PHP_EOL);.fwrite($spec,.'Des
ac240 63 72 69 70 74 69 6f 6e 3a 27 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 cription:'...PHP_EOL);.fwrite($s
ac260 70 65 63 2c 20 27 20 20 43 72 65 61 74 65 64 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 pec,.'..Created.by.'...$this->ge
ac280 74 55 73 65 72 28 29 20 2e 20 27 20 66 72 6f 6d 20 63 6f 6d 70 6f 73 65 72 2e 27 20 2e 20 50 48 tUser()...'.from.composer.'...PH
ac2a0 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 20 P_EOL...PHP_EOL);.fwrite($spec,.
ac2c0 27 52 6f 6f 74 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 28 29 20 2e 20 50 48 'Root:.'...$this->getPath()...PH
ac2e0 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 20 P_EOL...PHP_EOL);.fwrite($spec,.
ac300 27 4f 70 74 69 6f 6e 73 3a 20 20 6e 6f 61 6c 6c 77 72 69 74 65 20 6e 6f 63 6c 6f 62 62 65 72 20 'Options:..noallwrite.noclobber.
ac320 6e 6f 63 6f 6d 70 72 65 73 73 20 75 6e 6c 6f 63 6b 65 64 20 6d 6f 64 74 69 6d 65 20 72 6d 64 69 nocompress.unlocked.modtime.rmdi
ac340 72 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 r'...PHP_EOL...PHP_EOL);.fwrite(
ac360 24 73 70 65 63 2c 20 27 53 75 62 6d 69 74 4f 70 74 69 6f 6e 73 3a 20 20 72 65 76 65 72 74 75 6e $spec,.'SubmitOptions:..revertun
ac380 63 68 61 6e 67 65 64 27 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 changed'...PHP_EOL...PHP_EOL);.f
ac3a0 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 4c 69 6e 65 45 6e 64 3a 20 20 6c 6f 63 61 6c 27 20 2e write($spec,.'LineEnd:..local'..
ac3c0 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e .PHP_EOL...PHP_EOL);.if.($this->
ac3e0 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 53 74 72 isStream()).{.fwrite($spec,.'Str
ac400 65 61 6d 3a 27 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 eam:'...PHP_EOL);.fwrite($spec,.
ac420 27 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 57 69 74 68 6f 75 74 4c 61 '..'...$this->getStreamWithoutLa
ac440 62 65 6c 28 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 29 20 2e 20 50 48 50 5f 45 4f 4c 29 3b bel($this->p4Stream)...PHP_EOL);
ac460 0a 7d 20 65 6c 73 65 20 7b 0a 66 77 72 69 74 65 28 0a 24 73 70 65 63 2c 0a 27 56 69 65 77 3a 20 .}.else.{.fwrite(.$spec,.'View:.
ac480 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 20 2e 20 27 2f 2e 2e 2e 20 .'...$this->getStream()...'/....
ac4a0 20 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 27 2f 2e 2e .//'...$this->getClient()...'/..
ac4c0 2e 20 27 20 2e 20 50 48 50 5f 45 4f 4c 0a 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..'...PHP_EOL.);.}.}..public.fun
ac4e0 63 74 69 6f 6e 20 77 72 69 74 65 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 63 6c 69 ction.writeP4ClientSpec().{.$cli
ac500 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 65 6e 74 53 70 65 63 entSpec.=.$this->getP4ClientSpec
ac520 28 29 3b 0a 24 73 70 65 63 20 3d 20 66 6f 70 65 6e 28 24 63 6c 69 65 6e 74 53 70 65 63 2c 20 27 ();.$spec.=.fopen($clientSpec,.'
ac540 77 27 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 43 6c 69 65 6e 74 53 70 65 w');.try.{.$this->writeClientSpe
ac560 63 54 6f 46 69 6c 65 28 24 73 70 65 63 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 cToFile($spec);.}.catch.(\Except
ac580 69 6f 6e 20 24 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 73 70 65 63 29 3b 0a 74 68 72 6f 77 20 24 ion.$e).{.fclose($spec);.throw.$
ac5a0 65 3b 0a 7d 0a 66 63 6c 6f 73 65 28 24 73 70 65 63 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 e;.}.fclose($spec);.}..protected
ac5c0 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 70 69 70 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 .function.read($pipe,.$name).{.i
ac5e0 66 20 28 66 65 6f 66 28 24 70 69 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6c 69 6e f.(feof($pipe)).{.return;.}.$lin
ac600 65 20 3d 20 66 67 65 74 73 28 24 70 69 70 65 29 3b 0a 77 68 69 6c 65 20 28 24 6c 69 6e 65 20 21 e.=.fgets($pipe);.while.($line.!
ac620 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 70 69 70 65 29 3b =.false).{.$line.=.fgets($pipe);
ac640 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 .}..return;.}..public.function.w
ac660 69 6e 64 6f 77 73 4c 6f 67 69 6e 28 24 70 61 73 73 77 6f 72 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e indowsLogin($password).{.$comman
ac680 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 6c d.=.$this->generateP4Command('.l
ac6a0 6f 67 69 6e 20 2d 61 27 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 ogin.-a');.$process.=.new.Proces
ac6c0 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 70 61 73 73 77 6f 72 s($command,.null,.null,.$passwor
ac6e0 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 0a d);..return.$process->run();.}..
ac700 70 75 62 6c 69 63 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 public.function.p4Login().{.$thi
ac720 73 2d 3e 71 75 65 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 s->queryP4User();.if.(!$this->is
ac740 4c 6f 67 67 65 64 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 LoggedIn()).{.$password.=.$this-
ac760 3e 71 75 65 72 79 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 >queryP4Password();.if.($this->w
ac780 69 6e 64 6f 77 73 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 indowsFlag).{.$this->windowsLogi
ac7a0 6e 28 24 70 61 73 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 n($password);.}.else.{.$command.
ac7c0 3d 20 27 65 63 68 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 =.'echo.'...$password...'.|.'...
ac7e0 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 6c 6f 67 69 6e $this->generateP4Command('.login
ac800 20 2d 61 27 2c 20 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 .-a',.false);.$exitCode.=.$this-
ac820 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 65 73 75 >executeCommand($command);.$resu
ac840 6c 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b lt.=.trim($this->commandResult);
ac860 0a 69 66 20 28 24 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 .if.($exitCode).{.throw.new.\Exc
ac880 65 70 74 69 6f 6e 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 eption("Error.logging.in:"...$th
ac8a0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a is->process->getErrorOutput());.
ac8c0 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 }.}.}.}..public.function.getComp
ac8e0 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 oserInformation($identifier).{.$
ac900 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 40 27 29 index.=.strpos($identifier,.'@')
ac920 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 63 6f 6d 70 6f ;.if.($index.===.false).{.$compo
ac940 73 65 72 4a 73 6f 6e 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 2e 20 27 2f 63 6f 6d 70 6f 73 65 serJson.=.$identifier..'/compose
ac960 72 2e 6a 73 6f 6e 27 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f r.json';..return.$this->getCompo
ac980 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 73 65 72 serInformationFromPath($composer
ac9a0 4a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f Json);.}..return.$this->getCompo
ac9c0 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e 74 69 66 serInformationFromLabel($identif
ac9e0 69 65 72 2c 20 24 69 6e 64 65 78 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ier,.$index);.}..public.function
aca00 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 28 .getComposerInformationFromPath(
aca20 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 $composerJson).{.$command.=.$thi
aca40 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 70 72 69 6e 74 20 27 20 2e s->generateP4Command('.print.'..
aca60 20 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 .$composerJson);.$this->executeC
aca80 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 24 74 68 69 ommand($command);.$result.=.$thi
acaa0 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f s->commandResult;.$index.=.strpo
acac0 73 28 24 72 65 73 75 6c 74 2c 20 27 7b 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 s($result,.'{');.if.($index.===.
acae0 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 69 66 20 28 24 69 6e 64 65 78 false).{.return.'';.}.if.($index
acb00 20 3e 3d 20 30 29 20 7b 0a 24 72 61 77 44 61 74 61 20 3d 20 73 75 62 73 74 72 28 24 72 65 73 75 .>=.0).{.$rawData.=.substr($resu
acb20 6c 74 2c 20 24 69 6e 64 65 78 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 20 3d 20 6a 73 lt,.$index);.$composer_info.=.js
acb40 6f 6e 5f 64 65 63 6f 64 65 28 24 72 61 77 44 61 74 61 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 on_decode($rawData,.true);..retu
acb60 72 6e 20 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 27 3b rn.$composer_info;.}..return.'';
acb80 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 .}..public.function.getComposerI
acba0 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e 74 69 66 69 65 72 2c nformationFromLabel($identifier,
acbc0 20 24 69 6e 64 65 78 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 20 3d 20 73 .$index).{.$composerJsonPath.=.s
acbe0 75 62 73 74 72 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 30 2c 20 24 69 6e 64 65 78 29 20 2e 20 ubstr($identifier,.0,.$index)...
acc00 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 2e 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 '/composer.json'...substr($ident
acc20 69 66 69 65 72 2c 20 24 69 6e 64 65 78 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 ifier,.$index);.$command.=.$this
acc40 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 66 69 6c 65 73 20 27 20 2e 20 ->generateP4Command('.files.'...
acc60 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 $composerJsonPath,.false);.$this
acc80 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 65 73 ->executeCommand($command);.$res
acca0 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 69 6e 64 ult.=.$this->commandResult;.$ind
accc0 65 78 32 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 6e 6f 20 73 75 63 68 20 66 ex2.=.strpos($result,.'no.such.f
acce0 69 6c 65 28 73 29 2e 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 32 20 3d 3d 3d 20 66 61 6c 73 65 ile(s).');.if.($index2.===.false
acd00 29 20 7b 0a 24 69 6e 64 65 78 33 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 63 ).{.$index3.=.strpos($result,.'c
acd20 68 61 6e 67 65 27 29 3b 0a 69 66 20 28 21 28 24 69 6e 64 65 78 33 20 3d 3d 3d 20 66 61 6c 73 65 hange');.if.(!($index3.===.false
acd40 29 29 20 7b 0a 24 70 68 72 61 73 65 20 3d 20 74 72 69 6d 28 73 75 62 73 74 72 28 24 72 65 73 75 )).{.$phrase.=.trim(substr($resu
acd60 6c 74 2c 20 24 69 6e 64 65 78 33 29 29 3b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 lt,.$index3));.$fields.=.explode
acd80 28 27 20 27 2c 20 24 70 68 72 61 73 65 29 3b 0a 24 69 64 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d ('.',.$phrase);.$id.=.$fields[1]
acda0 3b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 69 ;.$composerJson.=.substr($identi
acdc0 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 6f 73 65 72 2e 6a 73 fier,.0,.$index)...'/composer.js
acde0 6f 6e 40 27 20 2e 20 24 69 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f on@'...$id;..return.$this->getCo
ace00 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
ace20 73 65 72 4a 73 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 22 3b 0a 7d 0a 0a 70 75 62 serJson);.}.}..return."";.}..pub
ace40 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 24 70 6f lic.function.getBranches().{.$po
ace60 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 24 ssibleBranches.=.array();.if.(!$
ace80 74 68 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 this->isStream()).{.$possibleBra
acea0 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 5d 20 3d 20 24 74 68 69 73 2d 3e nches[$this->p4Branch].=.$this->
acec0 67 65 74 53 74 72 65 61 6d 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d getStream();.}.else.{.$command.=
acee0 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 73 74 72 65 61 .$this->generateP4Command('strea
acf00 6d 73 20 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 2e 20 27 2f 2e 2e 2e 27 ms.//'...$this->p4Depot...'/...'
acf20 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 6d 61 6e );.$this->executeCommand($comman
acf40 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 64 52 65 73 75 d);.$result.=.$this->commandResu
acf60 6c 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c lt;.$resArray.=.explode(PHP_EOL,
acf80 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 72 61 79 20 61 73 .$result);.foreach.($resArray.as
acfa0 20 24 6c 69 6e 65 29 20 7b 0a 24 72 65 73 42 69 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 .$line).{.$resBits.=.explode('.'
acfc0 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 73 42 69 74 73 29 20 3e 20 ,.$line);.if.(count($resBits).>.
acfe0 34 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 4).{.$branch.=.preg_replace('/[^
ad000 41 2d 5a 61 2d 7a 30 2d 39 20 5d 2f 27 2c 20 27 27 2c 20 24 72 65 73 42 69 74 73 5b 34 5d 29 3b A-Za-z0-9.]/',.'',.$resBits[4]);
ad020 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 72 .$possibleBranches[$branch].=.$r
ad040 65 73 42 69 74 73 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 esBits[1];.}.}.}.$command.=.$thi
ad060 73 2d 3e 67 65 6e 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 s->generateP4Command('changes.'.
ad080 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 20 2e 20 27 2f 2e 2e 2e 27 2c 20 66 61 .$this->getStream()...'/...',.fa
ad0a0 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 63 6f 6d lse);.$this->executeCommand($com
ad0c0 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 64 52 mand);.$result.=.$this->commandR
ad0e0 65 73 75 6c 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 esult;.$resArray.=.explode(PHP_E
ad100 4f 4c 2c 20 24 72 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 OL,.$result);.$lastCommit.=.$res
ad120 41 72 72 61 79 5b 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 Array[0];.$lastCommitArr.=.explo
ad140 64 65 28 27 20 27 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 de('.',.$lastCommit);.$lastCommi
ad160 74 4e 75 6d 20 3d 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 tNum.=.$lastCommitArr[1];..$bran
ad180 63 68 65 73 20 3d 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 ches.=.array('master'.=>.$possib
ad1a0 6c 65 42 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 5d 20 2e 20 27 40 leBranches[$this->p4Branch]...'@
ad1c0 27 2e 20 24 6c 61 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 '..$lastCommitNum);..return.$bra
ad1e0 6e 63 68 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 54 61 67 nches;.}..public.function.getTag
ad200 73 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 s().{.$command.=.$this->generate
ad220 50 34 43 6f 6d 6d 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 P4Command('labels');.$this->exec
ad240 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.=.
ad260 24 74 68 69 73 2d 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 $this->commandResult;.$resArray.
ad280 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a 24 74 61 =.explode(PHP_EOL,.$result);.$ta
ad2a0 67 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 73 41 72 72 61 79 gs.=.array();.foreach.($resArray
ad2c0 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 24 6c 69 .as.$line).{.$index.=.strpos($li
ad2e0 6e 65 2c 20 27 4c 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 ne,.'Label');.if.(!($index.===.f
ad300 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 27 2c 20 alse)).{.$fields.=.explode('.',.
ad320 24 6c 69 6e 65 29 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 $line);.$tags[$fields[1]].=.$thi
ad340 73 2d 3e 67 65 74 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 s->getStream()...'@'...$fields[1
ad360 5d 3b 0a 7d 0a 7d 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 ];.}.}..return.$tags;.}..public.
ad380 66 75 6e 63 74 69 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 function.checkStream().{.$comman
ad3a0 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 64 65 d.=.$this->generateP4Command('de
ad3c0 70 6f 74 73 27 2c 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 pots',.false);.$this->executeCom
ad3e0 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-
ad400 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
ad420 6f 64 65 28 50 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 ode(PHP_EOL,.$result);.foreach.(
ad440 24 72 65 73 41 72 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 $resArray.as.$line).{.$index.=.s
ad460 74 72 70 6f 73 28 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 trpos($line,.'Depot');.if.(!($in
ad480 64 65 78 20 3d 3d 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 dex.===.false)).{.$fields.=.expl
ad4a0 6f 64 65 28 27 20 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 ode('.',.$line);.if.(strcmp($thi
ad4c0 73 2d 3e 70 34 44 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 s->p4Depot,.$fields[1]).===.0).{
ad4e0 0a 24 74 68 69 73 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 .$this->p4DepotType.=.$fields[3]
ad500 3b 0a 0a 72 65 74 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 ;..return.$this->isStream();.}.}
ad520 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 20 66 .}..return.false;.}..protected.f
ad540 75 6e 63 74 69 6f 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 unction.getChangeList($reference
ad560 29 0a 7b 0a 24 69 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 ).{.$index.=.strpos($reference,.
ad580 27 40 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 '@');.if.($index.===.false).{.re
ad5a0 74 75 72 6e 3b 0a 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 turn;.}.$label.=.substr($referen
ad5c0 63 65 2c 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 ce,.$index);.$command.=.$this->g
ad5e0 65 6e 65 72 61 74 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 enerateP4Command('.changes.-m1.'
ad600 20 2e 20 24 6c 61 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 ...$label);.$this->executeComman
ad620 64 28 24 63 6f 6d 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 d($command);.$changes.=.$this->c
ad640 6f 6d 6d 61 6e 64 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 ommandResult;.if.(strpos($change
ad660 73 2c 20 27 43 68 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 s,.'Change').!==.0).{.return;.}.
ad680 24 66 69 65 6c 64 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 $fields.=.explode('.',.$changes)
ad6a0 3b 0a 24 63 68 61 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 ;.$changeList.=.$fields[1];..ret
ad6c0 75 72 6e 20 24 63 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 urn.$changeList;.}..public.funct
ad6e0 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 ion.getCommitLogs($fromReference
ad700 2c 20 24 74 6f 52 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 ,.$toReference).{.$fromChangeLis
ad720 74 20 3d 20 24 74 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 t.=.$this->getChangeList($fromRe
ad740 66 65 72 65 6e 63 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 ference);.if.($fromChangeList.==
ad760 20 6e 75 6c 6c 29 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 .null).{.return;.}.$toChangeList
ad780 20 3d 20 24 74 68 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 .=.$this->getChangeList($toRefer
ad7a0 65 6e 63 65 29 3b 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 ence);.if.($toChangeList.==.null
ad7c0 29 20 7b 0a 72 65 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 ).{.return;.}.$index.=.strpos($f
ad7e0 72 6f 6d 52 65 66 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 romReference,.'@');.$main.=.subs
ad800 74 72 28 24 66 72 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 tr($fromReference,.0,.$index)...
ad820 27 2f 2e 2e 2e 27 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 '/...';.$command.=.$this->genera
ad840 74 65 50 34 43 6f 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 teP4Command('filelog.'...$main..
ad860 20 27 40 27 20 2e 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 .'@'...$fromChangeList..','...$t
ad880 6f 43 68 61 6e 67 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 oChangeList);.$this->executeComm
ad8a0 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 3e and($command);.$result.=.$this->
ad8c0 63 6f 6d 6d 61 6e 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 commandResult;..return.$result;.
ad8e0 7d 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 79 73 74 65 6d }..public.function.getFilesystem
ad900 28 29 0a 7b 0a 69 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 ().{.if.(empty($this->filesystem
ad920 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c )).{.$this->filesystem.=.new.Fil
ad940 65 73 79 73 74 65 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 esystem($this->process);.}..retu
ad960 72 6e 20 24 74 68 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 rn.$this->filesystem;.}..public.
ad980 66 75 6e 63 74 69 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 function.setFilesystem(Filesyste
ad9a0 6d 20 24 66 73 29 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 m.$fs).{.$this->filesystem.=.$fs
ad9c0 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
ad9e0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d .Composer\Util;..use.Symfony\Com
ada00 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 79 6d 66 ponent\Process\Process;.use.Symf
ada20 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 55 74 69 ony\Component\Process\ProcessUti
ada40 6c 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b ls;.use.Composer\IO\IOInterface;
ada60 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 0a 7b 0a 70 72 6f .....class.ProcessExecutor.{.pro
ada80 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 33 30 30 3b 0a 0a 70 tected.static.$timeout.=.300;..p
adaa0 72 6f 74 65 63 74 65 64 20 24 63 61 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 rotected.$captureOutput;.protect
adac0 65 64 20 24 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a ed.$errorOutput;.protected.$io;.
adae0 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
adb00 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 3e 69 6f nterface.$io.=.null).{.$this->io
adb20 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .=.$io;.}...........public.funct
adb40 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 26 24 6f 75 74 70 75 74 20 3d ion.execute($command,.&$output.=
adb60 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d .null,.$cwd.=.null).{.if.($this-
adb80 3e 69 6f 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 >io.&&.$this->io->isDebug()).{.$
adba0 73 61 66 65 43 6f 6d 6d 61 6e 64 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3a 2f safeCommand.=.preg_replace('{(:/
adbc0 2f 5b 5e 3a 2f 5c 73 5d 2b 3a 29 5b 5e 40 5c 73 2f 5d 2b 7d 69 27 2c 20 27 24 31 2a 2a 2a 2a 27 /[^:/\s]+:)[^@\s/]+}i',.'$1****'
adbe0 2c 20 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 ,.$command);.$this->io->writeErr
adc00 6f 72 28 27 45 78 65 63 75 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 28 27 2e 28 24 63 77 64 20 3f or('Executing.command.('.($cwd.?
adc20 3a 20 27 43 57 44 27 29 2e 27 29 3a 20 27 2e 24 73 61 66 65 43 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a :.'CWD').'):.'.$safeCommand);.}.
adc40 0a 0a 20 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 77 64 20 26 26 20 64 65 66 69 6e 65 .....if.(null.===.$cwd.&&.define
adc60 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 d('PHP_WINDOWS_VERSION_BUILD').&
adc80 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 27 67 69 &.false.!==.strpos($command,.'gi
adca0 74 27 29 20 26 26 20 67 65 74 63 77 64 28 29 29 20 7b 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 t').&&.getcwd()).{.$cwd.=.realpa
adcc0 74 68 28 67 65 74 63 77 64 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f th(getcwd());.}..$this->captureO
adce0 75 74 70 75 74 20 3d 20 63 6f 75 6e 74 28 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 29 20 3e utput.=.count(func_get_args()).>
add00 20 31 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 .1;.$this->errorOutput.=.null;.$
add20 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 process.=.new.Process($command,.
add40 24 63 77 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d $cwd,.null,.null,.static::getTim
add60 65 6f 75 74 28 29 29 3b 0a 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c eout());..$callback.=.is_callabl
add80 65 28 24 6f 75 74 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 e($output).?.$output.:.array($th
adda0 69 73 2c 20 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e is,.'outputHandler');.$process->
addc0 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 run($callback);..if.($this->capt
adde0 75 72 65 4f 75 74 70 75 74 20 26 26 20 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 ureOutput.&&.!is_callable($outpu
ade00 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 t)).{.$output.=.$process->getOut
ade20 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 put();.}..$this->errorOutput.=.$
ade40 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 process->getErrorOutput();..retu
ade60 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 rn.$process->getExitCode();.}..p
ade80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 ublic.function.splitLines($outpu
adea0 74 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 0a 72 t).{.$output.=.trim($output);..r
adec0 65 74 75 72 6e 20 28 28 73 74 72 69 6e 67 29 20 24 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 20 eturn.((string).$output.===.'').
adee0 3f 20 61 72 72 61 79 28 29 20 3a 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 ?.array().:.preg_split('{\r?\n}'
adf00 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ,.$output);.}.......public.funct
adf20 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ion.getErrorOutput().{.return.$t
adf40 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->errorOutput;.}..public.func
adf60 74 69 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 tion.outputHandler($type,.$buffe
adf80 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 7b r).{.if.($this->captureOutput).{
adfa0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 65 63 68 6f 20 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 .return;.}..echo.$buffer;.}..pub
adfc0 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 lic.static.function.getTimeout()
adfe0 0a 7b 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 .{.return.static::$timeout;.}..p
ae000 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 ublic.static.function.setTimeout
ae020 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d 20 ($timeout).{.static::$timeout.=.
ae040 24 74 69 6d 65 6f 75 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 $timeout;.}.........public.stati
ae060 63 20 66 75 6e 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 c.function.escape($argument).{.r
ae080 65 74 75 72 6e 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 eturn.ProcessUtils::escapeArgume
ae0a0 6e 74 28 24 61 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 nt($argument);.}.}.<?php........
ae0c0 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 75 73 ....namespace.Composer\Util;..us
ae0e0 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 65 e.Composer\Composer;.use.Compose
ae100 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 49 6e 74 65 r\Config;.use.Composer\IO\IOInte
ae120 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 rface;.use.Composer\Downloader\T
ae140 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 ransportException;.......class.R
ae160 65 6d 6f 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 emoteFilesystem.{.private.$io;.p
ae180 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 62 79 74 65 73 4d 61 rivate.$config;.private.$bytesMa
ae1a0 78 3b 0a 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 x;.private.$originUrl;.private.$
ae1c0 66 69 6c 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 fileUrl;.private.$fileName;.priv
ae1e0 61 74 65 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 ate.$retry;.private.$progress;.p
ae200 72 69 76 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 rivate.$lastProgress;.private.$o
ae220 70 74 69 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 ptions;.private.$retryAuthFailur
ae240 65 3b 0a 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 e;.private.$lastHeaders;.private
ae260 20 24 73 74 6f 72 65 41 75 74 68 3b 0a 70 72 69 76 61 74 65 20 24 64 65 67 72 61 64 65 64 4d 6f .$storeAuth;.private.$degradedMo
ae280 64 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 de.=.false;.........public.funct
ae2a0 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,
ae2c0 20 43 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 .Config.$config.=.null,.array.$o
ae2e0 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 69 6f 20 3d 20 ptions.=.array()).{.$this->io.=.
ae300 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 $io;.$this->config.=.$config;.$t
ae320 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a his->options.=.$options;.}......
ae340 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 .......public.function.copy($ori
ae360 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 ginUrl,.$fileUrl,.$fileName,.$pr
ae380 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 ogress.=.true,.$options.=.array(
ae3a0 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 )).{.return.$this->get($originUr
ae3c0 6c 2c 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 l,.$fileUrl,.$options,.$fileName
ae3e0 2c 20 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 ,.$progress);.}............publi
ae400 63 20 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 c.function.getContents($originUr
ae420 6c 2c 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 l,.$fileUrl,.$progress.=.true,.$
ae440 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 options.=.array()).{.return.$thi
ae460 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 s->get($originUrl,.$fileUrl,.$op
ae480 74 69 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a tions,.null,.$progress);.}......
ae4a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a .public.function.getOptions().{.
ae4c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 return.$this->options;.}.......p
ae4e0 75 62 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 ublic.function.getLastHeaders().
ae500 7b 0a 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 {.return.$this->lastHeaders;.}..
ae520 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 6e ..............protected.function
ae540 20 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 61 64 64 69 .get($originUrl,.$fileUrl,.$addi
ae560 74 69 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 tionalOptions.=.array(),.$fileNa
ae580 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 me.=.null,.$progress.=.true).{.i
ae5a0 66 20 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 f.(strpos($originUrl,.'.github.c
ae5c0 6f 6d 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 om').===.(strlen($originUrl).-.1
ae5e0 31 29 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 1)).{.$originUrl.=.'github.com';
ae600 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 63 68 65 6d 65 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 66 .}..$this->scheme.=.parse_url($f
ae620 69 6c 65 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 4d 45 29 3b 0a 24 74 68 69 73 2d 3e ileUrl,.PHP_URL_SCHEME);.$this->
ae640 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d bytesMax.=.0;.$this->originUrl.=
ae660 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 3d 20 24 66 .$originUrl;.$this->fileUrl.=.$f
ae680 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 20 3d 20 24 66 69 6c 65 4e ileUrl;.$this->fileName.=.$fileN
ae6a0 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 ame;.$this->progress.=.$progress
ae6c0 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 ;.$this->lastProgress.=.null;.$t
ae6e0 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 20 3d 20 74 72 75 65 3b 0a 24 74 his->retryAuthFailure.=.true;.$t
ae700 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 his->lastHeaders.=.array();....i
ae720 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 f.(preg_match('{^https?://(.+):(
ae740 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 27 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6d 61 74 63 68 .+)@([^/]+)}i',.$fileUrl,.$match
ae760 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f )).{.$this->io->setAuthenticatio
ae780 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 n($originUrl,.urldecode($match[1
ae7a0 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 0a 69 66 ]),.urldecode($match[2]));.}..if
ae7c0 20 28 69 73 73 65 74 28 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 5b 27 72 65 74 72 .(isset($additionalOptions['retr
ae7e0 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 74 72 y-auth-failure'])).{.$this->retr
ae800 79 41 75 74 68 46 61 69 6c 75 72 65 20 3d 20 28 62 6f 6f 6c 29 20 24 61 64 64 69 74 69 6f 6e 61 yAuthFailure.=.(bool).$additiona
ae820 6c 4f 70 74 69 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 3b 0a lOptions['retry-auth-failure'];.
ae840 0a 75 6e 73 65 74 28 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 5b 27 72 65 74 72 79 .unset($additionalOptions['retry
ae860 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 -auth-failure']);.}..$options.=.
ae880 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 $this->getOptionsForUrl($originU
ae8a0 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 74 rl,.$additionalOptions);..if.($t
ae8c0 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 6f 2d his->io->isDebug()).{.$this->io-
ae8e0 3e 77 72 69 74 65 45 72 72 6f 72 28 28 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c >writeError((substr($fileUrl,.0,
ae900 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 20 3f 20 27 44 6f 77 6e 6c 6f 61 64 69 6e 67 20 27 20 .4).===.'http'.?.'Downloading.'.
ae920 3a 20 27 52 65 61 64 69 6e 67 20 27 29 20 2e 20 24 66 69 6c 65 55 72 6c 29 3b 0a 7d 0a 0a 69 66 :.'Reading.')...$fileUrl);.}..if
ae940 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d .(isset($options['github-token']
ae960 29 29 20 7b 0a 24 66 69 6c 65 55 72 6c 20 2e 3d 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 )).{.$fileUrl..=.(false.===.strp
ae980 6f 73 28 24 66 69 6c 65 55 72 6c 2c 20 27 3f 27 29 20 3f 20 27 3f 27 20 3a 20 27 26 27 29 20 2e os($fileUrl,.'?').?.'?'.:.'&')..
ae9a0 20 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 3d 27 2e 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 .'access_token='.$options['githu
ae9c0 62 2d 74 6f 6b 65 6e 27 5d 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 b-token'];.unset($options['githu
ae9e0 62 2d 74 6f 6b 65 6e 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 b-token']);.}..if.(isset($option
aea00 73 5b 27 67 69 74 6c 61 62 2d 74 6f 6b 65 6e 27 5d 29 29 20 7b 0a 24 66 69 6c 65 55 72 6c 20 2e s['gitlab-token'])).{.$fileUrl..
aea20 3d 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 66 69 6c 65 55 72 6c 2c 20 27 3f =.(false.===.strpos($fileUrl,.'?
aea40 27 29 20 3f 20 27 3f 27 20 3a 20 27 26 27 29 20 2e 20 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 3d ').?.'?'.:.'&')...'access_token=
aea60 27 2e 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 6c 61 62 2d 74 6f 6b 65 6e 27 5d 3b 0a 75 6e 73 65 '.$options['gitlab-token'];.unse
aea80 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 6c 61 62 2d 74 6f 6b 65 6e 27 5d 29 3b 0a 7d 0a 0a t($options['gitlab-token']);.}..
aeaa0 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 29 29 20 7b 0a 24 if.(isset($options['http'])).{.$
aeac0 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 69 67 6e 6f 72 65 5f 65 72 72 6f 72 73 27 5d options['http']['ignore_errors']
aeae0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d .=.true;.}..if.($this->degradedM
aeb00 6f 64 65 20 26 26 20 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 32 31 29 20 3d ode.&&.substr($fileUrl,.0,.21).=
aeb20 3d 3d 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 27 29 20 7b 0a 0a 20 ==.'http://packagist.org/').{...
aeb40 24 66 69 6c 65 55 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 27 20 2e 20 67 65 74 68 6f 73 74 62 79 $fileUrl.=.'http://'...gethostby
aeb60 6e 61 6d 65 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 29 20 2e 20 73 75 62 73 74 72 28 24 name('packagist.org')...substr($
aeb80 66 69 6c 65 55 72 6c 2c 20 32 30 29 3b 0a 7d 0a 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f fileUrl,.20);.}..$ctx.=.StreamCo
aeba0 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 66 69 6c 65 55 72 ntextFactory::getContext($fileUr
aebc0 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e l,.$options,.array('notification
aebe0 27 20 3d 3e 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 '.=>.array($this,.'callbackGet')
aec00 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 ));..if.($this->progress).{.$thi
aec20 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 s->io->writeError("....Downloadi
aec40 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 43 6f 6e 6e 65 63 74 69 6e 67 2e 2e 2e 3c 2f 63 6f 6d 6d ng:.<comment>Connecting...</comm
aec60 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 ent>",.false);.}..$errorMessage.
aec80 3d 20 27 27 3b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 30 3b 0a 24 72 65 73 75 6c 74 20 3d 20 =.'';.$errorCode.=.0;.$result.=.
aeca0 66 61 6c 73 65 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f false;.set_error_handler(functio
aecc0 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 n.($code,.$msg).use.(&$errorMess
aece0 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 age).{.if.($errorMessage).{.$err
aed00 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 orMessage..=."\n";.}.$errorMessa
aed20 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 67 65 74 5f 63 ge..=.preg_replace('{^file_get_c
aed40 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d ontents\(.*?\):.}',.'',.$msg);.}
aed60 29 3b 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 );.try.{.$result.=.file_get_cont
aed80 65 6e 74 73 28 24 66 69 6c 65 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 7d 20 63 ents($fileUrl,.false,.$ctx);.}.c
aeda0 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e atch.(\Exception.$e).{.if.($e.in
aedc0 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 stanceof.TransportException.&&.!
aede0 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 empty($http_response_header[0]))
aee00 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 .{.$e->setHeaders($http_response
aee20 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 _header);.}.if.($e.instanceof.Tr
aee40 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 72 65 73 75 6c 74 20 21 3d 3d 20 ansportException.&&.$result.!==.
aee60 66 61 6c 73 65 29 20 7b 0a 24 65 2d 3e 73 65 74 52 65 73 70 6f 6e 73 65 28 24 72 65 73 75 6c 74 false).{.$e->setResponse($result
aee80 29 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 65 72 72 );.}.$result.=.false;.}.if.($err
aeea0 6f 72 4d 65 73 73 61 67 65 20 26 26 20 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c orMessage.&&.!ini_get('allow_url
aeec0 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 61 6c 6c _fopen')).{.$errorMessage.=.'all
aeee0 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 6d 75 73 74 20 62 65 20 65 6e 61 62 6c 65 64 20 69 6e 20 ow_url_fopen.must.be.enabled.in.
aef00 70 68 70 2e 69 6e 69 20 28 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2e 27 29 27 3b 0a 7d 0a php.ini.('.$errorMessage.')';.}.
aef20 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 69 73 73 restore_error_handler();.if.(iss
aef40 65 74 28 24 65 29 20 26 26 20 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 69 66 20 28 21 et($e).&&.!$this->retry).{.if.(!
aef60 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d $this->degradedMode.&&.false.!==
aef80 20 73 74 72 70 6f 73 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 4f 70 65 72 61 .strpos($e->getMessage(),.'Opera
aefa0 74 69 6f 6e 20 74 69 6d 65 64 20 6f 75 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 67 72 61 tion.timed.out')).{.$this->degra
aefc0 64 65 64 4d 6f 64 65 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 dedMode.=.true;.$this->io->write
aefe0 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 3c 65 72 72 6f 72 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 Error(array(.'<error>'.$e->getMe
af000 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 2c 0a 27 3c 65 72 72 6f 72 3e 52 65 74 72 ssage().'</error>',.'<error>Retr
af020 79 69 6e 67 20 77 69 74 68 20 64 65 67 72 61 64 65 64 20 6d 6f 64 65 2c 20 63 68 65 63 6b 20 68 ying.with.degraded.mode,.check.h
af040 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 63 ttps://getcomposer.org/doc/artic
af060 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 64 65 67 72 61 64 65 64 2d les/troubleshooting.md#degraded-
af080 6d 6f 64 65 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 3c 2f 65 72 72 6f 72 3e 27 2c 0a 29 29 3b mode.for.more.info</error>',.));
af0a0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 ..return.$this->get($this->origi
af0c0 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 nUrl,.$this->fileUrl,.$additiona
af0e0 6c 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 lOptions,.$this->fileName,.$this
af100 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 69 ->progress);.}..throw.$e;.}....i
af120 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b f.(!empty($http_response_header[
af140 30 5d 29 20 26 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 0]).&&.preg_match('{^HTTP/\S+.([
af160 34 35 5d 5c 64 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 45]\d\d)}i',.$http_response_head
af180 65 72 5b 30 5d 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 er[0],.$match)).{.$errorCode.=.$
af1a0 6d 61 74 63 68 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 match[1];.if.(!$this->retry).{.$
af1c0 65 20 3d 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 e.=.new.TransportException('The.
af1e0 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 "'.$this->fileUrl.'".file.could.
af200 6e 6f 74 20 62 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 not.be.downloaded.('.$http_respo
af220 6e 73 65 5f 68 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 nse_header[0].')',.$errorCode);.
af240 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 65 $e->setHeaders($http_response_he
af260 61 64 65 72 29 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 ader);.$e->setResponse($result);
af280 0a 74 68 72 6f 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 .throw.$e;.}.$result.=.false;.}.
af2a0 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 26 26 20 21 24 74 68 69 73 2d 3e .if.($this->progress.&&.!$this->
af2c0 72 65 74 72 79 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 retry).{.$this->io->overwriteErr
af2e0 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 31 30 or("....Downloading:.<comment>10
af300 30 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 72 65 73 75 6c 74 0%</comment>");.}....if.($result
af320 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 20 26 26 20 .&&.extension_loaded('zlib').&&.
af340 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 substr($fileUrl,.0,.4).===.'http
af360 27 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 ').{.$decode.=.false;.foreach.($
af380 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 73 20 24 68 65 61 64 65 72 29 http_response_header.as.$header)
af3a0 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e 74 2d 65 6e 63 .{.if.(preg_match('{^content-enc
af3c0 6f 64 69 6e 67 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a oding:.*gzip.*$}i',.$header)).{.
af3e0 24 64 65 63 6f 64 65 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d $decode.=.true;.}.elseif.(preg_m
af400 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 0a 20 atch('{^HTTP/}i',.$header)).{...
af420 0a 20 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 63 ..$decode.=.false;.}.}..if.($dec
af440 6f 64 65 29 20 7b 0a 74 72 79 20 7b 0a 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 ode).{.try.{.if.(PHP_VERSION_ID.
af460 3e 3d 20 35 30 34 30 30 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 >=.50400).{.$result.=.zlib_decod
af480 65 28 24 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 e($result);.}.else.{...$result.=
af4a0 20 66 69 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 .file_get_contents('compress.zli
af4c0 62 3a 2f 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 b://data:application/octet-strea
af4e0 6d 3b 62 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 m;base64,'.base64_encode($result
af500 29 29 3b 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 ));.}..if.(!$result).{.throw.new
af520 20 54 72 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 .TransportException('Failed.to.d
af540 65 63 6f 64 65 20 7a 6c 69 62 20 73 74 72 65 61 6d 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 ecode.zlib.stream');.}.}.catch.(
af560 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 64 65 67 72 \Exception.$e).{.if.($this->degr
af580 61 64 65 64 4d 6f 64 65 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e adedMode).{.throw.$e;.}..$this->
af5a0 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e degradedMode.=.true;.$this->io->
af5c0 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 writeError(array(.'<error>Failed
af5e0 20 74 6f 20 64 65 63 6f 64 65 20 72 65 73 70 6f 6e 73 65 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 .to.decode.response:.'.$e->getMe
af600 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 2c 0a 27 3c 65 72 72 6f 72 3e 52 65 74 72 ssage().'</error>',.'<error>Retr
af620 79 69 6e 67 20 77 69 74 68 20 64 65 67 72 61 64 65 64 20 6d 6f 64 65 2c 20 63 68 65 63 6b 20 68 ying.with.degraded.mode,.check.h
af640 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 63 ttps://getcomposer.org/doc/artic
af660 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 64 65 67 72 61 64 65 64 2d les/troubleshooting.md#degraded-
af680 6d 6f 64 65 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 3c 2f 65 72 72 6f 72 3e 27 2c 0a 29 29 3b mode.for.more.info</error>',.));
af6a0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 ..return.$this->get($this->origi
af6c0 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 nUrl,.$this->fileUrl,.$additiona
af6e0 6c 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 lOptions,.$this->fileName,.$this
af700 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 ->progress);.}.}.}....if.(false.
af720 21 3d 3d 20 24 72 65 73 75 6c 74 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 66 69 6c 65 4e 61 6d !==.$result.&&.null.!==.$fileNam
af740 65 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 e).{.if.(''.===.$result).{.throw
af760 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 .new.TransportException('"'.$thi
af780 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 61 70 70 65 61 72 73 20 62 72 6f 6b 65 6e 2c 20 61 6e s->fileUrl.'".appears.broken,.an
af7a0 64 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 6d 70 74 79 20 32 30 30 20 72 65 73 70 6f 6e 73 65 d.returned.an.empty.200.response
af7c0 27 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 73 65 74 5f 65 ');.}..$errorMessage.=.'';.set_e
af7e0 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d rror_handler(function.($code,.$m
af800 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 sg).use.(&$errorMessage).{.if.($
af820 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d errorMessage).{.$errorMessage..=
af840 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 ."\n";.}.$errorMessage..=.preg_r
af860 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f eplace('{^file_put_contents\(.*?
af880 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 24 72 65 73 75 6c 74 20 3d \):.}',.'',.$msg);.});.$result.=
af8a0 20 28 62 6f 6f 6c 29 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e .(bool).file_put_contents($fileN
af8c0 61 6d 65 2c 20 24 72 65 73 75 6c 74 29 3b 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 6e ame,.$result);.restore_error_han
af8e0 64 6c 65 72 28 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b dler();.if.(false.===.$result).{
af900 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 .throw.new.TransportException('T
af920 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 he."'.$this->fileUrl.'".file.cou
af940 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 ld.not.be.written.to.'.$fileName
af960 2e 27 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 .':.'.$errorMessage);.}.}..if.($
af980 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 66 61 this->retry).{.$this->retry.=.fa
af9a0 6c 73 65 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 lse;..$result.=.$this->get($this
af9c0 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 61 64 ->originUrl,.$this->fileUrl,.$ad
af9e0 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 ditionalOptions,.$this->fileName
afa00 2c 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 0a 24 61 75 74 68 48 65 6c 70 65 72 ,.$this->progress);..$authHelper
afa20 20 3d 20 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 .=.new.AuthHelper($this->io,.$th
afa40 69 73 2d 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 is->config);.$authHelper->storeA
afa60 75 74 68 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 73 74 6f uth($this->originUrl,.$this->sto
afa80 72 65 41 75 74 68 29 3b 0a 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 20 3d 20 66 61 6c 73 reAuth);.$this->storeAuth.=.fals
afaa0 65 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 e;..return.$result;.}..if.(false
afac0 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 65 20 3d 20 6e 65 77 20 54 72 61 6e 73 70 6f .===.$result).{.$e.=.new.Transpo
afae0 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 rtException('The."'.$this->fileU
afb00 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 rl.'".file.could.not.be.download
afb20 65 64 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 65 72 72 6f 72 43 6f 64 65 29 ed:.'.$errorMessage,.$errorCode)
afb40 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 ;.if.(!empty($http_response_head
afb60 65 72 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 er[0])).{.$e->setHeaders($http_r
afb80 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e esponse_header);.}..if.(!$this->
afba0 64 65 67 72 61 64 65 64 4d 6f 64 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 degradedMode.&&.false.!==.strpos
afbc0 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 4f 70 65 72 61 74 69 6f 6e 20 74 69 ($e->getMessage(),.'Operation.ti
afbe0 6d 65 64 20 6f 75 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 med.out')).{.$this->degradedMode
afc00 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 .=.true;.$this->io->writeError(a
afc20 72 72 61 79 28 0a 27 3c 65 72 72 6f 72 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 rray(.'<error>'.$e->getMessage()
afc40 2e 27 3c 2f 65 72 72 6f 72 3e 27 2c 0a 27 3c 65 72 72 6f 72 3e 52 65 74 72 79 69 6e 67 20 77 69 .'</error>',.'<error>Retrying.wi
afc60 74 68 20 64 65 67 72 61 64 65 64 20 6d 6f 64 65 2c 20 63 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f th.degraded.mode,.check.https://
afc80 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f getcomposer.org/doc/articles/tro
afca0 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 64 65 67 72 61 64 65 64 2d 6d 6f 64 65 20 66 6f ubleshooting.md#degraded-mode.fo
afcc0 72 20 6d 6f 72 65 20 69 6e 66 6f 3c 2f 65 72 72 6f 72 3e 27 2c 0a 29 29 3b 0a 0a 72 65 74 75 72 r.more.info</error>',.));..retur
afce0 6e 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 72 6c 2c 20 24 n.$this->get($this->originUrl,.$
afd00 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 70 74 69 6f 6e this->fileUrl,.$additionalOption
afd20 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 70 72 6f 67 72 s,.$this->fileName,.$this->progr
afd40 65 73 73 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 74 79 ess);.}..throw.$e;.}..if.(!empty
afd60 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 24 74 ($http_response_header[0])).{.$t
afd80 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 6e 73 his->lastHeaders.=.$http_respons
afda0 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 0a 0a e_header;.}..return.$result;.}..
afdc0 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 61 ...........protected.function.ca
afde0 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 73 65 llbackGet($notificationCode,.$se
afe00 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 2c 20 verity,.$message,.$messageCode,.
afe20 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 7b 0a $bytesTransferred,.$bytesMax).{.
afe40 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 61 73 switch.($notificationCode).{.cas
afe60 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 69 66 20 28 34 30 30 e.STREAM_NOTIFY_FAILURE:.if.(400
afe80 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 20 6e .===.$messageCode).{.....throw.n
afea0 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 22 54 68 65 20 27 22 20 2e 20 ew.TransportException("The.'"...
afec0 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 63 6f 75 6c 64 20 6e 6f $this->fileUrl..."'.URL.could.no
afee0 74 20 62 65 20 61 63 63 65 73 73 65 64 3a 20 22 20 2e 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 65 t.be.accessed:."...$message,.$me
aff00 73 73 61 67 65 43 6f 64 65 29 3b 0a 7d 0a 0a 20 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f ssageCode);.}.....case.STREAM_NO
aff20 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 52 45 44 3a 0a 69 66 20 28 34 30 31 20 3d 3d 3d 20 TIFY_AUTH_REQUIRED:.if.(401.===.
aff40 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 $messageCode).{...if.(!$this->re
aff60 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 tryAuthFailure).{.break;.}..$thi
aff80 73 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 s->promptAuthAndRetry($messageCo
affa0 64 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 de);.}.break;..case.STREAM_NOTIF
affc0 59 5f 41 55 54 48 5f 52 45 53 55 4c 54 3a 0a 69 66 20 28 34 30 33 20 3d 3d 3d 20 24 6d 65 73 73 Y_AUTH_RESULT:.if.(403.===.$mess
affe0 61 67 65 43 6f 64 65 29 20 7b 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 74 72 79 41 75 ageCode).{...if.(!$this->retryAu
b0000 74 68 46 61 69 6c 75 72 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 thFailure).{.break;.}..$this->pr
b0020 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 65 2c 20 24 omptAuthAndRetry($messageCode,.$
b0040 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f message);.}.break;..case.STREAM_
b0060 4e 4f 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e NOTIFY_FILE_SIZE_IS:.if.($this->
b0080 62 79 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 bytesMax.<.$bytesMax).{.$this->b
b00a0 79 74 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 ytesMax.=.$bytesMax;.}.break;..c
b00c0 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 66 20 28 ase.STREAM_NOTIFY_PROGRESS:.if.(
b00e0 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 70 72 $this->bytesMax.>.0.&&.$this->pr
b0100 6f 67 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 ogress).{.$progression.=.round($
b0120 62 79 74 65 73 54 72 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 bytesTransferred./.$this->bytesM
b0140 61 78 20 2a 20 31 30 30 29 3b 0a 0a 69 66 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 ax.*.100);..if.((0.===.$progress
b0160 69 6f 6e 20 25 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 ion.%.5).&&.100.!==.$progression
b0180 20 26 26 20 24 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 .&&.$progression.!==.$this->last
b01a0 50 72 6f 67 72 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 Progress).{.$this->lastProgress.
b01c0 3d 20 24 70 72 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 =.$progression;.$this->io->overw
b01e0 72 69 74 65 45 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 riteError("....Downloading:.<com
b0200 6d 65 6e 74 3e 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 ment>$progression%</comment>",.f
b0220 61 6c 73 65 29 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 alse);.}.}.break;..default:.brea
b0240 6b 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 6f 6d 70 k;.}.}..protected.function.promp
b0260 74 41 75 74 68 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 tAuthAndRetry($httpStatus,.$reas
b0280 6f 6e 20 3d 20 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 on.=.null).{.if.($this->config.&
b02a0 26 20 69 6e 5f 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 &.in_array($this->originUrl,.$th
b02c0 69 73 2d 3e 63 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 is->config->get('github-domains'
b02e0 29 2c 20 74 72 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 ),.true)).{.$message.=."\n".'Cou
b0300 6c 64 20 6e 6f 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 ld.not.fetch.'.$this->fileUrl.',
b0320 20 70 6c 65 61 73 65 20 63 72 65 61 74 65 20 61 20 47 69 74 48 75 62 20 4f 41 75 74 68 20 74 6f .please.create.a.GitHub.OAuth.to
b0340 6b 65 6e 20 27 2e 28 24 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 34 20 3f 20 27 74 6f ken.'.($httpStatus.===.404.?.'to
b0360 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 20 3a 20 27 74 6f 20 67 6f 20 .access.private.repos'.:.'to.go.
b0380 6f 76 65 72 20 74 68 65 20 41 50 49 20 72 61 74 65 20 6c 69 6d 69 74 27 29 3b 0a 24 67 69 74 48 over.the.API.rate.limit');.$gitH
b03a0 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 ubUtil.=.new.GitHub($this->io,.$
b03c0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 6e 75 6c 6c 29 3b 0a 69 66 20 28 21 24 67 69 74 48 75 this->config,.null);.if.(!$gitHu
b03e0 62 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 bUtil->authorizeOAuth($this->ori
b0400 67 69 6e 55 72 6c 29 0a 26 26 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 ginUrl).&&.(!$this->io->isIntera
b0420 63 74 69 76 65 28 29 20 7c 7c 20 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 ctive().||.!$gitHubUtil->authori
b0440 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 zeOAuthInteractively($this->orig
b0460 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 67 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 inUrl,.$message)).).{.throw.new.
b0480 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 TransportException('Could.not.au
b04a0 74 68 65 6e 74 69 63 61 74 65 20 61 67 61 69 6e 73 74 20 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 thenticate.against.'.$this->orig
b04c0 69 6e 55 72 6c 2c 20 34 30 31 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e inUrl,.401);.}.}.elseif.($this->
b04e0 63 6f 6e 66 69 67 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e config.&&.in_array($this->origin
b0500 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 6c 61 62 2d Url,.$this->config->get('gitlab-
b0520 64 6f 6d 61 69 6e 73 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 domains'),.true)).{.$message.=."
b0540 5c 6e 22 2e 27 43 6f 75 6c 64 20 6e 6f 74 20 66 65 74 63 68 20 27 2e 24 74 68 69 73 2d 3e 66 69 \n".'Could.not.fetch.'.$this->fi
b0560 6c 65 55 72 6c 2e 27 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 27 20 2e 20 24 74 68 69 73 2d 3e 6f leUrl.',.enter.your.'...$this->o
b0580 72 69 67 69 6e 55 72 6c 20 2e 20 27 20 63 72 65 64 65 6e 74 69 61 6c 73 20 27 20 2e 28 24 68 74 riginUrl...'.credentials.'..($ht
b05a0 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 31 20 3f 20 27 74 6f 20 61 63 63 65 73 73 20 70 72 tpStatus.===.401.?.'to.access.pr
b05c0 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
b05e0 50 49 20 72 61 74 65 20 6c 69 6d 69 74 27 29 3b 0a 24 67 69 74 4c 61 62 55 74 69 6c 20 3d 20 6e PI.rate.limit');.$gitLabUtil.=.n
b0600 65 77 20 47 69 74 4c 61 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.GitLab($this->io,.$this->conf
b0620 69 67 2c 20 6e 75 6c 6c 29 3b 0a 69 66 20 28 21 24 67 69 74 4c 61 62 55 74 69 6c 2d 3e 61 75 74 ig,.null);.if.(!$gitLabUtil->aut
b0640 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).&&
b0660 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().||
b0680 20 21 24 67 69 74 4c 61 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 .!$gitLabUtil->authorizeOAuthInt
b06a0 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 73 63 68 65 6d 65 2c 20 24 74 68 69 73 2d eractively($this->scheme,.$this-
b06c0 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 67 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 >originUrl,.$message)).).{.throw
b06e0 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 43 6f 75 6c 64 20 6e .new.TransportException('Could.n
b0700 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 61 67 61 69 6e 73 74 20 27 2e 24 74 68 69 73 2d ot.authenticate.against.'.$this-
b0720 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 34 30 31 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 >originUrl,.401);.}.}.else.{...i
b0740 66 20 28 24 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 34 29 20 7b 0a 72 65 74 75 72 6e f.($httpStatus.===.404).{.return
b0760 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 ;.}....if.(!$this->io->isInterac
b0780 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 24 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 tive()).{.if.($httpStatus.===.40
b07a0 31 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 1).{.$message.=."The.'"...$this-
b07c0 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 72 65 71 75 69 72 65 64 20 61 75 74 68 65 >fileUrl..."'.URL.required.authe
b07e0 6e 74 69 63 61 74 69 6f 6e 2e 5c 6e 59 6f 75 20 6d 75 73 74 20 62 65 20 75 73 69 6e 67 20 74 68 ntication.\nYou.must.be.using.th
b0800 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6e 73 6f 6c 65 20 74 6f 20 61 75 74 68 65 6e 74 e.interactive.console.to.authent
b0820 69 63 61 74 65 22 3b 0a 7d 0a 69 66 20 28 24 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 icate";.}.if.($httpStatus.===.40
b0840 33 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3).{.$message.=."The.'"...$this-
b0860 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 >fileUrl..."'.URL.could.not.be.a
b0880 63 63 65 73 73 65 64 3a 20 22 20 2e 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e ccessed:."...$reason;.}..throw.n
b08a0 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 ew.TransportException($message,.
b08c0 24 68 74 74 70 53 74 61 74 75 73 29 3b 0a 7d 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d $httpStatus);.}...if.($this->io-
b08e0 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e >hasAuthentication($this->origin
b0900 55 72 6c 29 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 Url)).{.throw.new.TransportExcep
b0920 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 6f 72 20 27 22 tion("Invalid.credentials.for.'"
b0940 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 2c 20 61 62 6f 72 74 69 6e 67 ...$this->fileUrl..."',.aborting
b0960 2e 22 2c 20 24 68 74 74 70 53 74 61 74 75 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e .",.$httpStatus);.}..$this->io->
b0980 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 41 75 74 68 65 6e 74 69 63 61 74 69 overwriteError('....Authenticati
b09a0 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 5f 75 72 6c 28 24 on.required.(<info>'.parse_url($
b09c0 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f this->fileUrl,.PHP_URL_HOST).'</
b09e0 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f info>):');.$username.=.$this->io
b0a00 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 ->ask('......Username:.');.$pass
b0a20 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 word.=.$this->io->askAndHideAnsw
b0a40 65 72 28 27 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 er('......Password:.');.$this->i
b0a60 6f 2d 3e 73 65 74 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 o->setAuthentication($this->orig
b0a80 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 24 74 inUrl,.$username,.$password);.$t
b0aa0 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e his->storeAuth.=.$this->config->
b0ac0 67 65 74 28 27 73 74 6f 72 65 2d 61 75 74 68 73 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 get('store-auths');.}..$this->re
b0ae0 74 72 79 20 3d 20 74 72 75 65 3b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 try.=.true;.throw.new.TransportE
b0b00 78 63 65 70 74 69 6f 6e 28 27 52 45 54 52 59 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 xception('RETRY');.}..protected.
b0b20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 function.getOptionsForUrl($origi
b0b40 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 0a 7b 0a 24 68 65 61 nUrl,.$additionalOptions).{.$hea
b0b60 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c ders.=.array();..if.(extension_l
b0b80 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 oaded('zlib')).{.$headers[].=.'A
b0ba0 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 27 3b 0a 7d 0a 0a 24 6f 70 74 69 6f ccept-Encoding:.gzip';.}..$optio
b0bc0 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 74 68 ns.=.array_replace_recursive($th
b0be0 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 is->options,.$additionalOptions)
b0c00 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 29 20 7b 0a 0a 20 ;.if.(!$this->degradedMode).{...
b0c20 0a 20 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 6f 74 6f 63 6f 6c 5f 76 65 72 ..$options['http']['protocol_ver
b0c40 73 69 6f 6e 27 5d 20 3d 20 31 2e 31 3b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 43 6f 6e 6e sion'].=.1.1;.$headers[].=.'Conn
b0c60 65 63 74 69 6f 6e 3a 20 63 6c 6f 73 65 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f ection:.close';.}..if.($this->io
b0c80 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 55 72 6c 29 29 ->hasAuthentication($originUrl))
b0ca0 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 .{.$auth.=.$this->io->getAuthent
b0cc0 69 63 61 74 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 ication($originUrl);.if.('github
b0ce0 2e 63 6f 6d 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 .com'.===.$originUrl.&&.'x-oauth
b0d00 2d 62 61 73 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 -basic'.===.$auth['password']).{
b0d20 0a 24 6f 70 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 .$options['github-token'].=.$aut
b0d40 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e h['username'];.}.elseif.($this->
b0d60 63 6f 6e 66 69 67 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 config.&&.in_array($originUrl,.$
b0d80 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 6c 61 62 2d 64 6f 6d 61 69 6e this->config->get('gitlab-domain
b0da0 73 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 69 66 20 28 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 s'),.true)).{.if.($auth['passwor
b0dc0 64 27 5d 20 3d 3d 3d 20 27 6f 61 75 74 68 32 27 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d d'].===.'oauth2').{.$headers[].=
b0de0 20 27 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 65 61 72 65 72 20 27 2e 24 61 75 74 68 5b .'Authorization:.Bearer.'.$auth[
b0e00 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 75 74 68 53 74 72 'username'];.}.}.else.{.$authStr
b0e20 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 .=.base64_encode($auth['username
b0e40 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 ']...':'...$auth['password']);.$
b0e60 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 headers[].=.'Authorization:.Basi
b0e80 63 20 27 2e 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 c.'.$authStr;.}.}..if.(isset($op
b0ea0 74 69 6f 6e 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 tions['http']['header']).&&.!is_
b0ec0 61 72 72 61 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 array($options['http']['header']
b0ee0 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 )).{.$options['http']['header'].
b0f00 3d 20 65 78 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 =.explode("\r\n",.trim($options[
b0f20 27 68 74 74 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 'http']['header'],."\r\n"));.}.f
b0f40 6f 72 65 61 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 oreach.($headers.as.$header).{.$
b0f60 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 5b 5d 20 3d 20 24 68 options['http']['header'][].=.$h
b0f80 65 61 64 65 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 eader;.}..return.$options;.}.}.<
b0fa0 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
b0fc0 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 70 64 78 5c 53 70 64 78 er\Util;..use.Composer\Spdx\Spdx
b0fe0 4c 69 63 65 6e 73 65 73 3b 0a 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 27 20 Licenses;..trigger_error('The.'.
b1000 2e 20 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 20 2e 20 27 5c 53 70 64 78 4c 69 63 65 6e 73 65 20 ..__NAMESPACE__...'\SpdxLicense.
b1020 63 6c 61 73 73 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 43 6f 6d 70 6f 73 65 class.is.deprecated,.use.Compose
b1040 72 5c 53 70 64 78 5c 53 70 64 78 4c 69 63 65 6e 73 65 73 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 r\Spdx\SpdxLicenses.instead.',.E
b1060 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 64 _USER_DEPRECATED);.....class.Spd
b1080 78 4c 69 63 65 6e 73 65 20 65 78 74 65 6e 64 73 20 53 70 64 78 4c 69 63 65 6e 73 65 73 0a 7b 0a xLicense.extends.SpdxLicenses.{.
b10a0 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
b10c0 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 6d 70 6f 73 poser\Util;..use.Composer\Compos
b10e0 65 72 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 6e er;........final.class.StreamCon
b1100 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 74 textFactory.{..........public.st
b1120 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 61 atic.function.getContext($url,.a
b1140 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 20 rray.$defaultOptions.=.array(),.
b1160 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 0a array.$defaultParams.=.array()).
b1180 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 72 {.$options.=.array('http'.=>.arr
b11a0 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 6d ay(...'follow_location'.=>.1,.'m
b11c0 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 28 ax_redirects'.=>.20,.));....if.(
b11e0 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 7c !empty($_SERVER['HTTP_PROXY']).|
b1200 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 29 |.!empty($_SERVER['http_proxy'])
b1220 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 28 ).{...$proxy.=.parse_url(!empty(
b1240 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 56 $_SERVER['http_proxy']).?.$_SERV
b1260 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 54 ER['http_proxy'].:.$_SERVER['HTT
b1280 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 28 P_PROXY']);.}....if.(preg_match(
b12a0 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 79 '{^https://}i',.$url).&&.(!empty
b12c0 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 6d ($_SERVER['HTTPS_PROXY']).||.!em
b12e0 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 7b pty($_SERVER['https_proxy']))).{
b1300 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 52 .$proxy.=.parse_url(!empty($_SER
b1320 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 27 VER['https_proxy']).?.$_SERVER['
b1340 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 5f https_proxy'].:.$_SERVER['HTTPS_
b1360 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 56 PROXY']);.}....if.(!empty($_SERV
b1380 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 72 ER['no_proxy']).&&.parse_url($ur
b13a0 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 6e l,.PHP_URL_HOST)).{.$pattern.=.n
b13c0 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 70 ew.NoProxyPattern($_SERVER['no_p
b13e0 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 6c roxy']);.if.($pattern->test($url
b1400 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 6d )).{.unset($proxy);.}.}..if.(!em
b1420 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 74 pty($proxy)).{.$proxyURL.=.isset
b1440 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 68 ($proxy['scheme']).?.$proxy['sch
b1460 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 3d eme']...'://'.:.'';.$proxyURL..=
b1480 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 5b .isset($proxy['host']).?.$proxy[
b14a0 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 5b 'host'].:.'';..if.(isset($proxy[
b14c0 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 24 'port'])).{.$proxyURL..=.":"...$
b14e0 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 2f proxy['port'];.}.elseif.('http:/
b1500 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 7b /'.==.substr($proxyURL,.0,.7)).{
b1520 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 27 .$proxyURL..=.":80";.}.elseif.('
b1540 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 30 https://'.==.substr($proxyURL,.0
b1560 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 0a ,.8)).{.$proxyURL..=.":443";.}..
b1580 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 28 ..$proxyURL.=.str_replace(array(
b15a0 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 74 'http://',.'https://'),.array('t
b15c0 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 0a cp://',.'ssl://'),.$proxyURL);..
b15e0 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 6c if.(0.===.strpos($proxyURL,.'ssl
b1600 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 73 :').&&.!extension_loaded('openss
b1620 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 69 l')).{.throw.new.\RuntimeExcepti
b1640 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 on('You.must.enable.the.openssl.
b1660 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 74 extension.to.use.a.proxy.over.ht
b1680 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 78 tps');.}..$options['http']['prox
b16a0 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 73 y'].=.$proxyURL;....switch.(pars
b16c0 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 63 e_url($url,.PHP_URL_SCHEME)).{.c
b16e0 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 67 ase.'http':...$reqFullUriEnv.=.g
b1700 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 52 etenv('HTTP_PROXY_REQUEST_FULLUR
b1720 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 73 I');.if.($reqFullUriEnv.===.fals
b1740 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 73 e.||.$reqFullUriEnv.===.''.||.(s
b1760 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 66 trtolower($reqFullUriEnv).!==.'f
b1780 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 29 alse'.&&.(bool).$reqFullUriEnv))
b17a0 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 6c .{.$options['http']['request_ful
b17c0 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 74 luri'].=.true;.}.break;.case.'ht
b17e0 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 28 tps':...$reqFullUriEnv.=.getenv(
b1800 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 0a 'HTTPS_PROXY_REQUEST_FULLURI');.
b1820 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 20 if.($reqFullUriEnv.===.false.||.
b1840 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 6c $reqFullUriEnv.===.''.||.(strtol
b1860 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 27 ower($reqFullUriEnv).!==.'false'
b1880 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 6f .&&.(bool).$reqFullUriEnv)).{.$o
b18a0 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 27 ptions['http']['request_fulluri'
b18c0 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 74 ].=.true;.}.break;.}....if.('htt
b18e0 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 5f ps'.===.parse_url($url,.PHP_URL_
b1900 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 5f SCHEME)).{.$options['ssl']['SNI_
b1920 65 6e 61 62 6c 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f enabled'].=.true;.if.(PHP_VERSIO
b1940 4e 5f 49 44 20 3c 20 35 30 36 30 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 73 73 6c 27 5d 5b N_ID.<.50600).{.$options['ssl'][
b1960 27 53 4e 49 5f 73 65 72 76 65 72 5f 6e 61 6d 65 27 5d 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 'SNI_server_name'].=.parse_url($
b1980 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 url,.PHP_URL_HOST);.}.}....if.(i
b19a0 73 73 65 74 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 sset($proxy['user'])).{.$auth.=.
b19c0 75 72 6c 64 65 63 6f 64 65 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 3b 0a 69 66 20 28 69 urldecode($proxy['user']);.if.(i
b19e0 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d sset($proxy['pass'])).{.$auth..=
b1a00 20 27 3a 27 20 2e 20 75 72 6c 64 65 63 6f 64 65 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 .':'...urldecode($proxy['pass'])
b1a20 3b 0a 7d 0a 24 61 75 74 68 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 29 ;.}.$auth.=.base64_encode($auth)
b1a40 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 ;....if.(isset($defaultOptions['
b1a60 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 http']['header'])).{.if.(is_stri
b1a80 6e 67 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 ng($defaultOptions['http']['head
b1aa0 65 72 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d er'])).{.$defaultOptions['http']
b1ac0 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f ['header'].=.array($defaultOptio
b1ae0 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 24 64 65 66 61 75 6c ns['http']['header']);.}.$defaul
b1b00 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 5b 5d 20 3d 20 22 tOptions['http']['header'][].=."
b1b20 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 Proxy-Authorization:.Basic.{$aut
b1b40 68 7d 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 h}";.}.else.{.$options['http']['
b1b60 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a header'].=.array("Proxy-Authoriz
b1b80 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 ation:.Basic.{$auth}");.}.}.}..$
b1ba0 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 options.=.array_replace_recursiv
b1bc0 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 e($options,.$defaultOptions);..i
b1be0 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 f.(isset($options['http']['heade
b1c00 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 r'])).{.$options['http']['header
b1c20 27 5d 20 3d 20 73 65 6c 66 3a 3a 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 24 6f '].=.self::fixHttpHeaderField($o
b1c40 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 0a 69 66 ptions['http']['header']);.}..if
b1c60 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 24 70 68 .(defined('HHVM_VERSION')).{.$ph
b1c80 70 56 65 72 73 69 6f 6e 20 3d 20 27 48 48 56 4d 20 27 20 2e 20 48 48 56 4d 5f 56 45 52 53 49 4f pVersion.=.'HHVM.'...HHVM_VERSIO
b1ca0 4e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 68 70 56 65 72 73 69 6f 6e 20 3d 20 27 50 48 50 20 27 N;.}.else.{.$phpVersion.=.'PHP.'
b1cc0 20 2e 20 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 4f 4e 20 2e 20 27 2e 27 20 2e 20 50 48 50 ...PHP_MAJOR_VERSION...'.'...PHP
b1ce0 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 20 2e 20 27 2e 27 20 2e 20 50 48 50 5f 52 45 4c 45 41 _MINOR_VERSION...'.'...PHP_RELEA
b1d00 53 45 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 70 74 69 6f SE_VERSION;.}..if.(!isset($optio
b1d20 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 20 7c 7c 20 66 61 6c 73 65 20 3d ns['http']['header']).||.false.=
b1d40 3d 3d 20 73 74 72 70 6f 73 28 73 74 72 74 6f 6c 6f 77 65 72 28 69 6d 70 6c 6f 64 65 28 27 27 2c ==.strpos(strtolower(implode('',
b1d60 20 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 2c 20 27 .$options['http']['header'])),.'
b1d80 75 73 65 72 2d 61 67 65 6e 74 27 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d user-agent')).{.$options['http']
b1da0 5b 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 55 73 65 72 2d 41 67 ['header'][].=.sprintf(.'User-Ag
b1dc0 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 0a ent:.Composer/%s.(%s;.%s;.%s)',.
b1de0 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 5f Composer::VERSION.===.'@package_
b1e00 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 3a version@'.?.'source'.:.Composer:
b1e20 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 6e :VERSION,.php_uname('s'),.php_un
b1e40 61 6d 65 28 27 72 27 29 2c 0a 24 70 68 70 56 65 72 73 69 6f 6e 0a 29 3b 0a 7d 0a 0a 72 65 74 75 ame('r'),.$phpVersion.);.}..retu
b1e60 72 6e 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 69 6f 6e rn.stream_context_create($option
b1e80 73 2c 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s,.$defaultParams);.}...........
b1ea0 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 66 69 78 48 74 74 70 .private.static.function.fixHttp
b1ec0 48 65 61 64 65 72 46 69 65 6c 64 28 24 68 65 61 64 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 HeaderField($header).{.if.(!is_a
b1ee0 72 72 61 79 28 24 68 65 61 64 65 72 29 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 65 78 70 6c 6f rray($header)).{.$header.=.explo
b1f00 64 65 28 22 5c 72 5c 6e 22 2c 20 24 68 65 61 64 65 72 29 3b 0a 7d 0a 75 61 73 6f 72 74 28 24 68 de("\r\n",.$header);.}.uasort($h
b1f20 65 61 64 65 72 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 6e 20 70 eader,.function.($el).{.return.p
b1f40 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e 74 2d 74 79 70 65 7d 69 27 2c 20 24 65 reg_match('{^content-type}i',.$e
b1f60 6c 29 20 3f 20 31 20 3a 20 2d 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 61 64 65 72 l).?.1.:.-1;.});..return.$header
b1f80 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
b1fa0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f .Composer\Util;..use.Composer\Co
b1fc0 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 63 nfig;.use.Composer\IO\IOInterfac
b1fe0 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 63 6f 6e 73 74 20 4d 41 58 5f 51 54 e;......class.Svn.{.const.MAX_QT
b2000 59 5f 41 55 54 48 5f 54 52 49 45 53 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 Y_AUTH_TRIES.=.5;.....protected.
b2020 24 63 72 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 $credentials;.....protected.$has
b2040 41 75 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f Auth;.....protected.$io;.....pro
b2060 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 tected.$url;.....protected.$cach
b2080 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 eCredentials.=.true;.....protect
b20a0 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 71 74 79 41 ed.$process;.....protected.$qtyA
b20c0 75 74 68 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 uthTries.=.0;.....protected.$con
b20e0 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 5f 5f 63 6f fig;........public.function.__co
b2100 6e 73 74 72 75 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 nstruct($url,.IOInterface.$io,.C
b2120 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 onfig.$config,.ProcessExecutor.$
b2140 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 process.=.null).{.$this->url.=.$
b2160 75 72 6c 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e url;.$this->io.=.$io;.$this->con
b2180 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 fig.=.$config;.$this->process.=.
b21a0 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b $process.?:.new.ProcessExecutor;
b21c0 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e .}..public.static.function.clean
b21e0 45 6e 76 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 Env().{...putenv("DYLD_LIBRARY_P
b2200 41 54 48 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 ATH");.unset($_SERVER['DYLD_LIBR
b2220 41 52 59 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 70 75 62 ARY_PATH']);.}...............pub
b2240 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 lic.function.execute($command,.$
b2260 75 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 url,.$cwd.=.null,.$path.=.null,.
b2280 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 $verbose.=.false).{.$svnCommand.
b22a0 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 =.$this->getCommand($command,.$u
b22c0 72 6c 2c 20 24 70 61 74 68 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 rl,.$path);.$output.=.null;.$io.
b22e0 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e =.$this->io;.$handler.=.function
b2300 20 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c .($type,.$buffer).use.(&$output,
b2320 20 24 69 6f 2c 20 24 76 65 72 62 6f 73 65 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 .$io,.$verbose).{.if.($type.!==.
b2340 27 6f 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 'out').{.return;.}.if.('Redirect
b2360 69 6e 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 ing.to.URL.'.===.substr($buffer,
b2380 20 30 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 .0,.19)).{.return;.}.$output..=.
b23a0 24 62 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 $buffer;.if.($verbose).{.$io->wr
b23c0 69 74 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 iteError($buffer,.false);.}.};.$
b23e0 73 74 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 status.=.$this->process->execute
b2400 28 24 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 ($svnCommand,.$handler,.$cwd);.i
b2420 66 20 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 f.(0.===.$status).{.return.$outp
b2440 75 74 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f ut;.}..$errorOutput.=.$this->pro
b2460 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 24 66 75 6c 6c 4f 75 74 cess->getErrorOutput();.$fullOut
b2480 70 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 28 24 6f 75 74 70 75 put.=.implode("\n",.array($outpu
b24a0 74 2c 20 24 65 72 72 6f 72 4f 75 74 70 75 74 29 29 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 t,.$errorOutput));....if.(false.
b24c0 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 66 75 6c 6c 4f 75 74 70 75 74 2c 20 27 43 6f 75 6c 64 20 ===.stripos($fullOutput,.'Could.
b24e0 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 0a 26 26 not.authenticate.to.server:').&&
b2500 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 66 75 6c 6c 4f 75 74 70 75 74 2c 20 .false.===.stripos($fullOutput,.
b2520 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 64 27 29 0a 26 26 20 66 61 6c 73 65 'authorization.failed').&&.false
b2540 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 66 75 6c 6c 4f 75 74 70 75 74 2c 20 27 73 76 6e 3a 20 .===.stripos($fullOutput,.'svn:.
b2560 45 31 37 30 30 30 31 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 E170001:').&&.false.===.stripos(
b2580 24 66 75 6c 6c 4f 75 74 70 75 74 2c 20 27 73 76 6e 3a 20 45 32 31 35 30 30 34 3a 27 29 29 20 7b $fullOutput,.'svn:.E215004:')).{
b25a0 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 66 75 .throw.new.\RuntimeException($fu
b25c0 6c 6c 4f 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 75 74 llOutput);.}..if.(!$this->hasAut
b25e0 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 0a 0a h()).{.$this->doAuthDance();.}..
b2600 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 73 65 ..if.($this->qtyAuthTries++.<.se
b2620 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 74 75 lf::MAX_QTY_AUTH_TRIES).{...retu
b2640 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c rn.$this->execute($command,.$url
b2660 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 76 65 72 62 6f 73 65 29 3b 0a 7d 0a 0a 74 68 72 ,.$cwd,.$path,.$verbose);.}..thr
b2680 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 77 72 6f 6e 67 ow.new.\RuntimeException(.'wrong
b26a0 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 66 75 6c 6c 4f 75 .credentials.provided.('.$fullOu
b26c0 74 70 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 tput.')'.);.}.....public.functio
b26e0 6e 20 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 n.setCacheCredentials($cacheCred
b2700 65 6e 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 entials).{.$this->cacheCredentia
b2720 6c 73 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 ls.=.$cacheCredentials;.}.......
b2740 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 75 74 68 44 61 6e 63 65 28 .protected.function.doAuthDance(
b2760 29 0a 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 ).{...if.(!$this->io->isInteract
b2780 69 76 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 ive()).{.throw.new.\RuntimeExcep
b27a0 74 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 tion(.'can.not.ask.for.authentic
b27c0 61 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 27 0a 29 ation.in.non.interactive.mode'.)
b27e0 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 54 68 65 20 ;.}..$this->io->writeError("The.
b2800 53 75 62 76 65 72 73 69 6f 6e 20 73 65 72 76 65 72 20 28 7b 24 74 68 69 73 2d 3e 75 72 6c 7d 29 Subversion.server.({$this->url})
b2820 20 72 65 71 75 65 73 74 65 64 20 63 72 65 64 65 6e 74 69 61 6c 73 3a 22 29 3b 0a 0a 24 74 68 69 .requested.credentials:");..$thi
b2840 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e s->hasAuth.=.true;.$this->creden
b2860 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 tials['username'].=.$this->io->a
b2880 73 6b 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 29 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 sk("Username:.");.$this->credent
b28a0 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 ials['password'].=.$this->io->as
b28c0 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 22 50 61 73 73 77 6f 72 64 3a 20 22 29 3b 0a 0a 24 kAndHideAnswer("Password:.");..$
b28e0 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e this->cacheCredentials.=.$this->
b2900 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 22 53 68 6f 75 6c 64 20 53 75 62 76 io->askConfirmation("Should.Subv
b2920 65 72 73 69 6f 6e 20 63 61 63 68 65 20 74 68 65 73 65 20 63 72 65 64 65 6e 74 69 61 6c 73 3f 20 ersion.cache.these.credentials?.
b2940 28 79 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 (yes/no).",.true);..return.$this
b2960 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ;.}...........protected.function
b2980 20 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 .getCommand($cmd,.$url,.$path.=.
b29a0 6e 75 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 25 73 20 null).{.$cmd.=.sprintf('%s.%s%s.
b29c0 25 73 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 27 2c %s',.$cmd,.'--non-interactive.',
b29e0 0a 24 74 68 69 73 2d 3e 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 2c 0a 50 .$this->getCredentialString(),.P
b2a00 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 0a 29 3b 0a rocessExecutor::escape($url).);.
b2a20 0a 69 66 20 28 24 70 61 74 68 29 20 7b 0a 24 63 6d 64 20 2e 3d 20 27 20 27 20 2e 20 50 72 6f 63 .if.($path).{.$cmd..=.'.'...Proc
b2a40 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 7d 0a 0a 72 essExecutor::escape($path);.}..r
b2a60 65 74 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 eturn.$cmd;.}.........protected.
b2a80 66 75 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 function.getCredentialString().{
b2aa0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 29 20 7b 0a 72 65 74 75 72 6e .if.(!$this->hasAuth()).{.return
b2ac0 20 27 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 .'';.}..return.sprintf(.'.%s--us
b2ae0 65 72 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 ername.%s.--password.%s.',.$this
b2b00 2d 3e 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 ->getAuthCache(),.ProcessExecuto
b2b20 72 3a 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 r::escape($this->getUsername()),
b2b40 0a 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->
b2b60 67 65 74 50 61 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 getPassword()).);.}........prote
b2b80 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 cted.function.getPassword().{.if
b2ba0 20 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b .($this->credentials.===.null).{
b2bc0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 .throw.new.\LogicException("No.s
b2be0 76 6e 20 61 75 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 vn.auth.detected.");.}..return.i
b2c00 73 73 65 74 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 sset($this->credentials['passwor
b2c20 64 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 d']).?.$this->credentials['passw
b2c40 6f 72 64 27 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ord'].:.'';.}........protected.f
b2c60 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 unction.getUsername().{.if.($thi
b2c80 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 s->credentials.===.null).{.throw
b2ca0 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 .new.\LogicException("No.svn.aut
b2cc0 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e h.detected.");.}..return.$this->
b2ce0 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a credentials['username'];.}......
b2d00 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 28 29 0a 7b 0a .protected.function.hasAuth().{.
b2d20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 29 20 7b 0a 72 if.(null.!==.$this->hasAuth).{.r
b2d40 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 69 66 20 28 66 61 6c eturn.$this->hasAuth;.}..if.(fal
b2d60 73 65 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 se.===.$this->createAuthFromConf
b2d80 69 67 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 ig()).{.$this->createAuthFromUrl
b2da0 28 29 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 ();.}..return.$this->hasAuth;.}.
b2dc0 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 41 75 74 68 ......protected.function.getAuth
b2de0 43 61 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 Cache().{.return.$this->cacheCre
b2e00 64 65 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 dentials.?.''.:.'--no-auth-cache
b2e20 20 27 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 .';.}.......private.function.cre
b2e40 61 74 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 ateAuthFromConfig().{.if.(!$this
b2e60 2d 3e 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 ->config->has('http-basic')).{.r
b2e80 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 0a 7d 0a eturn.$this->hasAuth.=.false;.}.
b2ea0 0a 24 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 .$authConfig.=.$this->config->ge
b2ec0 74 28 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 t('http-basic');..$host.=.parse_
b2ee0 75 72 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 url($this->url,.PHP_URL_HOST);.i
b2f00 66 20 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 f.(isset($authConfig[$host])).{.
b2f20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d $this->credentials['username'].=
b2f40 20 24 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 .$authConfig[$host]['username'];
b2f60 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 .$this->credentials['password'].
b2f80 3d 20 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 =.$authConfig[$host]['password']
b2fa0 3b 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 74 72 75 65 3b ;..return.$this->hasAuth.=.true;
b2fc0 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 66 61 6c 73 .}..return.$this->hasAuth.=.fals
b2fe0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 e;.}.......private.function.crea
b3000 74 65 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 teAuthFromUrl().{.$uri.=.parse_u
b3020 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 69 5b 27 rl($this->url);.if.(empty($uri['
b3040 75 73 65 72 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 user'])).{.return.$this->hasAuth
b3060 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b .=.false;.}..$this->credentials[
b3080 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 75 72 69 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 'username'].=.$uri['user'];.if.(
b30a0 21 65 6d 70 74 79 28 24 75 72 69 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 !empty($uri['pass'])).{.$this->c
b30c0 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 75 72 69 5b 27 70 redentials['password'].=.$uri['p
b30e0 61 73 73 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 ass'];.}..return.$this->hasAuth.
b3100 3d 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 0a 66 75 6e =.true;.}.}.<?php............fun
b3120 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 24 66 69 6c 65 29 0a 7b 0a 72 ction.includeIfExists($file).{.r
b3140 65 74 75 72 6e 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 20 3f 20 69 6e 63 6c 75 eturn.file_exists($file).?.inclu
b3160 64 65 20 24 66 69 6c 65 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 28 21 24 6c 6f 61 64 de.$file.:.false;.}..if.((!$load
b3180 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e er.=.includeIfExists(__DIR__.'/.
b31a0 2e 2f 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 20 26 26 20 28 21 24 6c ./vendor/autoload.php')).&&.(!$l
b31c0 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 44 49 52 5f 5f 2e oader.=.includeIfExists(__DIR__.
b31e0 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 29 20 7b 0a 65 63 '/../../../autoload.php'))).{.ec
b3200 68 6f 20 27 59 6f 75 20 6d 75 73 74 20 73 65 74 20 75 70 20 74 68 65 20 70 72 6f 6a 65 63 74 20 ho.'You.must.set.up.the.project.
b3220 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 72 75 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 dependencies,.run.the.following.
b3240 63 6f 6d 6d 61 6e 64 73 3a 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 63 75 72 6c 20 2d 73 53 20 68 74 commands:'.PHP_EOL..'curl.-sS.ht
b3260 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 69 6e 73 74 61 6c 6c 65 72 20 tps://getcomposer.org/installer.
b3280 7c 20 70 68 70 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 |.php'.PHP_EOL..'php.composer.ph
b32a0 61 72 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f 4c 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a ar.install'.PHP_EOL;.exit(1);.}.
b32c0 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a 0a 2f 2a 0a 20 2a 20 54 68 .return.$loader;.<?php../*..*.Th
b32e0 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 0a is.file.is.part.of.Composer...*.
b3300 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 6e .*.(c).Nils.Adermann.<naderman@n
b3320 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 6e aderman.de>..*.....Jordi.Boggian
b3340 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 72 o.<j.boggiano@seld.be>..*..*.For
b3360 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 20 .the.full.copyright.and.license.
b3380 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 20 74 68 65 20 4c 49 43 information,.please.view.the.LIC
b33a0 45 4e 53 45 0a 20 2a 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 20 64 69 73 74 72 69 62 75 74 65 ENSE..*.file.that.was.distribute
b33c0 64 20 77 69 74 68 20 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 2a 2f 0a 0a 6e 61 d.with.this.source.code...*/..na
b33e0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 2f 2a 2a 0a mespace.Composer\Autoload;../**.
b3400 20 2a 20 43 6c 61 73 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 50 53 52 2d .*.ClassLoader.implements.a.PSR-
b3420 30 2c 20 50 53 52 2d 34 20 61 6e 64 20 63 6c 61 73 73 6d 61 70 20 63 6c 61 73 73 20 6c 6f 61 64 0,.PSR-4.and.classmap.class.load
b3440 65 72 2e 0a 20 2a 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d er...*..*.....$loader.=.new.\Com
b3460 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 2a poser\Autoload\ClassLoader();..*
b3480 0a 20 2a 20 20 20 20 20 2f 2f 20 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 65 73 20 77 69 74 68 ..*.....//.register.classes.with
b34a0 20 6e 61 6d 65 73 70 61 63 65 73 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 .namespaces..*.....$loader->add(
b34c0 27 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 52 5f 5f 2e 27 2f 63 'Symfony\Component',.__DIR__.'/c
b34e0 6f 6d 70 6f 6e 65 6e 74 27 29 3b 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 omponent');..*.....$loader->add(
b3500 27 53 79 6d 66 6f 6e 79 27 2c 20 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 52 5f 5f 2e 27 2f 66 'Symfony',...........__DIR__.'/f
b3520 72 61 6d 65 77 6f 72 6b 27 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 61 63 74 69 76 61 74 ramework');..*..*.....//.activat
b3540 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d e.the.autoloader..*.....$loader-
b3560 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 74 6f 20 65 6e 61 >register();..*..*.....//.to.ena
b3580 62 6c 65 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 28 ble.searching.the.include.path.(
b35a0 65 67 2e 20 66 6f 72 20 50 45 41 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a 20 20 20 20 20 24 6c eg..for.PEAR.packages)..*.....$l
b35c0 6f 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 oader->setUseIncludePath(true);.
b35e0 20 2a 0a 20 2a 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 74 72 .*..*.In.this.example,.if.you.tr
b3600 79 20 74 6f 20 75 73 65 20 61 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 5c y.to.use.a.class.in.the.Symfony\
b3620 43 6f 6d 70 6f 6e 65 6e 74 0a 20 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 6f 6e 65 20 6f 66 Component..*.namespace.or.one.of
b3640 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 28 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .its.children.(Symfony\Component
b3660 5c 43 6f 6e 73 6f 6c 65 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 2a 20 74 68 65 20 61 \Console.for.instance),..*.the.a
b3680 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 utoloader.will.first.look.for.th
b36a0 65 20 63 6c 61 73 73 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 2f 0a 20 2a 20 e.class.under.the.component/..*.
b36c0 64 69 72 65 63 74 6f 72 79 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 65 6e 20 66 61 6c 6c directory,.and.it.will.then.fall
b36e0 62 61 63 6b 20 74 6f 20 74 68 65 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 72 65 63 74 6f 72 79 back.to.the.framework/.directory
b3700 20 69 66 20 6e 6f 74 0a 20 2a 20 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 75 .if.not..*.found.before.giving.u
b3720 70 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f 6f 73 65 6c 79 20 62 p...*..*.This.class.is.loosely.b
b3740 61 73 65 64 20 6f 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 72 73 61 6c 43 6c 61 ased.on.the.Symfony.UniversalCla
b3760 73 73 4c 6f 61 64 65 72 2e 0a 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 61 62 69 65 6e 20 50 ssLoader...*..*.@author.Fabien.P
b3780 6f 74 65 6e 63 69 65 72 20 3c 66 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e 63 6f 6d 3e 0a 20 2a otencier.<fabien@symfony.com>..*
b37a0 20 40 61 75 74 68 6f 72 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 .@author.Jordi.Boggiano.<j.boggi
b37c0 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 20 40 73 65 65 20 20 20 20 68 74 74 70 3a 2f 2f 77 ano@seld.be>..*.@see....http://w
b37e0 77 77 2e 70 68 70 2d 66 69 67 2e 6f 72 67 2f 70 73 72 2f 70 73 72 2d 30 2f 0a 20 2a 20 40 73 65 ww.php-fig.org/psr/psr-0/..*.@se
b3800 65 20 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2d 66 69 67 2e 6f 72 67 2f 70 73 72 2f e....http://www.php-fig.org/psr/
b3820 70 73 72 2d 34 2f 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 psr-4/..*/.class.ClassLoader.{..
b3840 20 20 20 2f 2f 20 50 53 52 2d 34 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 4c ...//.PSR-4.....private.$prefixL
b3860 65 6e 67 74 68 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 engthsPsr4.=.array();.....privat
b3880 65 20 24 70 72 65 66 69 78 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 e.$prefixDirsPsr4.=.array();....
b38a0 20 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 .private.$fallbackDirsPsr4.=.arr
b38c0 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2f 20 50 53 52 2d 30 0a 20 20 20 20 70 72 69 76 61 74 65 20 ay();......//.PSR-0.....private.
b38e0 24 70 72 65 66 69 78 65 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 $prefixesPsr0.=.array();.....pri
b3900 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 vate.$fallbackDirsPsr0.=.array()
b3920 3b 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d ;......private.$useIncludePath.=
b3940 20 66 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 .false;.....private.$classMap.=.
b3960 61 72 72 61 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 array();......private.$classMapA
b3980 75 74 68 6f 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 uthoritative.=.false;......publi
b39a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 c.function.getPrefixes().....{..
b39c0 20 20 20 20 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 .......if.(!empty($this->prefixe
b39e0 73 50 73 72 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 sPsr0)).{.............return.cal
b3a00 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c l_user_func_array('array_merge',
b3a20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a 20 20 20 20 20 20 20 20 7d .$this->prefixesPsr0);.........}
b3a40 0a 0a 20 20 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 ..........return.array();.....}.
b3a60 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 .....public.function.getPrefixes
b3a80 50 73 72 34 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 Psr4().....{.........return.$thi
b3aa0 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 s->prefixDirsPsr4;.....}......pu
b3ac0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a blic.function.getFallbackDirs().
b3ae0 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c ....{.........return.$this->fall
b3b00 62 61 63 6b 44 69 72 73 50 73 72 30 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 backDirsPsr0;.....}......public.
b3b20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 28 29 0a 20 function.getFallbackDirsPsr4()..
b3b40 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 ...{.........return.$this->fallb
b3b60 61 63 6b 44 69 72 73 50 73 72 34 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 ackDirsPsr4;.....}......public.f
b3b80 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 unction.getClassMap().....{.....
b3ba0 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 ....return.$this->classMap;.....
b3bc0 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 }....../**......*.@param.array.$
b3be0 63 6c 61 73 73 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c 65 6e 61 6d 65 20 6d 61 70 0a 20 classMap.Class.to.filename.map..
b3c00 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 43 6c ....*/.....public.function.addCl
b3c20 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 20 20 20 20 7b 0a 20 20 assMap(array.$classMap).....{...
b3c40 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 ......if.($this->classMap).{....
b3c60 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 .........$this->classMap.=.array
b3c80 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 _merge($this->classMap,.$classMa
b3ca0 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 p);.........}.else.{............
b3cc0 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 20 20 .$this->classMap.=.$classMap;...
b3ce0 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 ......}.....}....../**......*.Re
b3d00 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 30 20 64 69 72 65 63 74 6f 72 69 gisters.a.set.of.PSR-0.directori
b3d20 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 70 72 65 66 69 78 2c 20 65 69 74 68 65 72 0a 20 20 es.for.a.given.prefix,.either...
b3d40 20 20 20 2a 20 61 70 70 65 6e 64 69 6e 67 20 6f 72 20 70 72 65 70 65 6e 64 69 6e 67 20 74 6f 20 ...*.appending.or.prepending.to.
b3d60 74 68 65 20 6f 6e 65 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 74 68 69 73 the.ones.previously.set.for.this
b3d80 20 70 72 65 66 69 78 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 .prefix.......*......*.@param.st
b3da0 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 20 70 72 65 66 69 78 0a 20 ring.......$prefix..The.prefix..
b3dc0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 ....*.@param.array|string.$paths
b3de0 20 20 20 54 68 65 20 50 53 52 2d 30 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 ...The.PSR-0.root.directories...
b3e00 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 20 20 20 20 20 20 20 24 70 72 65 70 65 6e ...*.@param.bool.........$prepen
b3e20 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f d.Whether.to.prepend.the.directo
b3e40 72 69 65 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ries......*/.....public.function
b3e60 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d .add($prefix,.$paths,.$prepend.=
b3e80 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 .false).....{.........if.(!$pref
b3ea0 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 ix).{.............if.($prepend).
b3ec0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 {.................$this->fallbac
b3ee0 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 kDirsPsr0.=.array_merge(........
b3f00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 .............(array).$paths,....
b3f20 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 63 6b .................$this->fallback
b3f40 44 69 72 73 50 73 72 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 DirsPsr0.................);.....
b3f60 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........}.else.{................
b3f80 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 .$this->fallbackDirsPsr0.=.array
b3fa0 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 _merge(.....................$thi
b3fc0 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 s->fallbackDirsPsr0,............
b3fe0 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 .........(array).$paths.........
b4000 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 ........);.............}........
b4020 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 ......return;.........}.........
b4040 20 24 66 69 72 73 74 20 3d 20 24 70 72 65 66 69 78 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 .$first.=.$prefix[0];.........if
b4060 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 .(!isset($this->prefixesPsr0[$fi
b4080 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 rst][$prefix])).{.............$t
b40a0 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
b40c0 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 x].=.(array).$paths;............
b40e0 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 ..return;.........}.........if.(
b4100 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 $prepend).{.............$this->p
b4120 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 20 61 refixesPsr0[$first][$prefix].=.a
b4140 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 rray_merge(.................(arr
b4160 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 ay).$paths,.................$thi
b4180 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d s->prefixesPsr0[$first][$prefix]
b41a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b .............);.........}.else.{
b41c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 .............$this->prefixesPsr0
b41e0 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 [$first][$prefix].=.array_merge(
b4200 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 65 73 .................$this->prefixes
b4220 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 20 20 20 20 20 Psr0[$first][$prefix],..........
b4240 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 .......(array).$paths...........
b4260 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 ..);.........}.....}....../**...
b4280 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 34 20 64 69 ...*.Registers.a.set.of.PSR-4.di
b42a0 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 6e 61 6d 65 73 70 61 63 65 2c rectories.for.a.given.namespace,
b42c0 20 65 69 74 68 65 72 0a 20 20 20 20 20 2a 20 61 70 70 65 6e 64 69 6e 67 20 6f 72 20 70 72 65 70 .either......*.appending.or.prep
b42e0 65 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 6f 6e 65 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 ending.to.the.ones.previously.se
b4300 74 20 66 6f 72 20 74 68 69 73 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 t.for.this.namespace.......*....
b4320 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 ..*.@param.string.......$prefix.
b4340 20 54 68 65 20 70 72 65 66 69 78 2f 6e 61 6d 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 61 69 .The.prefix/namespace,.with.trai
b4360 6c 69 6e 67 20 27 5c 5c 27 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 ling.'\\'......*.@param.array|st
b4380 72 69 6e 67 20 24 70 61 74 68 73 20 20 20 54 68 65 20 50 53 52 2d 30 20 62 61 73 65 20 64 69 72 ring.$paths...The.PSR-0.base.dir
b43a0 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 20 20 20 ectories......*.@param.bool.....
b43c0 20 20 20 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 ....$prepend.Whether.to.prepend.
b43e0 74 68 65 20 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 the.directories......*......*.@t
b4400 68 72 6f 77 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 hrows.\InvalidArgumentException.
b4420 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 50 .....*/.....public.function.addP
b4440 73 72 34 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 sr4($prefix,.$paths,.$prepend.=.
b4460 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 false).....{.........if.(!$prefi
b4480 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 67 69 73 74 65 72 20 64 69 72 x).{.............//.Register.dir
b44a0 65 63 74 6f 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 ectories.for.the.root.namespace.
b44c0 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 20 .............if.($prepend).{....
b44e0 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
b4500 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 Psr4.=.array_merge(.............
b4520 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 20 ........(array).$paths,.........
b4540 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 50 ............$this->fallbackDirsP
b4560 73 72 34 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 20 sr4.................);..........
b4580 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 69 ...}.else.{.................$thi
b45a0 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 67 s->fallbackDirsPsr4.=.array_merg
b45c0 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 61 e(.....................$this->fa
b45e0 6c 6c 62 61 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 llbackDirsPsr4,.................
b4600 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 20 ....(array).$paths..............
b4620 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c ...);.............}.........}.el
b4640 73 65 69 66 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 seif.(!isset($this->prefixDirsPs
b4660 72 34 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 2f 2f 20 52 r4[$prefix])).{.............//.R
b4680 65 67 69 73 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 egister.directories.for.a.new.na
b46a0 6d 65 73 70 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 mespace..............$length.=.s
b46c0 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 66 20 28 trlen($prefix);.............if.(
b46e0 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 7b '\\'.!==.$prefix[$length.-.1]).{
b4700 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 6e 76 61 .................throw.new.\Inva
b4720 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 6d 70 74 lidArgumentException("A.non-empt
b4740 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 61 20 6e y.PSR-4.prefix.must.end.with.a.n
b4760 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 20 20 20 amespace.separator.");..........
b4780 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 78 4c 65 ...}.............$this->prefixLe
b47a0 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d ngthsPsr4[$prefix[0]][$prefix].=
b47c0 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 70 72 65 .$length;.............$this->pre
b47e0 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 29 20 24 fixDirsPsr4[$prefix].=.(array).$
b4800 70 61 74 68 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 paths;.........}.elseif.($prepen
b4820 64 29 20 7b 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 d).{.............//.Prepend.dire
b4840 63 74 6f 72 69 65 73 20 66 6f 72 20 61 6e 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 ctories.for.an.already.registere
b4860 64 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e d.namespace..............$this->
b4880 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f prefixDirsPsr4[$prefix].=.array_
b48a0 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 24 merge(.................(array).$
b48c0 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 72 paths,.................$this->pr
b48e0 65 66 69 78 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 efixDirsPsr4[$prefix]...........
b4900 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ..);.........}.else.{...........
b4920 20 20 2f 2f 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 ..//.Append.directories.for.an.a
b4940 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 lready.registered.namespace.....
b4960 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 .........$this->prefixDirsPsr4[$
b4980 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 prefix].=.array_merge(..........
b49a0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 .......$this->prefixDirsPsr4[$pr
b49c0 65 66 69 78 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 efix],.................(array).$
b49e0 70 61 74 68 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 paths.............);.........}..
b4a00 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 61 ...}....../**......*.Registers.a
b4a20 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 6f 72 20 61 20 .set.of.PSR-0.directories.for.a.
b4a40 67 69 76 65 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 given.prefix,......*.replacing.a
b4a60 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 20 74 68 69 ny.others.previously.set.for.thi
b4a80 73 20 70 72 65 66 69 78 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 s.prefix.......*......*.@param.s
b4aa0 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 72 65 66 69 78 0a 20 tring.......$prefix.The.prefix..
b4ac0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 ....*.@param.array|string.$paths
b4ae0 20 20 54 68 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 ..The.PSR-0.base.directories....
b4b00 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 73 65 74 28 24 70 72 ..*/.....public.function.set($pr
b4b20 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 efix,.$paths).....{.........if.(
b4b40 21 24 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 !$prefix).{.............$this->f
b4b60 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 68 73 allbackDirsPsr0.=.(array).$paths
b4b80 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 ;.........}.else.{.............$
b4ba0 74 68 69 73 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 this->prefixesPsr0[$prefix[0]][$
b4bc0 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 prefix].=.(array).$paths;.......
b4be0 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
b4c00 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 6f 72 69 65 73 20 66 ers.a.set.of.PSR-4.directories.f
b4c20 6f 72 20 61 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 or.a.given.namespace,......*.rep
b4c40 6c 61 63 69 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 lacing.any.others.previously.set
b4c60 20 66 6f 72 20 74 68 69 73 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 .for.this.namespace.......*.....
b4c80 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 .*.@param.string.......$prefix.T
b4ca0 68 65 20 70 72 65 66 69 78 2f 6e 61 6d 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 61 69 6c 69 he.prefix/namespace,.with.traili
b4cc0 6e 67 20 27 5c 5c 27 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 ng.'\\'......*.@param.array|stri
b4ce0 6e 67 20 24 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 ng.$paths..The.PSR-4.base.direct
b4d00 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 73 20 5c 49 6e 76 ories......*......*.@throws.\Inv
b4d20 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 20 2a 2f 0a 20 20 alidArgumentException......*/...
b4d40 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 73 72 34 28 24 70 72 65 66 69 ..public.function.setPsr4($prefi
b4d60 78 2c 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 x,.$paths).....{.........if.(!$p
b4d80 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c refix).{.............$this->fall
b4da0 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 backDirsPsr4.=.(array).$paths;..
b4dc0 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 65 6e .......}.else.{.............$len
b4de0 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 3b 0a 20 20 20 20 20 20 20 20 20 gth.=.strlen($prefix);..........
b4e00 20 20 20 69 66 20 28 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 ...if.('\\'.!==.$prefix[$length.
b4e20 2d 20 31 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 -.1]).{.................throw.ne
b4e40 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 41 20 6e w.\InvalidArgumentException("A.n
b4e60 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 78 20 6d 75 73 74 20 65 6e 64 20 77 on-empty.PSR-4.prefix.must.end.w
b4e80 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 20 20 ith.a.namespace.separator.");...
b4ea0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 ..........}.............$this->p
b4ec0 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 refixLengthsPsr4[$prefix[0]][$pr
b4ee0 65 66 69 78 5d 20 3d 20 24 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 efix].=.$length;.............$th
b4f00 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 is->prefixDirsPsr4[$prefix].=.(a
b4f20 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 rray).$paths;.........}.....}...
b4f40 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 63 68 69 6e 67 .../**......*.Turns.on.searching
b4f60 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 66 6f 72 20 63 6c 61 73 73 20 66 69 6c 65 .the.include.path.for.class.file
b4f80 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 75 73 s.......*......*.@param.bool.$us
b4fa0 65 49 6e 63 6c 75 64 65 50 61 74 68 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 eIncludePath......*/.....public.
b4fc0 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 function.setUseIncludePath($useI
b4fe0 6e 63 6c 75 64 65 50 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d ncludePath).....{.........$this-
b5000 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 >useIncludePath.=.$useIncludePat
b5020 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 61 6e 20 62 65 20 h;.....}....../**......*.Can.be.
b5040 75 73 65 64 20 74 6f 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 used.to.check.if.the.autoloader.
b5060 75 73 65 73 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 74 6f 20 63 68 65 63 6b 0a 20 uses.the.include.path.to.check..
b5080 20 20 20 20 2a 20 66 6f 72 20 63 6c 61 73 73 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a ....*.for.classes.......*......*
b50a0 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 .@return.bool......*/.....public
b50c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 20 20 .function.getUseIncludePath()...
b50e0 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 ..{.........return.$this->useInc
b5100 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 ludePath;.....}....../**......*.
b5120 54 75 72 6e 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 Turns.off.searching.the.prefix.a
b5140 6e 64 20 66 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 nd.fallback.directories.for.clas
b5160 73 65 73 0a 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 ses......*.that.have.not.been.re
b5180 67 69 73 74 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 gistered.with.the.class.map.....
b51a0 20 20 2a 0a 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 ..*......*.@param.bool.$classMap
b51c0 41 75 74 68 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 Authoritative......*/.....public
b51e0 20 66 75 6e 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 .function.setClassMapAuthoritati
b5200 76 65 28 24 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 ve($classMapAuthoritative).....{
b5220 0a 20 20 20 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 .........$this->classMapAuthorit
b5240 61 74 69 76 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 ative.=.$classMapAuthoritative;.
b5260 20 20 20 20 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 ....}....../**......*.Should.cla
b5280 73 73 20 6c 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 ss.lookup.fail.if.not.found.in.t
b52a0 68 65 20 63 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 he.current.class.map?......*....
b52c0 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 ..*.@return.bool......*/.....pub
b52e0 6c 69 63 20 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 lic.function.isClassMapAuthorita
b5300 74 69 76 65 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 tive().....{.........return.$thi
b5320 73 2d 3e 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 7d 0a s->classMapAuthoritative;.....}.
b5340 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 74 68 69 73 20 69 ...../**......*.Registers.this.i
b5360 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a nstance.as.an.autoloader.......*
b5380 0a 20 20 20 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 ......*.@param.bool.$prepend.Whe
b53a0 74 68 65 72 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 ther.to.prepend.the.autoloader.o
b53c0 72 20 6e 6f 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 r.not......*/.....public.functio
b53e0 6e 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 n.register($prepend.=.false)....
b5400 20 7b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 .{.........spl_autoload_register
b5420 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 (array($this,.'loadClass'),.true
b5440 2c 20 24 70 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 ,.$prepend);.....}....../**.....
b5460 20 2a 20 55 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 .*.Unregisters.this.instance.as.
b5480 61 6e 20 61 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 an.autoloader.......*/.....publi
b54a0 63 20 66 75 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 c.function.unregister().....{...
b54c0 20 20 20 20 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 ......spl_autoload_unregister(ar
b54e0 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 20 7d 0a ray($this,.'loadClass'));.....}.
b5500 0a 20 20 20 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 ...../**......*.Loads.the.given.
b5520 63 6c 61 73 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 class.or.interface.......*......
b5540 2a 20 40 70 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 *.@param..string....$class.The.n
b5560 61 6d 65 20 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 ame.of.the.class......*.@return.
b5580 62 6f 6f 6c 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 bool|null.True.if.loaded,.null.o
b55a0 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 therwise......*/.....public.func
b55c0 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 tion.loadClass($class).....{....
b55e0 20 20 20 20 20 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 .....if.($file.=.$this->findFile
b5600 28 24 63 6c 61 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 46 ($class)).{.............includeF
b5620 69 6c 65 28 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 ile($file);..............return.
b5640 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 true;.........}.....}....../**..
b5660 20 20 20 20 2a 20 46 69 6e 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c 65 ....*.Finds.the.path.to.the.file
b5680 20 77 68 65 72 65 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 20 .where.the.class.is.defined.....
b56a0 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 ..*......*.@param.string.$class.
b56c0 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 20 The.name.of.the.class......*....
b56e0 20 20 2a 20 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 ..*.@return.string|false.The.pat
b5700 68 20 69 66 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 h.if.found,.false.otherwise.....
b5720 20 2a 2f 0a 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 .*/.....public.function.findFile
b5740 28 24 63 6c 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 ($class).....{.........//.work.a
b5760 72 6f 75 6e 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 round.for.PHP.5.3.0.-.5.3.2.http
b5780 73 3a 2f 2f 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 s://bugs.php.net/50731.........i
b57a0 66 20 28 27 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 f.('\\'.==.$class[0]).{.........
b57c0 20 20 20 20 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 ....$class.=.substr($class,.1);.
b57e0 20 20 20 20 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 ........}..........//.class.map.
b5800 6c 6f 6f 6b 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 lookup.........if.(isset($this->
b5820 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 classMap[$class])).{............
b5840 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 6c 61 73 73 5d 3b .return.$this->classMap[$class];
b5860 0a 20 20 20 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 .........}.........if.($this->cl
b5880 61 73 73 4d 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 assMapAuthoritative).{..........
b58a0 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 ...return.false;.........}......
b58c0 20 20 20 20 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 ....$file.=.$this->findFileWithE
b58e0 78 74 65 6e 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 xtension($class,.'.php');.......
b5900 20 20 20 2f 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 ...//.Search.for.Hack.files.if.w
b5920 65 20 61 72 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 e.are.running.on.HHVM.........if
b5940 20 28 24 66 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 .($file.===.null.&&.defined('HHV
b5960 4d 5f 56 45 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 M_VERSION')).{.............$file
b5980 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 73 69 6f 6e 28 .=.$this->findFileWithExtension(
b59a0 24 63 6c 61 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 $class,.'.hh');.........}.......
b59c0 20 20 20 69 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 ...if.($file.===.null).{........
b59e0 20 20 20 20 20 2f 2f 20 52 65 6d 65 6d 62 65 72 20 74 68 61 74 20 74 68 69 73 20 63 6c 61 73 73 .....//.Remember.that.this.class
b5a00 20 64 6f 65 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 .does.not.exist..............ret
b5a20 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 20 3d 20 66 61 urn.$this->classMap[$class].=.fa
b5a40 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 lse;.........}..........return.$
b5a60 66 69 6c 65 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 file;.....}......private.functio
b5a80 6e 20 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 73 73 2c 20 n.findFileWithExtension($class,.
b5aa0 24 65 78 74 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 $ext).....{.........//.PSR-4.loo
b5ac0 6b 75 70 0a 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 kup.........$logicalPathPsr4.=.s
b5ae0 74 72 74 72 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 trtr($class,.'\\',.DIRECTORY_SEP
b5b00 41 52 41 54 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 ARATOR)...$ext;..........$first.
b5b20 3d 20 24 63 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 =.$class[0];.........if.(isset($
b5b40 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 69 72 73 74 5d 29 this->prefixLengthsPsr4[$first])
b5b60 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e ).{.............foreach.($this->
b5b80 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 prefixLengthsPsr4[$first].as.$pr
b5ba0 65 66 69 78 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 efix.=>.$length).{..............
b5bc0 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 ...if.(0.===.strpos($class,.$pre
b5be0 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 fix)).{.....................fore
b5c00 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 ach.($this->prefixDirsPsr4[$pref
b5c20 69 78 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ix].as.$dir).{..................
b5c40 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 .......if.(file_exists($file.=.$
b5c60 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 73 75 62 73 dir...DIRECTORY_SEPARATOR...subs
b5c80 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 6c 65 6e 67 74 68 29 29 29 20 tr($logicalPathPsr4,.$length))).
b5ca0 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 20 20 20 20 72 65 {.............................re
b5cc0 74 75 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 turn.$file;.....................
b5ce0 20 20 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 ....}.....................}.....
b5d00 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ............}.............}.....
b5d20 20 20 20 20 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 ....}..........//.PSR-4.fallback
b5d40 20 64 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 .dirs.........foreach.($this->fa
b5d60 6c 6c 62 61 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 llbackDirsPsr4.as.$dir).{.......
b5d80 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 ......if.(file_exists($file.=.$d
b5da0 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 ir...DIRECTORY_SEPARATOR...$logi
b5dc0 63 61 6c 50 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 calPathPsr4)).{.................
b5de0 72 65 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 return.$file;.............}.....
b5e00 20 20 20 20 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 ....}..........//.PSR-0.lookup..
b5e20 20 20 20 20 20 20 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 .......if.(false.!==.$pos.=.strr
b5e40 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 pos($class,.'\\')).{............
b5e60 20 2f 2f 20 6e 61 6d 65 73 70 61 63 65 64 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 .//.namespaced.class.name.......
b5e80 20 20 20 20 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 ......$logicalPathPsr0.=.substr(
b5ea0 24 6c 6f 67 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 $logicalPathPsr4,.0,.$pos.+.1)..
b5ec0 20 20 20 20 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 .................strtr(substr($l
b5ee0 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),.'_',.
b5f00 44 49 52 45 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 DIRECTORY_SEPARATOR);.........}.
b5f20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 else.{.............//.PEAR-like.
b5f40 63 6c 61 73 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 class.name.............$logicalP
b5f60 61 74 68 50 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 athPsr0.=.strtr($class,.'_',.DIR
b5f80 45 43 54 4f 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 ECTORY_SEPARATOR)...$ext;.......
b5fa0 20 20 7d 0a 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 ..}..........if.(isset($this->pr
b5fc0 65 66 69 78 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 efixesPsr0[$first])).{..........
b5fe0 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b ...foreach.($this->prefixesPsr0[
b6000 24 66 69 72 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 $first].as.$prefix.=>.$dirs).{..
b6020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 ...............if.(0.===.strpos(
b6040 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 $class,.$prefix)).{.............
b6060 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 ........foreach.($dirs.as.$dir).
b6080 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 69 66 20 28 66 69 {.........................if.(fi
b60a0 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 52 45 43 54 4f le_exists($file.=.$dir...DIRECTO
b60c0 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 50 73 72 30 29 RY_SEPARATOR...$logicalPathPsr0)
b60e0 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 20 20 20 20 20 20 20 ).{.............................
b6100 72 65 74 75 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 return.$file;...................
b6120 20 20 20 20 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 ......}.....................}...
b6140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ..............}.............}...
b6160 20 20 20 20 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 ......}..........//.PSR-0.fallba
b6180 63 6b 20 64 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 ck.dirs.........foreach.($this->
b61a0 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 20 20 20 20 fallbackDirsPsr0.as.$dir).{.....
b61c0 20 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 ........if.(file_exists($file.=.
b61e0 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f $dir...DIRECTORY_SEPARATOR...$lo
b6200 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gicalPathPsr0)).{...............
b6220 20 20 72 65 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 ..return.$file;.............}...
b6240 20 20 20 20 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 ......}..........//.PSR-0.includ
b6260 65 20 70 61 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 e.paths..........if.($this->useI
b6280 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 ncludePath.&&.$file.=.stream_res
b62a0 6f 6c 76 65 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 olve_include_path($logicalPathPs
b62c0 72 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 24 66 69 6c 65 3b r0)).{.............return.$file;
b62e0 0a 20 20 20 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 .........}.....}.}../**..*.Scope
b6300 20 69 73 6f 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 .isolated.include...*..*.Prevent
b6320 73 20 61 63 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 s.access.to.$this/self.from.incl
b6340 75 64 65 64 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 uded.files...*/.function.include
b6360 46 69 6c 65 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 File($file).{.....include.$file;
b6380 0a 7d 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
b63a0 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#",..
b63c0 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"
b63e0 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
b6400 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":.[
b6420 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
b6440 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":.{.
b6460 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",...
b6480 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
b64a0 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/'
b64c0 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
b64e0 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"
b6500 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
b6520 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
b6540 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
b6560 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
b6580 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
b65a0 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
b65c0 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":
b65e0 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
b6600 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
b6620 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.
b6640 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
b6660 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
b6680 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
b66a0 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.
b66c0 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
b66e0 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.
b6700 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".
b6720 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"
b6740 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"
b6760 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
b6780 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.".......
b67a0 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":.{......
b67c0 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",.........
b67e0 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":.{................."
b6800 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",................
b6820 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
b6840 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."...
b6860 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 ..........}.........},........."
b6880 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":
b68a0 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
b68c0 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
b68e0 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
b6900 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":
b6920 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",
b6940 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
b6960 6b 61 67 65 20 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d kage.version,.see.https://getcom
b6980 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 poser.org/doc/04-schema.md#versi
b69a0 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 on.for.more.info.on.valid.scheme
b69c0 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b s.".........},........."time":.{
b69e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 ............."type":."string",..
b6a00 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 6b 61 ..........."description":."Packa
b6a20 67 65 20 72 65 6c 65 61 73 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 ge.release.date,.in.'YYYY-MM-DD'
b6a40 2c 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 ,.'YYYY-MM-DD.HH:MM:SS'.or.'YYYY
b6a60 2d 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 -MM-DDTHH:MM:SSZ'.format."......
b6a80 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 20 20 ...},........."license":.{......
b6aa0 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 ......."type":.["string",."array
b6ac0 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 "],............."description":."
b6ae0 4c 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 License.name..Or.an.array.of.lic
b6b00 65 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 ense.names.".........},.........
b6b20 22 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a "authors":.{............."type":
b6b40 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ."array",............."descripti
b6b60 6f 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 on":."List.of.authors.that.contr
b6b80 69 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 ibuted.to.the.package..This.is.t
b6ba0 79 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e ypically.the.main.maintainers,.n
b6bc0 6f 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ot.the.full.list.",.............
b6be0 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 70 65 "items":.{................."type
b6c00 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 ":."object",................."ad
b6c20 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 ditionalProperties":.false,.....
b6c40 20 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 ............"required":.[."name"
b6c60 5d 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 ],................."properties":
b6c80 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b .{....................."name":.{
b6ca0 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 3a ........................."type":
b6cc0 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 20 ."string",......................
b6ce0 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 ..."description":."Full.name.of.
b6d00 74 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 the.author."....................
b6d20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a .},....................."email":
b6d40 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 65 .{........................."type
b6d60 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 20 ":."string",....................
b6d80 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 ....."description":."Email.addre
b6da0 73 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ss.of.the.author.",.............
b6dc0 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 20 ............"format":."email"...
b6de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..................},............
b6e00 20 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ........."homepage":.{..........
b6e20 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 2c ..............."type":."string",
b6e40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ........................."descri
b6e60 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 61 75 ption":."Homepage.URL.for.the.au
b6e80 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 thor.",.........................
b6ea0 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "format":."uri".................
b6ec0 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 ....},....................."role
b6ee0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ":.{........................."ty
b6f00 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
b6f20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 ......."description":."Author's.
b6f40 72 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 role.in.the.project."...........
b6f60 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ..........}.................}...
b6f80 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 ..........}.........},........."
b6fa0 72 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 require":.{............."type":.
b6fc0 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 69 "object",............."descripti
b6fe0 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 20 on":."This.is.a.hash.of.package.
b7000 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 69 name.(keys).and.version.constrai
b7020 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 nts.(values).that.are.required.t
b7040 6f 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 o.run.this.package.",...........
b7060 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..
b7080 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 .......},........."replace":.{..
b70a0 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",....
b70c0 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
b70e0 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 61 .a.hash.of.package.name.(keys).a
b7100 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 nd.version.constraints.(values).
b7120 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 61 63 that.can.be.replaced.by.this.pac
b7140 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 kage.",............."additionalP
b7160 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.........},.....
b7180 20 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 ...."conflict":.{............."t
b71a0 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
b71c0 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 cription":."This.is.a.hash.of.pa
b71e0 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f ckage.name.(keys).and.version.co
b7200 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 nstraints.(values).that.conflict
b7220 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 .with.this.package.",...........
b7240 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..
b7260 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 .......},........."provide":.{..
b7280 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",....
b72a0 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
b72c0 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 61 .a.hash.of.package.name.(keys).a
b72e0 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 nd.version.constraints.(values).
b7300 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 that.this.package.provides.in.ad
b7320 64 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c dition.to.this.package's.name.",
b7340 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 ............."additionalProperti
b7360 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 72 65 es":.true.........},........."re
b7380 71 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 quire-dev":.{............."type"
b73a0 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 :."object",............."descrip
b73c0 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 tion":."This.is.a.hash.of.packag
b73e0 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 73 74 72 e.name.(keys).and.version.constr
b7400 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 aints.(values).that.this.package
b7420 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 .requires.for.developing.it.(tes
b7440 74 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 ting.tools.and.such).",.........
b7460 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 ...."additionalProperties":.true
b7480 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b .........},........."suggest":.{
b74a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 ............."type":."object",..
b74c0 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 ..........."description":."This.
b74e0 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 is.a.hash.of.package.name.(keys)
b7500 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 .and.descriptions.(values).that.
b7520 74 68 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 this.package.suggests.work.well.
b7540 77 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 64 20 with.it.(this.will.be.suggested.
b7560 74 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 to.the.user.during.installation)
b7580 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 .",............."additionalPrope
b75a0 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 rties":.true.........},.........
b75c0 22 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 "config":.{............."type":.
b75e0 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 69 "object",............."descripti
b7600 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 20 20 20 20 on":."Composer.options.",.......
b7620 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 20 ......"properties":.{...........
b7640 20 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 ......"process-timeout":.{......
b7660 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 72 22 ..............."type":."integer"
b7680 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
b76a0 6f 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 on":."The.timeout.in.seconds.for
b76c0 20 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 .process.executions,.defaults.to
b76e0 20 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 .300.(5mins).".................}
b7700 2c 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 ,................."use-include-p
b7720 61 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 ath":.{....................."typ
b7740 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 20 20 20 e":."boolean",..................
b7760 20 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 ..."description":."If.true,.the.
b7780 43 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 Composer.autoloader.will.also.lo
b77a0 6f 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 ok.for.classes.in.the.PHP.includ
b77c0 65 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 e.path.".................},.....
b77e0 20 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 ............"preferred-install":
b7800 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 .{....................."type":."
b7820 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 string",....................."de
b7840 73 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 scription":."The.install.method.
b7860 43 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 Composer.will.prefer.to.use,.def
b7880 61 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 aults.to.auto.and.can.be.any.of.
b78a0 73 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 source,.dist.or.auto."..........
b78c0 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 6e 6f 74 69 66 .......},................."notif
b78e0 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y-on-install":.{................
b7900 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 ....."type":."boolean",.........
b7920 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 43 6f 6d 70 ............"description":."Comp
b7940 6f 73 65 72 20 61 6c 6c 6f 77 73 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 6f 20 64 65 66 69 oser.allows.repositories.to.defi
b7960 6e 65 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 55 52 4c 2c 20 73 6f 20 74 68 61 74 20 74 ne.a.notification.URL,.so.that.t
b7980 68 65 79 20 67 65 74 20 6e 6f 74 69 66 69 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 70 61 63 6b hey.get.notified.whenever.a.pack
b79a0 61 67 65 20 66 72 6f 6d 20 74 68 61 74 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 69 6e 73 74 age.from.that.repository.is.inst
b79c0 61 6c 6c 65 64 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f alled..This.option.allows.you.to
b79e0 20 64 69 73 61 62 6c 65 20 74 68 61 74 20 62 65 68 61 76 69 6f 75 72 2c 20 64 65 66 61 75 6c 74 .disable.that.behaviour,.default
b7a00 73 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 s.to.true.".................},..
b7a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 ..............."github-protocols
b7a40 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":
b7a60 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 ."array",....................."d
b7a80 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c escription":."A.list.of.protocol
b7aa0 73 20 74 6f 20 75 73 65 20 66 6f 72 20 67 69 74 68 75 62 2e 63 6f 6d 20 63 6c 6f 6e 65 73 2c 20 s.to.use.for.github.com.clones,.
b7ac0 69 6e 20 70 72 69 6f 72 69 74 79 20 6f 72 64 65 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b in.priority.order,.defaults.to.[
b7ae0 5c 22 67 69 74 5c 22 2c 20 5c 22 68 74 74 70 73 5c 22 2c 20 5c 22 68 74 74 70 5c 22 5d 2e 22 2c \"git\",.\"https\",.\"http\"].",
b7b00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a ....................."items":.{.
b7b20 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":.
b7b40 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 "string".....................}..
b7b60 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 ...............},...............
b7b80 20 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 .."github-oauth":.{.............
b7ba0 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 ........"type":."object",.......
b7bc0 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 41 20 .............."description":."A.
b7be0 68 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 hash.of.domain.name.=>.github.AP
b7c00 49 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 I.oauth.tokens,.typically.{\"git
b7c20 68 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 hub.com\":\"<token>\"}.",.......
b7c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 .............."additionalPropert
b7c60 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 ies":.true.................},...
b7c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 6c 61 62 2d 6f 61 75 74 68 22 3a 20 7b 0a .............."gitlab-oauth":.{.
b7ca0 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
b7cc0 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
b7ce0 69 70 74 69 6f 6e 22 3a 20 22 41 20 68 61 73 68 20 6f 66 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 20 iption":."A.hash.of.domain.name.
b7d00 3d 3e 20 67 69 74 6c 61 62 20 41 50 49 20 6f 61 75 74 68 20 74 6f 6b 65 6e 73 2c 20 74 79 70 69 =>.gitlab.API.oauth.tokens,.typi
b7d20 63 61 6c 6c 79 20 7b 5c 22 67 69 74 6c 61 62 2e 63 6f 6d 5c 22 3a 5c 22 3c 74 6f 6b 65 6e 3e 5c cally.{\"gitlab.com\":\"<token>\
b7d40 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 "}.",....................."addit
b7d60 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..........
b7d80 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 68 74 74 70 2d .......},................."http-
b7da0 62 61 73 69 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 20 22 74 basic":.{....................."t
b7dc0 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."object",.................
b7de0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 68 61 73 68 20 6f 66 20 64 6f ...."description":."A.hash.of.do
b7e00 6d 61 69 6e 20 6e 61 6d 65 20 3d 3e 20 7b 5c 22 75 73 65 72 6e 61 6d 65 5c 22 3a 20 5c 22 2e 2e main.name.=>.{\"username\":.\"..
b7e20 2e 5c 22 2c 20 5c 22 70 61 73 73 77 6f 72 64 5c 22 3a 20 5c 22 2e 2e 2e 5c 22 7d 2e 22 2c 0a 20 .\",.\"password\":.\"...\"}.",..
b7e40 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 50 72 ..................."additionalPr
b7e60 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 20 20 operties":.true.................
b7e80 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 74 6f 72 65 2d 61 75 74 68 73 22 },................."store-auths"
b7ea0 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":.
b7ec0 5b 22 73 74 72 69 6e 67 22 2c 20 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 ["string",."boolean"],..........
b7ee0 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 57 68 61 74 20 ..........."description":."What.
b7f00 74 6f 20 64 6f 20 61 66 74 65 72 20 70 72 6f 6d 70 74 69 6e 67 20 66 6f 72 20 61 75 74 68 65 6e to.do.after.prompting.for.authen
b7f20 74 69 63 61 74 69 6f 6e 2c 20 6f 6e 65 20 6f 66 3a 20 74 72 75 65 20 28 73 74 6f 72 65 29 2c 20 tication,.one.of:.true.(store),.
b7f40 66 61 6c 73 65 20 28 64 6f 20 6e 6f 74 20 73 74 6f 72 65 29 20 6f 72 20 5c 22 70 72 6f 6d 70 74 false.(do.not.store).or.\"prompt
b7f60 5c 22 20 28 61 73 6b 20 65 76 65 72 79 20 74 69 6d 65 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f \".(ask.every.time),.defaults.to
b7f80 20 70 72 6f 6d 70 74 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 .prompt.".................},....
b7fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6c 61 74 66 6f 72 6d 22 3a 20 7b 0a 20 20 20 20 20 ............."platform":.{......
b7fc0 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 22 2c ..............."type":."object",
b7fe0 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
b8000 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
b8020 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 28 76 61 6c 75 65 73 29 20 ame.(keys).and.version.(values).
b8040 74 68 61 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 74 6f 20 6d 6f 63 6b 20 74 68 65 20 70 6c that.will.be.used.to.mock.the.pl
b8060 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 20 74 68 69 73 20 6d 61 63 68 69 6e 65 2e atform.packages.on.this.machine.
b8080 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 69 6f 6e ",....................."addition
b80a0 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 20 20 20 alProperties":.true.............
b80c0 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 76 65 6e 64 6f 72 2d 64 ....},................."vendor-d
b80e0 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 ir":.{....................."type
b8100 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 20 ":."string",....................
b8120 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 ."description":."The.location.wh
b8140 65 72 65 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 2c 20 ere.all.packages.are.installed,.
b8160 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 5c 22 2e 22 0a 20 20 20 20 20 20 20 defaults.to.\"vendor\"."........
b8180 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 62 69 6e .........},................."bin
b81a0 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 -dir":.{....................."ty
b81c0 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
b81e0 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 ..."description":."The.location.
b8200 77 68 65 72 65 20 61 6c 6c 20 62 69 6e 61 72 69 65 73 20 61 72 65 20 6c 69 6e 6b 65 64 2c 20 64 where.all.binaries.are.linked,.d
b8220 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 2f 62 69 6e 5c 22 2e 22 0a 20 20 20 20 efaults.to.\"vendor/bin\".".....
b8240 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
b8260 63 61 63 68 65 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cache-dir":.{...................
b8280 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."string",.............
b82a0 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 ........"description":."The.loca
b82c0 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 63 61 63 68 65 73 20 61 72 65 20 6c 6f 63 61 74 65 tion.where.all.caches.are.locate
b82e0 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7e 2f 2e 63 6f 6d 70 6f 73 65 72 2f 63 61 63 d,.defaults.to.\"~/.composer/cac
b8300 68 65 5c 22 20 6f 6e 20 2a 6e 69 78 20 61 6e 64 20 5c 22 25 4c 4f 43 41 4c 41 50 50 44 41 54 41 he\".on.*nix.and.\"%LOCALAPPDATA
b8320 25 5c 5c 43 6f 6d 70 6f 73 65 72 5c 22 20 6f 6e 20 77 69 6e 64 6f 77 73 2e 22 0a 20 20 20 20 20 %\\Composer\".on.windows."......
b8340 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 63 ...........},................."c
b8360 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ache-files-dir":.{..............
b8380 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
b83a0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 ............."description":."The
b83c0 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 66 69 6c 65 73 20 28 7a 69 70 20 64 6f 77 6e 6c .location.where.files.(zip.downl
b83e0 6f 61 64 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 oads).are.cached,.defaults.to.\"
b8400 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 {$cache-dir}/files\"."..........
b8420 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 .......},................."cache
b8440 2d 72 65 70 6f 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -repo-dir":.{...................
b8460 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."string",.............
b8480 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 ........"description":."The.loca
b84a0 74 69 6f 6e 20 77 68 65 72 65 20 72 65 70 6f 20 28 67 69 74 2f 68 67 20 72 65 70 6f 20 63 6c 6f tion.where.repo.(git/hg.repo.clo
b84c0 6e 65 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b nes).are.cached,.defaults.to.\"{
b84e0 24 63 61 63 68 65 2d 64 69 72 7d 2f 72 65 70 6f 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 $cache-dir}/repo\"."............
b8500 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 76 .....},................."cache-v
b8520 63 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 cs-dir":.{....................."
b8540 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",................
b8560 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f ....."description":."The.locatio
b8580 6e 20 77 68 65 72 65 20 76 63 73 20 69 6e 66 6f 73 20 28 67 69 74 20 63 6c 6f 6e 65 73 2c 20 67 n.where.vcs.infos.(git.clones,.g
b85a0 69 74 68 75 62 20 61 70 69 20 63 61 6c 6c 73 2c 20 65 74 63 2e 20 77 68 65 6e 20 72 65 61 64 69 ithub.api.calls,.etc..when.readi
b85c0 6e 67 20 76 63 73 20 72 65 70 6f 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c ng.vcs.repos).are.cached,.defaul
b85e0 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 76 63 73 5c 22 2e 22 0a 20 20 20 ts.to.\"{$cache-dir}/vcs\"."....
b8600 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 .............},.................
b8620 22 63 61 63 68 65 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "cache-ttl":.{..................
b8640 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ..."type":."integer",...........
b8660 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 64 65 .........."description":."The.de
b8680 66 61 75 6c 74 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 2c 20 64 65 66 61 75 6c fault.cache.time-to-live,.defaul
b86a0 74 73 20 74 6f 20 31 35 35 35 32 30 30 30 20 28 36 20 6d 6f 6e 74 68 73 29 2e 22 0a 20 20 20 20 ts.to.15552000.(6.months).".....
b86c0 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
b86e0 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 cache-files-ttl":.{.............
b8700 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 ........"type":."integer",......
b8720 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
b8740 68 65 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 20 66 6f 72 20 66 69 6c 65 73 2c he.cache.time-to-live.for.files,
b8760 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 63 61 63 68 65 2d .defaults.to.the.value.of.cache-
b8780 74 74 6c 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 ttl.".................},........
b87a0 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 22 3a 20 ........."cache-files-maxsize":.
b87c0 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 22 {....................."type":.["
b87e0 73 74 72 69 6e 67 22 2c 20 22 69 6e 74 65 67 65 72 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 string",."integer"],............
b8800 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 63 61 63 ........."description":."The.cac
b8820 68 65 20 6d 61 78 20 73 69 7a 65 20 66 6f 72 20 74 68 65 20 66 69 6c 65 73 20 63 61 63 68 65 2c he.max.size.for.the.files.cache,
b8840 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 33 30 30 4d 69 42 5c 22 2e 22 0a 20 20 20 20 20 20 .defaults.to.\"300MiB\".".......
b8860 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 62 69 ..........},................."bi
b8880 6e 2d 63 6f 6d 70 61 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-compat":.{....................
b88a0 20 22 65 6e 75 6d 22 3a 20 5b 22 61 75 74 6f 22 2c 20 22 66 75 6c 6c 22 5d 2c 0a 20 20 20 20 20 ."enum":.["auto",."full"],......
b88c0 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
b88e0 68 65 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 62 69 6e 61 72 69 65 73 he.compatibility.of.the.binaries
b8900 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 61 75 74 6f 5c 22 20 28 61 75 74 6f 6d 61 74 69 ,.defaults.to.\"auto\".(automati
b8920 63 61 6c 6c 79 20 67 75 65 73 73 65 64 29 20 61 6e 64 20 63 61 6e 20 62 65 20 5c 22 66 75 6c 6c cally.guessed).and.can.be.\"full
b8940 5c 22 20 28 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 62 6f 74 68 20 57 69 6e 64 6f 77 73 \".(compatible.with.both.Windows
b8960 20 61 6e 64 20 55 6e 69 78 2d 62 61 73 65 64 20 73 79 73 74 65 6d 73 29 2e 22 0a 20 20 20 20 20 .and.Unix-based.systems)."......
b8980 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 64 ...........},................."d
b89a0 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 iscard-changes":.{..............
b89c0 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 6f 6f 6c 65 ......."type":.["string",."boole
b89e0 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 65 73 63 72 an"],....................."descr
b8a00 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 73 74 79 6c 65 20 6f 66 20 68 iption":."The.default.style.of.h
b8a20 61 6e 64 6c 69 6e 67 20 64 69 72 74 79 20 75 70 64 61 74 65 73 2c 20 64 65 66 61 75 6c 74 73 20 andling.dirty.updates,.defaults.
b8a40 74 6f 20 66 61 6c 73 65 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 74 72 75 65 2c to.false.and.can.be.any.of.true,
b8a60 20 66 61 6c 73 65 20 6f 72 20 5c 22 73 74 61 73 68 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 .false.or.\"stash\"."...........
b8a80 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f ......},................."autolo
b8aa0 61 64 65 72 2d 73 75 66 66 69 78 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ader-suffix":.{.................
b8ac0 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",...........
b8ae0 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 6f 6e .........."description":."Option
b8b00 61 6c 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 20 73 75 66 66 69 78 al.string.to.be.used.as.a.suffix
b8b20 20 66 6f 72 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 43 6f 6d 70 6f 73 65 72 20 61 75 74 6f .for.the.generated.Composer.auto
b8b40 6c 6f 61 64 65 72 2e 20 57 68 65 6e 20 6e 75 6c 6c 20 61 20 72 61 6e 64 6f 6d 20 6f 6e 65 20 77 loader..When.null.a.random.one.w
b8b60 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ill.be.generated."..............
b8b80 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6f 70 74 69 6d 69 7a 65 2d ...},................."optimize-
b8ba0 61 75 74 6f 6c 6f 61 64 65 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 autoloader":.{..................
b8bc0 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 20 ..."type":."boolean",...........
b8be0 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 6c 77 61 79 73 .........."description":."Always
b8c00 20 6f 70 74 69 6d 69 7a 65 20 77 68 65 6e 20 64 75 6d 70 69 6e 67 20 74 68 65 20 61 75 74 6f 6c .optimize.when.dumping.the.autol
b8c20 6f 61 64 65 72 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 oader.".................},......
b8c40 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 22 3a ..........."prepend-autoloader":
b8c60 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 .{....................."type":."
b8c80 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 20 20 22 64 boolean",....................."d
b8ca0 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 66 61 6c 73 65 2c 20 74 68 65 20 63 6f 6d 70 escription":."If.false,.the.comp
b8cc0 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 70 72 65 70 oser.autoloader.will.not.be.prep
b8ce0 65 6e 64 65 64 20 74 6f 20 65 78 69 73 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 73 2c 20 64 ended.to.existing.autoloaders,.d
b8d00 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efaults.to.true."...............
b8d20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6c 61 73 73 6d 61 70 2d 61 ..},................."classmap-a
b8d40 75 74 68 6f 72 69 74 61 74 69 76 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uthoritative":.{................
b8d60 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 ....."type":."boolean",.........
b8d80 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 74 ............"description":."If.t
b8da0 72 75 65 2c 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c rue,.the.composer.autoloader.wil
b8dc0 6c 20 6e 6f 74 20 73 63 61 6e 20 74 68 65 20 66 69 6c 65 73 79 73 74 65 6d 20 66 6f 72 20 63 6c l.not.scan.the.filesystem.for.cl
b8de0 61 73 73 65 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 asses.that.are.not.found.in.the.
b8e00 63 6c 61 73 73 20 6d 61 70 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 66 61 6c 73 65 2e 22 0a 20 class.map,.defaults.to.false."..
b8e20 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 ...............},...............
b8e40 20 20 22 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .."github-domains":.{...........
b8e60 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",......
b8e80 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 41 ..............."description":."A
b8ea0 20 6c 69 73 74 20 6f 66 20 64 6f 6d 61 69 6e 73 20 74 6f 20 75 73 65 20 69 6e 20 67 69 74 68 75 .list.of.domains.to.use.in.githu
b8ec0 62 20 6d 6f 64 65 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 47 69 74 48 75 62 20 b.mode..This.is.used.for.GitHub.
b8ee0 45 6e 74 65 72 70 72 69 73 65 20 73 65 74 75 70 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b Enterprise.setups,.defaults.to.[
b8f00 5c 22 67 69 74 68 75 62 2e 63 6f 6d 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 \"github.com\"].",..............
b8f20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."items":.{...............
b8f40 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 .........."type":."string"......
b8f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
b8f80 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 65 78 70 6f .},................."github-expo
b8fa0 73 65 2d 68 6f 73 74 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 se-hostname":.{.................
b8fc0 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",..........
b8fe0 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 65 66 61 75 ..........."description":."Defau
b9000 6c 74 73 20 74 6f 20 74 72 75 65 2e 20 49 66 20 73 65 74 20 74 6f 20 66 61 6c 73 65 2c 20 74 68 lts.to.true..If.set.to.false,.th
b9020 65 20 4f 41 75 74 68 20 74 6f 6b 65 6e 73 20 63 72 65 61 74 65 64 20 74 6f 20 61 63 63 65 73 73 e.OAuth.tokens.created.to.access
b9040 20 74 68 65 20 67 69 74 68 75 62 20 41 50 49 20 77 69 6c 6c 20 68 61 76 65 20 61 20 64 61 74 65 .the.github.API.will.have.a.date
b9060 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 6d 61 63 68 69 6e 65 20 68 6f 73 74 6e 61 6d 65 .instead.of.the.machine.hostname
b9080 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 .".................},...........
b90a0 20 20 20 20 20 20 22 67 69 74 6c 61 62 2d 64 6f 6d 61 69 6e 73 22 3a 20 7b 0a 20 20 20 20 20 20 ......"gitlab-domains":.{.......
b90c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 .............."type":."array",..
b90e0 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"
b9100 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 69 6e 20 67 :."A.list.of.domains.to.use.in.g
b9120 69 74 6c 61 62 20 6d 6f 64 65 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 63 75 73 itlab.mode..This.is.used.for.cus
b9140 74 6f 6d 20 47 69 74 4c 61 62 20 73 65 74 75 70 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b tom.GitLab.setups,.defaults.to.[
b9160 5c 22 67 69 74 6c 61 62 2e 63 6f 6d 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 \"gitlab.com\"].",..............
b9180 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."items":.{...............
b91a0 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 .........."type":."string"......
b91c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
b91e0 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 72 63 68 69 76 65 2d 66 6f 72 .},................."archive-for
b9200 6d 61 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 mat":.{....................."typ
b9220 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",...................
b9240 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 61 72 .."description":."The.default.ar
b9260 63 68 69 76 69 6e 67 20 66 6f 72 6d 61 74 20 77 68 65 6e 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 chiving.format.when.not.provided
b9280 20 6f 6e 20 63 6c 69 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 74 61 72 5c 22 2e 22 0a 20 .on.cli,.defaults.to.\"tar\"."..
b92a0 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 ...............},...............
b92c0 20 20 22 61 72 63 68 69 76 65 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .."archive-dir":.{..............
b92e0 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
b9300 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 ............."description":."The
b9320 20 64 65 66 61 75 6c 74 20 61 72 63 68 69 76 65 20 70 61 74 68 20 77 68 65 6e 20 6e 6f 74 20 70 .default.archive.path.when.not.p
b9340 72 6f 76 69 64 65 64 20 6f 6e 20 63 6c 69 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 2e 5c rovided.on.cli,.defaults.to.\".\
b9360 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 ".".................}...........
b9380 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 65 78 74 72 61 22 3a 20 ..}.........},........."extra":.
b93a0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c {............."type":.["object",
b93c0 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ."array"],............."descript
b93e0 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 61 20 64 61 74 61 20 74 68 61 74 ion":."Arbitrary.extra.data.that
b9400 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 66 6f 72 20 65 78 61 .can.be.used.by.plugins,.for.exa
b9420 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 70 6f 73 65 72 2d 70 mple,.package.of.type.composer-p
b9440 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 6b 65 79 20 64 65 66 lugin.may.have.a.'class'.key.def
b9460 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 6e 61 6d 65 2e 22 2c ining.an.installer.class.name.",
b9480 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 ............."additionalProperti
b94a0 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 61 75 es":.true.........},........."au
b94c0 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 79 70 65 22 3a 20 22 toload":.{............."type":."
b94e0 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
b9500 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 68 65 20 70 61 63 6b n":."Description.of.how.the.pack
b9520 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 20 20 20 20 20 20 20 age.can.be.autoloaded.",........
b9540 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":.{............
b9560 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 20 20 ....."psr-0":.{.................
b9580 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ...."type":."object",...........
b95a0 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
b95c0 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 61 6e s.a.hash.of.namespaces.(keys).an
b95e0 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 66 6f d.the.directories.they.can.be.fo
b9600 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 73 20 und.into.(values,.can.be.arrays.
b9620 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 0a 20 of.paths).by.the.autoloader.",..
b9640 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 50 72 ..................."additionalPr
b9660 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 20 20 operties":.true.................
b9680 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 20 20 },................."psr-4":.{...
b96a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 .................."type":."objec
b96c0 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 t",....................."descrip
b96e0 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 tion":."This.is.a.hash.of.namesp
b9700 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 63 74 aces.(keys).and.the.PSR-4.direct
b9720 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 20 63 ories.they.can.map.to.(values,.c
b9740 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 61 75 an.be.arrays.of.paths).by.the.au
b9760 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 20 20 toloader.",.....................
b9780 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 20 "additionalProperties":.true....
b97a0 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 .............},.................
b97c0 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 20 20 "classmap":.{...................
b97e0 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 20 .."type":."array",..............
b9800 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 ......."description":."This.is.a
b9820 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 6e 74 n.array.of.directories.that.cont
b9840 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 74 68 ain.classes.to.be.included.in.th
b9860 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 2e 22 e.class-map.generation.process."
b9880 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 .................},.............
b98a0 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 20 20 ...."files":.{..................
b98c0 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",.............
b98e0 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.
b9900 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 61 79 an.array.of.files.that.are.alway
b9920 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 20 20 s.required.on.every.request."...
b9940 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 ..............},................
b9960 20 22 65 78 63 6c 75 64 65 2d 66 72 6f 6d 2d 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 ."exclude-from-classmap":.{.....
b9980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c ................"type":."array",
b99a0 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
b99c0 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 70 61 74 74 65 72 6e n":."This.is.an.array.of.pattern
b99e0 73 20 74 6f 20 65 78 63 6c 75 64 65 20 66 72 6f 6d 20 61 75 74 6f 6c 6f 61 64 20 63 6c 61 73 73 s.to.exclude.from.autoload.class
b9a00 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 2e 20 28 65 2e 67 2e 20 5c 22 65 78 63 6c 75 64 65 2d map.generation..(e.g..\"exclude-
b9a20 66 72 6f 6d 2d 63 6c 61 73 73 6d 61 70 5c 22 3a 20 5b 5c 22 2f 74 65 73 74 2f 5c 22 2c 20 5c 22 from-classmap\":.[\"/test/\",.\"
b9a40 2f 74 65 73 74 73 2f 5c 22 2c 20 5c 22 2f 54 65 73 74 73 2f 5c 22 5d 22 0a 20 20 20 20 20 20 20 /tests/\",.\"/Tests/\"]"........
b9a60 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 20 .........}.............}........
b9a80 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 2d 64 65 76 22 3a 20 7b 0a 20 20 .},........."autoload-dev":.{...
b9aa0 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",.....
b9ac0 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 65 73 63 72 69 70 74 ........"description":."Descript
b9ae0 69 6f 6e 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 75 74 6f 6c 6f 61 64 20 72 75 6c 65 73 ion.of.additional.autoload.rules
b9b00 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 70 75 72 70 6f 73 65 20 28 65 67 2e 20 61 20 .for.development.purpose.(eg..a.
b9b20 74 65 73 74 20 73 75 69 74 65 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 test.suite).",............."prop
b9b40 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d erties":.{................."psr-
b9b60 30 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 0":.{....................."type"
b9b80 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 20 20 20 20 :."object",.....................
b9ba0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f "description":."This.is.a.hash.o
b9bc0 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 64 69 72 65 f.namespaces.(keys).and.the.dire
b9be0 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 74 6f 20 28 ctories.they.can.be.found.into.(
b9c00 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 values,.can.be.arrays.of.paths).
b9c20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 by.the.autoloader.",............
b9c40 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a ........."additionalProperties":
b9c60 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 20 20 20 20 .true.................},........
b9c80 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 34 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........."psr-4":.{.............
b9ca0 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 ........"type":."object",.......
b9cc0 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
b9ce0 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 65 79 73 is.is.a.hash.of.namespaces.(keys
b9d00 29 20 61 6e 64 20 74 68 65 20 50 53 52 2d 34 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 ).and.the.PSR-4.directories.they
b9d20 20 63 61 6e 20 6d 61 70 20 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 .can.map.to.(values,.can.be.arra
b9d40 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 65 72 2e 22 ys.of.paths).by.the.autoloader."
b9d60 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 69 6f 6e 61 ,....................."additiona
b9d80 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 20 20 20 20 lProperties":.true..............
b9da0 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 61 73 73 6d 61 70 22 ...},................."classmap"
b9dc0 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":.
b9de0 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
b9e00 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 scription":."This.is.an.array.of
b9e20 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 63 6c 61 73 73 65 .directories.that.contain.classe
b9e40 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6c 61 73 73 2d 6d 61 s.to.be.included.in.the.class-ma
b9e60 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 20 20 p.generation.process."..........
b9e80 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 69 6c 65 73 .......},................."files
b9ea0 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":
b9ec0 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 ."array",....................."d
b9ee0 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f escription":."This.is.an.array.o
b9f00 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64 f.files.that.are.always.required
b9f20 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 .on.every.request.".............
b9f40 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 20 ....}.............}.........},..
b9f60 20 20 20 20 20 20 20 22 61 72 63 68 69 76 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......."archive":.{.............
b9f80 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "type":.["object"],.............
b9fa0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 63 72 65 61 "description":."Options.for.crea
b9fc0 74 69 6e 67 20 70 61 63 6b 61 67 65 20 61 72 63 68 69 76 65 73 20 66 6f 72 20 64 69 73 74 72 69 ting.package.archives.for.distri
b9fe0 62 75 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 bution.",............."propertie
ba000 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 63 6c 75 64 65 22 3a s":.{................."exclude":
ba020 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 .{....................."type":."
ba040 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 73 array",....................."des
ba060 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 61 74 74 65 72 6e 73 20 66 cription":."A.list.of.patterns.f
ba080 6f 72 20 70 61 74 68 73 20 74 6f 20 65 78 63 6c 75 64 65 20 6f 72 20 69 6e 63 6c 75 64 65 20 69 or.paths.to.exclude.or.include.i
ba0a0 66 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 6c 61 6d 61 74 69 6f 6e 20 6d f.prefixed.with.an.exclamation.m
ba0c0 61 72 6b 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 ark.".................}.........
ba0e0 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 65 70 6f 73 69 ....}.........},........."reposi
ba100 74 6f 72 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b tories":.{............."type":.[
ba120 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "object",."array"],.............
ba140 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 61 64 64 69 74 69 6f "description":."A.set.of.additio
ba160 6e 61 6c 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 65 72 65 20 70 61 63 6b 61 67 65 73 20 nal.repositories.where.packages.
ba180 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 can.be.found.",............."add
ba1a0 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 itionalProperties":.true........
ba1c0 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 22 3a .},........."minimum-stability":
ba1e0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 .{............."type":.["string"
ba200 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 54 ],............."description":."T
ba220 68 65 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 74 68 65 20 70 61 63 6b 61 67 65 he.minimum.stability.the.package
ba240 73 20 6d 75 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 2d 61 62 6c 65 2e 20 s.must.have.to.be.install-able..
ba260 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 20 64 65 76 2c 20 61 6c 70 68 61 2c Possible.values.are:.dev,.alpha,
ba280 20 62 65 74 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .beta,.RC,.stable.",............
ba2a0 20 22 70 61 74 74 65 72 6e 22 3a 20 22 5e 64 65 76 7c 61 6c 70 68 61 7c 62 65 74 61 7c 72 63 7c ."pattern":."^dev|alpha|beta|rc|
ba2c0 52 43 7c 73 74 61 62 6c 65 24 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 RC|stable$".........},........."
ba2e0 70 72 65 66 65 72 2d 73 74 61 62 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 prefer-stable":.{............."t
ba300 79 70 65 22 3a 20 5b 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ype":.["boolean"],............."
ba320 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 73 65 74 20 74 6f 20 74 72 75 65 2c 20 73 description":."If.set.to.true,.s
ba340 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 77 69 6c 6c 20 62 65 20 70 72 65 66 65 72 72 65 64 table.packages.will.be.preferred
ba360 20 74 6f 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 .to.dev.packages.when.possible,.
ba380 65 76 65 6e 20 69 66 20 74 68 65 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c even.if.the.minimum-stability.al
ba3a0 6c 6f 77 73 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 2e 22 0a 20 20 20 20 20 20 20 lows.unstable.packages."........
ba3c0 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 62 69 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .},........."bin":.{............
ba3e0 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ."type":.["array"],.............
ba400 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 74 "description":."A.set.of.files.t
ba420 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 62 69 6e 61 72 69 65 hat.should.be.treated.as.binarie
ba440 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 62 69 6e 2d 64 69 72 20 28 66 72 s.and.symlinked.into.bin-dir.(fr
ba460 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 om.config).",............."items
ba480 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 ":.{................."type":."st
ba4a0 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 ring".............}.........},..
ba4c0 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 ......."include-path":.{........
ba4e0 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 ....."type":.["array"],.........
ba500 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 ...."description":."DEPRECATED:.
ba520 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 68 69 63 68 20 73 68 6f 75 A.list.of.directories.which.shou
ba540 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 48 50 27 73 20 69 6e 63 6c 75 64 65 20 70 61 ld.get.added.to.PHP's.include.pa
ba560 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 74 6f 20 73 75 70 70 th..This.is.only.present.to.supp
ba580 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 74 73 2c 20 61 6e 64 20 61 6c 6c 20 6e 65 77 ort.legacy.projects,.and.all.new
ba5a0 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 61 62 6c 79 20 75 73 65 20 61 75 74 6f .code.should.preferably.use.auto
ba5c0 6c 6f 61 64 69 6e 67 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 loading.",............."items":.
ba5e0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e {................."type":."strin
ba600 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 g".............}.........},.....
ba620 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ...."scripts":.{............."ty
ba640 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 pe":.["object"],............."de
ba660 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 63 72 69 70 74 73 20 6c 69 73 74 65 6e 65 72 73 20 74 scription":."Scripts.listeners.t
ba680 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 62 65 66 6f 72 65 2f 61 66 74 65 hat.will.be.executed.before/afte
ba6a0 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 r.some.events.",............."pr
ba6c0 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 operties":.{................."pr
ba6e0 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-install-cmd":.{...............
ba700 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"
ba720 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
ba740 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 73 74 61 6c 6c ion":."Occurs.before.the.install
ba760 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f .command.is.executed,.contains.o
ba780 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c ne.or.more.Class::method.callabl
ba7a0 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 es.or.shell.commands."..........
ba7c0 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d .......},................."post-
ba7e0 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 install-cmd":.{.................
ba800 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c ...."type":.["array",."string"],
ba820 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
ba840 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f n":."Occurs.after.the.install.co
ba860 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 mmand.is.executed,.contains.one.
ba880 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 or.more.Class::method.callables.
ba8a0 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 or.shell.commands.".............
ba8c0 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 75 70 64 61 ....},................."pre-upda
ba8e0 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 te-cmd":.{....................."
ba900 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 type":.["array",."string"],.....
ba920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
ba940 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 Occurs.before.the.update.command
ba960 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f .is.executed,.contains.one.or.mo
ba980 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 re.Class::method.callables.or.sh
ba9a0 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d ell.commands.".................}
ba9c0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 ,................."post-update-c
ba9e0 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 md":.{....................."type
baa00 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"],.........
baa20 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
baa40 72 73 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 rs.after.the.update.command.is.e
baa60 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c xecuted,.contains.one.or.more.Cl
baa80 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 ass::method.callables.or.shell.c
baaa0 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 ommands.".................},....
baac0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 73 74 61 74 75 73 2d 63 6d 64 22 3a 20 7b ............."pre-status-cmd":.{
baae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 ....................."type":.["a
bab00 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rray",."string"],...............
bab20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 ......"description":."Occurs.bef
bab40 6f 72 65 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 ore.the.status.command.is.execut
bab60 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::
bab80 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
baba0 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.".................},.........
babc0 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 73 74 61 74 75 73 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 ........"post-status-cmd":.{....
babe0 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
bac00 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"],...................
bac20 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
bac40 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 he.status.command.is.executed,.c
bac60 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f ontains.one.or.more.Class::metho
bac80 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a d.callables.or.shell.commands.".
baca0 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 ................},..............
bacc0 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 ..."pre-package-install":.{.....
bace0 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"
bad00 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"],....................
bad20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 ."description":."Occurs.before.a
bad40 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 .package.is.installed,.contains.
bad60 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 one.or.more.Class::method.callab
bad80 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 les.or.shell.commands.".........
bada0 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 ........},................."post
badc0 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 -package-install":.{............
bade0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 ........."type":.["array",."stri
bae00 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ng"],....................."descr
bae20 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 iption":."Occurs.after.a.package
bae40 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d .is.installed,.contains.one.or.m
bae60 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
bae80 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.".................
baea0 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d },................."pre-package-
baec0 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 update":.{....................."
baee0 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 type":.["array",."string"],.....
baf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
baf20 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 Occurs.before.a.package.is.updat
baf40 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::
baf60 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
baf80 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.".................},.........
bafa0 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 3a 20 7b ........"post-package-update":.{
bafc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 ....................."type":.["a
bafe0 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rray",."string"],...............
bb000 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 ......"description":."Occurs.aft
bb020 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 61 69 6e er.a.package.is.updated,.contain
bb040 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
bb060 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.".......
bb080 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 ..........},................."pr
bb0a0 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 e-package-uninstall":.{.........
bb0c0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 ............"type":.["array",."s
bb0e0 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 tring"],....................."de
bb100 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 scription":."Occurs.before.a.pac
bb120 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 kage.has.been.uninstalled,.conta
bb140 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 ins.one.or.more.Class::method.ca
bb160 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 llables.or.shell.commands.".....
bb180 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
bb1a0 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 post-package-uninstall":.{......
bb1c0 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",
bb1e0 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"],.....................
bb200 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 "description":."Occurs.after.a.p
bb220 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e ackage.has.been.uninstalled,.con
bb240 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 tains.one.or.more.Class::method.
bb260 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 callables.or.shell.commands."...
bb280 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 ..............},................
bb2a0 20 22 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ."pre-autoload-dump":.{.........
bb2c0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 ............"type":.["array",."s
bb2e0 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 tring"],....................."de
bb300 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 61 scription":."Occurs.before.the.a
bb320 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e utoloader.is.dumped,.contains.on
bb340 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 e.or.more.Class::method.callable
bb360 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 s.or.shell.commands."...........
bb380 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 61 ......},................."post-a
bb3a0 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 utoload-dump":.{................
bb3c0 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d ....."type":.["array",."string"]
bb3e0 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
bb400 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 on":."Occurs.after.the.autoloade
bb420 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 r.is.dumped,.contains.one.or.mor
bb440 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 e.Class::method.callables.or.she
bb460 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c ll.commands.".................},
bb480 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 72 6f 6f 74 2d 70 61 63 6b ................."post-root-pack
bb4a0 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 age-install":.{.................
bb4c0 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c ...."type":.["array",."string"],
bb4e0 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
bb500 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 72 6f 6f 74 2d 70 61 63 6b 61 n":."Occurs.after.the.root-packa
bb520 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 ge.is.installed,.contains.one.or
bb540 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 .more.Class::method.callables.or
bb560 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .shell.commands."...............
bb580 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 63 72 65 61 74 ..},................."post-creat
bb5a0 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-project-cmd":.{...............
bb5c0 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"
bb5e0 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
bb600 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 63 72 65 61 74 65 2d 70 ion":."Occurs.after.the.create-p
bb620 72 6f 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 roject.command.is.executed,.cont
bb640 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
bb660 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."....
bb680 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .............}.............}....
bb6a0 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 22 3a 20 7b 0a 20 20 20 .....},........."support":.{....
bb6c0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 ........."type":."object",......
bb6e0 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":.{..........
bb700 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."email":.{...............
bb720 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",.........
bb740 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 ............"description":."Emai
bb760 6c 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 6f 72 74 2e 22 2c 0a 20 20 20 20 20 20 20 l.address.for.support.",........
bb780 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 ............."format":."email"..
bb7a0 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 ...............},...............
bb7c0 20 20 22 69 73 73 75 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."issues":.{...................
bb7e0 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."string",.............
bb800 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 ........"description":."URL.to.t
bb820 68 65 20 69 73 73 75 65 20 74 72 61 63 6b 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 he.issue.tracker.",.............
bb840 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 ........"format":."uri".........
bb860 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 75 ........},................."foru
bb880 6d 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 m":.{....................."type"
bb8a0 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",.....................
bb8c0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 66 6f 72 75 6d "description":."URL.to.the.forum
bb8e0 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"
bb900 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 :."uri".................},......
bb920 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ..........."wiki":.{............
bb940 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 ........."type":."string",......
bb960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 ..............."description":."U
bb980 52 4c 20 74 6f 20 74 68 65 20 77 69 6b 69 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RL.to.the.wiki.",...............
bb9a0 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 ......"format":."uri"...........
bb9c0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 72 63 22 3a 20 ......},................."irc":.
bb9e0 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
bba00 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
bba20 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 61 6e 6e 65 6c 20 66 6f 72 20 73 75 70 70 cription":."IRC.channel.for.supp
bba40 6f 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 65 72 2f 63 68 61 6e 6e 65 6c 2e 22 2c 0a ort,.as.irc://server/channel.",.
bba60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 ...................."format":."u
bba80 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 ri".................},..........
bbaa0 20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."source":.{..............
bbac0 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
bbae0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c ............."description":."URL
bbb00 20 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 73 6f 75 72 63 .to.browse.or.download.the.sourc
bbb20 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 es.",....................."forma
bbb40 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 2c 0a 20 20 20 t":."uri".................},....
bbb60 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 6f 63 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ............."docs":.{..........
bbb80 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",....
bbba0 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":.
bbbc0 22 55 52 4c 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 22 2c 0a 20 20 20 "URL.to.the.documentation.",....
bbbe0 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"
bbc00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d .................}.............}
bbc20 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6e 6f 6e 2d 66 65 61 74 75 72 65 .........},........."non-feature
bbc40 2d 62 72 61 6e 63 68 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 -branches":.{............."type"
bbc60 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 :.["array"],............."descri
bbc80 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 73 74 72 69 6e 67 20 6f 72 20 72 65 67 65 ption":."A.set.of.string.or.rege
bbca0 78 20 70 61 74 74 65 72 6e 73 20 66 6f 72 20 6e 6f 6e 2d 6e 75 6d 65 72 69 63 20 62 72 61 6e 63 x.patterns.for.non-numeric.branc
bbcc0 68 20 6e 61 6d 65 73 20 74 68 61 74 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 68 61 6e 64 6c 65 64 h.names.that.will.not.be.handled
bbce0 20 61 73 20 66 65 61 74 75 72 65 20 62 72 61 6e 63 68 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 .as.feature.branches.",.........
bbd00 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":.{................."
bbd20 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 20 type":."string".............}...
bbd40 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 62 61 6e 64 6f 6e 65 64 22 3a 20 7b 0a ......},........."abandoned":.{.
bbd60 20 20 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 2c 20 ............"type":.["boolean",.
bbd80 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 72 69 70 74 "string"],............."descript
bbda0 69 6f 6e 22 3a 20 22 49 6e 64 69 63 61 74 65 73 20 77 68 65 74 68 65 72 20 74 68 69 73 20 70 61 ion":."Indicates.whether.this.pa
bbdc0 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 61 62 61 6e 64 6f 6e 65 64 2c 20 69 74 20 63 61 6e ckage.has.been.abandoned,.it.can
bbde0 20 62 65 20 62 6f 6f 6c 65 61 6e 20 6f 72 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2f 55 52 .be.boolean.or.a.package.name/UR
bbe00 4c 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 61 6c 74 65 L.pointing.to.a.recommended.alte
bbe20 72 6e 61 74 69 76 65 2e 20 44 65 66 61 75 6c 74 73 20 74 6f 20 66 61 6c 73 65 2e 22 0a 20 20 20 rnative..Defaults.to.false."....
bbe40 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 7b 0a 20 20 20 20 22 33 38 39 2d 65 78 63 65 70 74 .....}.....}.}.{....."389-except
bbe60 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 33 38 39 20 44 69 72 65 63 74 6f 72 79 20 53 ion":.[........."389.Directory.S
bbe80 65 72 76 65 72 5c 6e 45 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 75 erver\nException".....],....."Au
bbea0 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 toconf-exception-2.0":.[........
bbec0 20 22 41 75 74 6f 63 6f 6e 66 20 65 78 63 65 70 74 69 6f 6e 20 32 2e 30 22 0a 20 20 20 20 5d 2c ."Autoconf.exception.2.0".....],
bbee0 0a 20 20 20 20 22 41 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 2d 33 2e 30 22 3a 20 5b ....."Autoconf-exception-3.0":.[
bbf00 0a 20 20 20 20 20 20 20 20 22 41 75 74 6f 63 6f 6e 66 20 65 78 63 65 70 74 69 6f 6e 20 33 2e 30 ........."Autoconf.exception.3.0
bbf20 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 69 73 6f 6e 2d 65 78 63 65 70 74 69 6f 6e 2d 32 2e ".....],....."Bison-exception-2.
bbf40 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 69 73 6f 6e 20 65 78 63 65 70 74 69 6f 6e 20 32 2":.[........."Bison.exception.2
bbf60 2e 32 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 6c 61 73 73 70 61 74 68 2d 65 78 63 65 70 74 .2".....],....."Classpath-except
bbf80 69 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6c 61 73 73 70 61 74 68 20 65 ion-2.0":.[........."Classpath.e
bbfa0 78 63 65 70 74 69 6f 6e 20 32 2e 30 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 4c 49 53 50 2d xception.2.0".....],....."CLISP-
bbfc0 65 78 63 65 70 74 69 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 4c 49 53 50 exception-2.0":.[........."CLISP
bbfe0 20 65 78 63 65 70 74 69 6f 6e 20 32 2e 30 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 44 69 67 69 .exception.2.0".....],....."Digi
bc000 52 75 6c 65 2d 46 4f 53 53 2d 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 Rule-FOSS-exception":.[.........
bc020 22 44 69 67 69 52 75 6c 65 20 46 4f 53 53 20 4c 69 63 65 6e 73 65 20 45 78 63 65 70 74 69 6f 6e "DigiRule.FOSS.License.Exception
bc040 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 65 43 6f 73 2d 65 78 63 65 70 74 69 6f 6e 2d 32 2e 30 ".....],....."eCos-exception-2.0
bc060 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 65 43 6f 73 20 65 78 63 65 70 74 69 6f 6e 20 32 2e 30 ":.[........."eCos.exception.2.0
bc080 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 46 61 77 6b 65 73 2d 52 75 6e 74 69 6d 65 2d 65 78 63 ".....],....."Fawkes-Runtime-exc
bc0a0 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 61 77 6b 65 73 20 52 75 6e 74 69 eption":.[........."Fawkes.Runti
bc0c0 6d 65 20 45 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 46 4c 54 4b 2d 65 me.Exception".....],....."FLTK-e
bc0e0 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 4c 54 4b 20 65 78 63 65 70 xception":.[........."FLTK.excep
bc100 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 46 6f 6e 74 2d 65 78 63 65 70 74 69 6f 6e tion".....],....."Font-exception
bc120 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 6f 6e 74 20 65 78 63 65 70 74 69 6f 6e -2.0":.[........."Font.exception
bc140 20 32 2e 30 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 66 72 65 65 72 74 6f 73 2d 65 78 63 65 70 .2.0".....],....."freertos-excep
bc160 74 69 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 72 65 65 52 54 4f 53 20 45 tion-2.0":.[........."FreeRTOS.E
bc180 78 63 65 70 74 69 6f 6e 20 32 2e 30 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 43 43 2d 65 78 xception.2.0".....],....."GCC-ex
bc1a0 63 65 70 74 69 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 43 43 20 52 75 6e ception-2.0":.[........."GCC.Run
bc1c0 74 69 6d 65 20 4c 69 62 72 61 72 79 20 65 78 63 65 70 74 69 6f 6e 20 32 2e 30 22 0a 20 20 20 20 time.Library.exception.2.0".....
bc1e0 5d 2c 0a 20 20 20 20 22 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 2d 33 2e 31 22 3a 20 5b 0a 20 20 ],....."GCC-exception-3.1":.[...
bc200 20 20 20 20 20 20 22 47 43 43 20 52 75 6e 74 69 6d 65 20 4c 69 62 72 61 72 79 20 65 78 63 65 70 ......"GCC.Runtime.Library.excep
bc220 74 69 6f 6e 20 33 2e 31 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 67 6e 75 2d 6a 61 76 61 6d 61 tion.3.1".....],....."gnu-javama
bc240 69 6c 2d 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 4a 61 il-exception":.[........."GNU.Ja
bc260 76 61 4d 61 69 6c 20 65 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 69 32 vaMail.exception".....],....."i2
bc280 70 2d 67 70 6c 2d 6a 61 76 61 2d 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 p-gpl-java-exception":.[........
bc2a0 20 22 69 32 70 20 47 50 4c 2b 4a 61 76 61 20 45 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c ."i2p.GPL+Java.Exception".....],
bc2c0 0a 20 20 20 20 22 4c 69 62 74 6f 6f 6c 2d 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 ....."Libtool-exception":.[.....
bc2e0 20 20 20 20 22 4c 69 62 74 6f 6f 6c 20 45 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a 20 ...."Libtool.Exception".....],..
bc300 20 20 20 22 4c 5a 4d 41 2d 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 ..."LZMA-exception":.[........."
bc320 4c 5a 4d 41 20 65 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 6d 69 66 2d LZMA.exception".....],....."mif-
bc340 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 61 63 72 6f 73 20 61 6e exception":.[........."Macros.an
bc360 64 20 49 6e 6c 69 6e 65 20 46 75 6e 63 74 69 6f 6e 73 20 45 78 63 65 70 74 69 6f 6e 22 0a 20 20 d.Inline.Functions.Exception"...
bc380 20 20 5d 2c 0a 20 20 20 20 22 4e 6f 6b 69 61 2d 51 74 2d 65 78 63 65 70 74 69 6f 6e 2d 31 2e 31 ..],....."Nokia-Qt-exception-1.1
bc3a0 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 6f 6b 69 61 20 51 74 20 4c 47 50 4c 20 65 78 63 65 ":.[........."Nokia.Qt.LGPL.exce
bc3c0 70 74 69 6f 6e 20 31 2e 31 22 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 6f 70 65 6e 76 70 6e 2d 6f ption.1.1".....],....."openvpn-o
bc3e0 70 65 6e 73 73 6c 2d 65 78 63 65 70 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 penssl-exception":.[........."Op
bc400 65 6e 56 50 4e 20 4f 70 65 6e 53 53 4c 20 45 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 5d 2c 0a enVPN.OpenSSL.Exception".....],.
bc420 20 20 20 20 22 51 77 74 2d 65 78 63 65 70 74 69 6f 6e 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 ...."Qwt-exception-1.0":.[......
bc440 20 20 20 22 51 77 74 20 65 78 63 65 70 74 69 6f 6e 20 31 2e 30 22 0a 20 20 20 20 5d 2c 0a 20 20 ..."Qwt.exception.1.0".....],...
bc460 20 20 22 75 2d 62 6f 6f 74 2d 65 78 63 65 70 74 69 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 .."u-boot-exception-2.0":.[.....
bc480 20 20 20 20 22 55 2d 42 6f 6f 74 20 65 78 63 65 70 74 69 6f 6e 20 32 2e 30 22 0a 20 20 20 20 5d ...."U-Boot.exception.2.0".....]
bc4a0 2c 0a 20 20 20 20 22 57 78 57 69 6e 64 6f 77 73 2d 65 78 63 65 70 74 69 6f 6e 2d 33 2e 31 22 3a ,....."WxWindows-exception-3.1":
bc4c0 20 5b 0a 20 20 20 20 20 20 20 20 22 57 78 57 69 6e 64 6f 77 73 20 4c 69 62 72 61 72 79 20 45 78 .[........."WxWindows.Library.Ex
bc4e0 63 65 70 74 69 6f 6e 20 33 2e 31 22 0a 20 20 20 20 5d 0a 7d 7b 0a 20 20 20 20 22 30 42 53 44 22 ception.3.1".....].}{....."0BSD"
bc500 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 53 44 20 5a 65 72 6f 20 43 6c 61 75 73 65 20 4c 69 63 :.[........."BSD.Zero.Clause.Lic
bc520 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 ense",.........false.....],.....
bc540 22 41 41 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 74 74 72 69 62 75 74 69 6f 6e 20 41 73 "AAL":.[........."Attribution.As
bc560 73 75 72 61 6e 63 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 surance.License",.........true..
bc580 20 20 20 5d 2c 0a 20 20 20 20 22 41 62 73 74 79 6c 65 73 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 ...],....."Abstyles":.[.........
bc5a0 22 41 62 73 74 79 6c 65 73 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 "Abstyles.License",.........fals
bc5c0 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 64 6f 62 65 2d 32 30 30 36 22 3a 20 5b 0a 20 20 20 e.....],....."Adobe-2006":.[....
bc5e0 20 20 20 20 20 22 41 64 6f 62 65 20 53 79 73 74 65 6d 73 20 49 6e 63 6f 72 70 6f 72 61 74 65 64 ....."Adobe.Systems.Incorporated
bc600 20 53 6f 75 72 63 65 20 43 6f 64 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 22 2c .Source.Code.License.Agreement",
bc620 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 64 6f 62 65 .........false.....],....."Adobe
bc640 2d 47 6c 79 70 68 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 64 6f 62 65 20 47 6c 79 70 68 20 -Glyph":.[........."Adobe.Glyph.
bc660 4c 69 73 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 List.License",.........false....
bc680 20 5d 2c 0a 20 20 20 20 22 41 44 53 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 6d 61 7a 6f .],....."ADSL":.[........."Amazo
bc6a0 6e 20 44 69 67 69 74 61 6c 20 53 65 72 76 69 63 65 73 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 n.Digital.Services.License",....
bc6c0 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 46 4c 2d 31 2e 31 22 3a .....false.....],....."AFL-1.1":
bc6e0 20 5b 0a 20 20 20 20 20 20 20 20 22 41 63 61 64 65 6d 69 63 20 46 72 65 65 20 4c 69 63 65 6e 73 .[........."Academic.Free.Licens
bc700 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 e.v1.1",.........true.....],....
bc720 20 22 41 46 4c 2d 31 2e 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 63 61 64 65 6d 69 63 20 ."AFL-1.2":.[........."Academic.
bc740 46 72 65 65 20 4c 69 63 65 6e 73 65 20 76 31 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 Free.License.v1.2",.........true
bc760 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 46 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 .....],....."AFL-2.0":.[........
bc780 20 22 41 63 61 64 65 6d 69 63 20 46 72 65 65 20 4c 69 63 65 6e 73 65 20 76 32 2e 30 22 2c 0a 20 ."Academic.Free.License.v2.0",..
bc7a0 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 46 4c 2d 32 2e 31 22 .......true.....],....."AFL-2.1"
bc7c0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 63 61 64 65 6d 69 63 20 46 72 65 65 20 4c 69 63 65 6e :.[........."Academic.Free.Licen
bc7e0 73 65 20 76 32 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 se.v2.1",.........true.....],...
bc800 20 20 22 41 46 4c 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 63 61 64 65 6d 69 63 .."AFL-3.0":.[........."Academic
bc820 20 46 72 65 65 20 4c 69 63 65 6e 73 65 20 76 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 .Free.License.v3.0",.........tru
bc840 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 66 6d 70 61 72 73 65 22 3a 20 5b 0a 20 20 20 20 20 e.....],....."Afmparse":.[......
bc860 20 20 20 22 41 66 6d 70 61 72 73 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 ..."Afmparse.License",.........f
bc880 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 47 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 alse.....],....."AGPL-1.0":.[...
bc8a0 20 20 20 20 20 20 22 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 ......"Affero.General.Public.Lic
bc8c0 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c ense.v1.0",.........false.....],
bc8e0 0a 20 20 20 20 22 41 47 50 4c 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 ....."AGPL-3.0":.[........."GNU.
bc900 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 33 Affero.General.Public.License.v3
bc920 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 6c .0",.........true.....],....."Al
bc940 61 64 64 69 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 6c 61 64 64 69 6e 20 46 72 65 65 20 addin":.[........."Aladdin.Free.
bc960 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 Public.License",.........false..
bc980 20 20 20 5d 2c 0a 20 20 20 20 22 41 4d 44 50 4c 50 41 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 ...],....."AMDPLPA":.[........."
bc9a0 41 4d 44 27 73 20 70 6c 70 61 5f 6d 61 70 2e 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 AMD's.plpa_map.c.License",......
bc9c0 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 4d 4c 22 3a 20 5b 0a 20 20 20 ...false.....],....."AML":.[....
bc9e0 20 20 20 20 20 22 41 70 70 6c 65 20 4d 49 54 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 ....."Apple.MIT.License",.......
bca00 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 4d 50 41 53 22 3a 20 5b 0a 20 20 ..false.....],....."AMPAS":.[...
bca20 20 20 20 20 20 20 22 41 63 61 64 65 6d 79 20 6f 66 20 4d 6f 74 69 6f 6e 20 50 69 63 74 75 72 65 ......"Academy.of.Motion.Picture
bca40 20 41 72 74 73 20 61 6e 64 20 53 63 69 65 6e 63 65 73 20 42 53 44 22 2c 0a 20 20 20 20 20 20 20 .Arts.and.Sciences.BSD",........
bca60 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 4e 54 4c 52 2d 50 44 22 3a 20 5b 0a .false.....],....."ANTLR-PD":.[.
bca80 20 20 20 20 20 20 20 20 22 41 4e 54 4c 52 20 53 6f 66 74 77 61 72 65 20 52 69 67 68 74 73 20 4e ........"ANTLR.Software.Rights.N
bcaa0 6f 74 69 63 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 otice",.........false.....],....
bcac0 20 22 41 70 61 63 68 65 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 70 61 63 68 65 ."Apache-1.0":.[........."Apache
bcae0 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 .License.1.0",.........false....
bcb00 20 5d 2c 0a 20 20 20 20 22 41 70 61 63 68 65 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 .],....."Apache-1.1":.[.........
bcb20 22 41 70 61 63 68 65 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 72 "Apache.License.1.1",.........tr
bcb40 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 70 61 63 68 65 2d 32 2e 30 22 3a 20 5b 0a 20 20 ue.....],....."Apache-2.0":.[...
bcb60 20 20 20 20 20 20 22 41 70 61 63 68 65 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 ......"Apache.License.2.0",.....
bcb80 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 50 41 46 4d 4c 22 3a 20 5b 0a ....true.....],....."APAFML":.[.
bcba0 20 20 20 20 20 20 20 20 22 41 64 6f 62 65 20 50 6f 73 74 73 63 72 69 70 74 20 41 46 4d 20 4c 69 ........"Adobe.Postscript.AFM.Li
bcbc0 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 cense",.........false.....],....
bcbe0 20 22 41 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 64 61 70 74 69 76 65 20 ."APL-1.0":.[........."Adaptive.
bcc00 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 Public.License.1.0",.........tru
bcc20 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 50 53 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 e.....],....."APSL-1.0":.[......
bcc40 20 20 20 22 41 70 70 6c 65 20 50 75 62 6c 69 63 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 20 ..."Apple.Public.Source.License.
bcc60 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 1.0",.........true.....],....."A
bcc80 50 53 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 70 70 6c 65 20 50 75 62 6c 69 PSL-1.1":.[........."Apple.Publi
bcca0 63 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 c.Source.License.1.1",.........t
bccc0 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 50 53 4c 2d 31 2e 32 22 3a 20 5b 0a 20 20 20 rue.....],....."APSL-1.2":.[....
bcce0 20 20 20 20 20 22 41 70 70 6c 65 20 50 75 62 6c 69 63 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 ....."Apple.Public.Source.Licens
bcd00 65 20 31 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 e.1.2",.........true.....],.....
bcd20 22 41 50 53 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 70 70 6c 65 20 50 75 62 "APSL-2.0":.[........."Apple.Pub
bcd40 6c 69 63 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 lic.Source.License.2.0",........
bcd60 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 22 3a .true.....],....."Artistic-1.0":
bcd80 20 5b 0a 20 20 20 20 20 20 20 20 22 41 72 74 69 73 74 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 .[........."Artistic.License.1.0
bcda0 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 72 74 69 ",.........true.....],....."Arti
bcdc0 73 74 69 63 2d 31 2e 30 2d 63 6c 38 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 72 74 69 73 74 stic-1.0-cl8":.[........."Artist
bcde0 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 20 77 2f 63 6c 61 75 73 65 20 38 22 2c 0a 20 20 20 20 ic.License.1.0.w/clause.8",.....
bce00 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 41 72 74 69 73 74 69 63 2d 31 2e ....true.....],....."Artistic-1.
bce20 30 2d 50 65 72 6c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 41 72 74 69 73 74 69 63 20 4c 69 63 0-Perl":.[........."Artistic.Lic
bce40 65 6e 73 65 20 31 2e 30 20 28 50 65 72 6c 29 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 ense.1.0.(Perl)",.........true..
bce60 20 20 20 5d 2c 0a 20 20 20 20 22 41 72 74 69 73 74 69 63 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 ...],....."Artistic-2.0":.[.....
bce80 20 20 20 20 22 41 72 74 69 73 74 69 63 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 ...."Artistic.License.2.0",.....
bcea0 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 61 68 79 70 68 22 3a 20 5b 0a ....true.....],....."Bahyph":.[.
bcec0 20 20 20 20 20 20 20 20 22 42 61 68 79 70 68 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 ........"Bahyph.License",.......
bcee0 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 61 72 72 22 3a 20 5b 0a 20 20 20 ..false.....],....."Barr":.[....
bcf00 20 20 20 20 20 22 42 61 72 72 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c ....."Barr.License",.........fal
bcf20 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 65 65 72 77 61 72 65 22 3a 20 5b 0a 20 20 20 20 se.....],....."Beerware":.[.....
bcf40 20 20 20 20 22 42 65 65 72 77 61 72 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 ...."Beerware.License",.........
bcf60 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 30 false.....],....."BitTorrent-1.0
bcf80 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 20 4f 70 65 6e 20 53 6f ":.[........."BitTorrent.Open.So
bcfa0 75 72 63 65 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 urce.License.v1.0",.........fals
bcfc0 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 31 22 3a 20 5b e.....],....."BitTorrent-1.1":.[
bcfe0 0a 20 20 20 20 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 20 4f 70 65 6e 20 53 6f 75 72 63 65 ........."BitTorrent.Open.Source
bd000 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 .License.v1.1",.........false...
bd020 20 20 5d 2c 0a 20 20 20 20 22 42 6f 72 63 65 75 78 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 ..],....."Borceux":.[........."B
bd040 6f 72 63 65 75 78 20 6c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 orceux.license",.........false..
bd060 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 22 3a 20 5b 0a 20 20 20 20 ...],....."BSD-2-Clause":.[.....
bd080 20 20 20 20 22 42 53 44 20 32 2d 63 6c 61 75 73 65 20 5c 22 53 69 6d 70 6c 69 66 69 65 64 5c 22 ...."BSD.2-clause.\"Simplified\"
bd0a0 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 .License",.........true.....],..
bd0c0 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 3a 20 5b 0a 20 20 20 ..."BSD-2-Clause-FreeBSD":.[....
bd0e0 20 20 20 20 20 22 42 53 44 20 32 2d 63 6c 61 75 73 65 20 46 72 65 65 42 53 44 20 4c 69 63 65 6e ....."BSD.2-clause.FreeBSD.Licen
bd100 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 se",.........false.....],....."B
bd120 53 44 2d 32 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 SD-2-Clause-NetBSD":.[........."
bd140 42 53 44 20 32 2d 63 6c 61 75 73 65 20 4e 65 74 42 53 44 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 BSD.2-clause.NetBSD.License",...
bd160 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c ......false.....],....."BSD-3-Cl
bd180 61 75 73 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 53 44 20 33 2d 63 6c 61 75 73 65 20 5c ause":.[........."BSD.3-clause.\
bd1a0 22 4e 65 77 5c 22 20 6f 72 20 5c 22 52 65 76 69 73 65 64 5c 22 20 4c 69 63 65 6e 73 65 22 2c 0a "New\".or.\"Revised\".License",.
bd1c0 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 ........true.....],....."BSD-3-C
bd1e0 6c 61 75 73 65 2d 41 74 74 72 69 62 75 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 lause-Attribution":.[........."B
bd200 53 44 20 77 69 74 68 20 61 74 74 72 69 62 75 74 69 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 66 61 SD.with.attribution",.........fa
bd220 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 43 6c 65 lse.....],....."BSD-3-Clause-Cle
bd240 61 72 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 53 44 20 33 2d 63 6c 61 75 73 65 20 43 6c 65 ar":.[........."BSD.3-clause.Cle
bd260 61 72 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d ar.License",.........false.....]
bd280 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 4c 42 4e 4c 22 3a 20 5b 0a 20 20 20 ,....."BSD-3-Clause-LBNL":.[....
bd2a0 20 20 20 20 20 22 4c 61 77 72 65 6e 63 65 20 42 65 72 6b 65 6c 65 79 20 4e 61 74 69 6f 6e 61 6c ....."Lawrence.Berkeley.National
bd2c0 20 4c 61 62 73 20 42 53 44 20 76 61 72 69 61 6e 74 20 6c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 .Labs.BSD.variant.license",.....
bd2e0 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 44 2d 34 2d 43 6c 61 75 ....false.....],....."BSD-4-Clau
bd300 73 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 53 44 20 34 2d 63 6c 61 75 73 65 20 5c 22 4f se":.[........."BSD.4-clause.\"O
bd320 72 69 67 69 6e 61 6c 5c 22 20 6f 72 20 5c 22 4f 6c 64 5c 22 20 4c 69 63 65 6e 73 65 22 2c 0a 20 riginal\".or.\"Old\".License",..
bd340 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 44 2d 34 2d 43 .......false.....],....."BSD-4-C
bd360 6c 61 75 73 65 2d 55 43 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 53 44 2d 34 2d 43 6c 61 75 lause-UC":.[........."BSD-4-Clau
bd380 73 65 20 28 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2d 53 70 65 se.(University.of.California-Spe
bd3a0 63 69 66 69 63 29 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 cific)",.........false.....],...
bd3c0 20 20 22 42 53 44 2d 50 72 6f 74 65 63 74 69 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 .."BSD-Protection":.[........."B
bd3e0 53 44 20 50 72 6f 74 65 63 74 69 6f 6e 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 SD.Protection.License",.........
bd400 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 42 53 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 false.....],....."BSL-1.0":.[...
bd420 20 20 20 20 20 20 22 42 6f 6f 73 74 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 31 2e ......"Boost.Software.License.1.
bd440 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 62 7a 69 0",.........true.....],....."bzi
bd460 70 32 2d 31 2e 30 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 62 7a 69 70 32 20 61 6e 64 20 p2-1.0.5":.[........."bzip2.and.
bd480 6c 69 62 62 7a 69 70 32 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 2e 35 22 2c 0a 20 20 20 20 20 20 libbzip2.License.v1.0.5",.......
bd4a0 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 62 7a 69 70 32 2d 31 2e 30 2e 36 22 ..false.....],....."bzip2-1.0.6"
bd4c0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 62 7a 69 70 32 20 61 6e 64 20 6c 69 62 62 7a 69 70 32 20 :.[........."bzip2.and.libbzip2.
bd4e0 4c 69 63 65 6e 73 65 20 76 31 2e 30 2e 36 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 License.v1.0.6",.........false..
bd500 20 20 20 5d 2c 0a 20 20 20 20 22 43 61 6c 64 65 72 61 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 ...],....."Caldera":.[........."
bd520 43 61 6c 64 65 72 61 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a Caldera.License",.........false.
bd540 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 41 54 4f 53 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 ....],....."CATOSL-1.1":.[......
bd560 20 20 20 22 43 6f 6d 70 75 74 65 72 20 41 73 73 6f 63 69 61 74 65 73 20 54 72 75 73 74 65 64 20 ..."Computer.Associates.Trusted.
bd580 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 Open.Source.License.1.1",.......
bd5a0 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 31 2e 30 22 3a 20 5b ..true.....],....."CC-BY-1.0":.[
bd5c0 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 ........."Creative.Commons.Attri
bd5e0 62 75 74 69 6f 6e 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d bution.1.0",.........false.....]
bd600 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 ,....."CC-BY-2.0":.[........."Cr
bd620 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 32 2e 30 22 2c eative.Commons.Attribution.2.0",
bd640 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 .........false.....],....."CC-BY
bd660 2d 32 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f -2.5":.[........."Creative.Commo
bd680 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 32 2e 35 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c ns.Attribution.2.5",.........fal
bd6a0 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 se.....],....."CC-BY-3.0":.[....
bd6c0 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 ....."Creative.Commons.Attributi
bd6e0 6f 6e 20 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 on.3.0",.........false.....],...
bd700 20 20 22 43 43 2d 42 59 2d 34 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 .."CC-BY-4.0":.[........."Creati
bd720 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 34 2e 30 22 2c 0a 20 20 20 ve.Commons.Attribution.4.0",....
bd740 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d .....false.....],....."CC-BY-NC-
bd760 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 1.0":.[........."Creative.Common
bd780 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 31 2e 30 s.Attribution.Non.Commercial.1.0
bd7a0 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d ",.........false.....],....."CC-
bd7c0 42 59 2d 4e 43 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 BY-NC-2.0":.[........."Creative.
bd7e0 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 Commons.Attribution.Non.Commerci
bd800 61 6c 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 al.2.0",.........false.....],...
bd820 20 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 .."CC-BY-NC-2.5":.[........."Cre
bd840 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f ative.Commons.Attribution.Non.Co
bd860 6d 6d 65 72 63 69 61 6c 20 32 2e 35 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 mmercial.2.5",.........false....
bd880 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 .],....."CC-BY-NC-3.0":.[.......
bd8a0 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 .."Creative.Commons.Attribution.
bd8c0 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c Non.Commercial.3.0",.........fal
bd8e0 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 34 2e 30 22 3a 20 5b 0a se.....],....."CC-BY-NC-4.0":.[.
bd900 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 ........"Creative.Commons.Attrib
bd920 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 34 2e 30 22 2c 0a 20 20 20 20 20 ution.Non.Commercial.4.0",......
bd940 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 ...false.....],....."CC-BY-NC-ND
bd960 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f -1.0":.[........."Creative.Commo
bd980 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 4e 6f ns.Attribution.Non.Commercial.No
bd9a0 20 44 65 72 69 76 61 74 69 76 65 73 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 .Derivatives.1.0",.........false
bd9c0 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 30 22 3a 20 5b .....],....."CC-BY-NC-ND-2.0":.[
bd9e0 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 ........."Creative.Commons.Attri
bda00 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 4e 6f 20 44 65 72 69 76 61 74 bution.Non.Commercial.No.Derivat
bda20 69 76 65 73 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a ives.2.0",.........false.....],.
bda40 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 ...."CC-BY-NC-ND-2.5":.[........
bda60 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e ."Creative.Commons.Attribution.N
bda80 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 4e 6f 20 44 65 72 69 76 61 74 69 76 65 73 20 32 2e 35 on.Commercial.No.Derivatives.2.5
bdaa0 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d ",.........false.....],....."CC-
bdac0 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 BY-NC-ND-3.0":.[........."Creati
bdae0 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 ve.Commons.Attribution.Non.Comme
bdb00 72 63 69 61 6c 20 4e 6f 20 44 65 72 69 76 61 74 69 76 65 73 20 33 2e 30 22 2c 0a 20 20 20 20 20 rcial.No.Derivatives.3.0",......
bdb20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 ...false.....],....."CC-BY-NC-ND
bdb40 2d 34 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f -4.0":.[........."Creative.Commo
bdb60 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 4e 6f ns.Attribution.Non.Commercial.No
bdb80 20 44 65 72 69 76 61 74 69 76 65 73 20 34 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 .Derivatives.4.0",.........false
bdba0 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 31 2e 30 22 3a 20 5b .....],....."CC-BY-NC-SA-1.0":.[
bdbc0 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 ........."Creative.Commons.Attri
bdbe0 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 53 68 61 72 65 20 41 6c 69 6b bution.Non.Commercial.Share.Alik
bdc00 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 e.1.0",.........false.....],....
bdc20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 ."CC-BY-NC-SA-2.0":.[........."C
bdc40 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 reative.Commons.Attribution.Non.
bdc60 43 6f 6d 6d 65 72 63 69 61 6c 20 53 68 61 72 65 20 41 6c 69 6b 65 20 32 2e 30 22 2c 0a 20 20 20 Commercial.Share.Alike.2.0",....
bdc80 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d .....false.....],....."CC-BY-NC-
bdca0 53 41 2d 32 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d SA-2.5":.[........."Creative.Com
bdcc0 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 mons.Attribution.Non.Commercial.
bdce0 53 68 61 72 65 20 41 6c 69 6b 65 20 32 2e 35 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a Share.Alike.2.5",.........false.
bdd00 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 33 2e 30 22 3a 20 5b 0a ....],....."CC-BY-NC-SA-3.0":.[.
bdd20 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 ........"Creative.Commons.Attrib
bdd40 75 74 69 6f 6e 20 4e 6f 6e 20 43 6f 6d 6d 65 72 63 69 61 6c 20 53 68 61 72 65 20 41 6c 69 6b 65 ution.Non.Commercial.Share.Alike
bdd60 20 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 .3.0",.........false.....],.....
bdd80 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 34 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 "CC-BY-NC-SA-4.0":.[........."Cr
bdda0 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 6e 20 43 eative.Commons.Attribution.Non.C
bddc0 6f 6d 6d 65 72 63 69 61 6c 20 53 68 61 72 65 20 41 6c 69 6b 65 20 34 2e 30 22 2c 0a 20 20 20 20 ommercial.Share.Alike.4.0",.....
bdde0 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 31 ....false.....],....."CC-BY-ND-1
bde00 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 .0":.[........."Creative.Commons
bde20 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 20 44 65 72 69 76 61 74 69 76 65 73 20 31 2e 30 22 .Attribution.No.Derivatives.1.0"
bde40 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 ,.........false.....],....."CC-B
bde60 59 2d 4e 44 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 Y-ND-2.0":.[........."Creative.C
bde80 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 20 44 65 72 69 76 61 74 69 76 65 ommons.Attribution.No.Derivative
bdea0 73 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 s.2.0",.........false.....],....
bdec0 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 ."CC-BY-ND-2.5":.[........."Crea
bdee0 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e 6f 20 44 65 72 69 tive.Commons.Attribution.No.Deri
bdf00 76 61 74 69 76 65 73 20 32 2e 35 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 vatives.2.5",.........false.....
bdf20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 ],....."CC-BY-ND-3.0":.[........
bdf40 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4e ."Creative.Commons.Attribution.N
bdf60 6f 20 44 65 72 69 76 61 74 69 76 65 73 20 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 o.Derivatives.3.0",.........fals
bdf80 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 34 2e 30 22 3a 20 5b 0a 20 e.....],....."CC-BY-ND-4.0":.[..
bdfa0 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 ......."Creative.Commons.Attribu
bdfc0 74 69 6f 6e 20 4e 6f 20 44 65 72 69 76 61 74 69 76 65 73 20 34 2e 30 22 2c 0a 20 20 20 20 20 20 tion.No.Derivatives.4.0",.......
bdfe0 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 ..false.....],....."CC-BY-SA-1.0
be000 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 ":.[........."Creative.Commons.A
be020 74 74 72 69 62 75 74 69 6f 6e 20 53 68 61 72 65 20 41 6c 69 6b 65 20 31 2e 30 22 2c 0a 20 20 20 ttribution.Share.Alike.1.0",....
be040 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 53 41 2d .....false.....],....."CC-BY-SA-
be060 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 2.0":.[........."Creative.Common
be080 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 53 68 61 72 65 20 41 6c 69 6b 65 20 32 2e 30 22 2c 0a s.Attribution.Share.Alike.2.0",.
be0a0 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d ........false.....],....."CC-BY-
be0c0 53 41 2d 32 2e 35 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 43 6f 6d SA-2.5":.[........."Creative.Com
be0e0 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 53 68 61 72 65 20 41 6c 69 6b 65 20 32 2e 35 mons.Attribution.Share.Alike.2.5
be100 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 43 2d ",.........false.....],....."CC-
be120 42 59 2d 53 41 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 20 BY-SA-3.0":.[........."Creative.
be140 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 53 68 61 72 65 20 41 6c 69 6b 65 20 Commons.Attribution.Share.Alike.
be160 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 3.0",.........false.....],....."
be180 43 43 2d 42 59 2d 53 41 2d 34 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 CC-BY-SA-4.0":.[........."Creati
be1a0 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 6f 6e 20 53 68 61 72 65 20 41 6c 69 ve.Commons.Attribution.Share.Ali
be1c0 6b 65 20 34 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 ke.4.0",.........false.....],...
be1e0 20 20 22 43 43 30 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 69 76 65 .."CC0-1.0":.[........."Creative
be200 20 43 6f 6d 6d 6f 6e 73 20 5a 65 72 6f 20 76 31 2e 30 20 55 6e 69 76 65 72 73 61 6c 22 2c 0a 20 .Commons.Zero.v1.0.Universal",..
be220 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 44 44 4c 2d 31 2e .......false.....],....."CDDL-1.
be240 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 6d 6f 6e 20 44 65 76 65 6c 6f 70 6d 65 6e 0":.[........."Common.Developmen
be260 74 20 61 6e 64 20 44 69 73 74 72 69 62 75 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c t.and.Distribution.License.1.0",
be280 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 44 44 4c 2d 31 .........true.....],....."CDDL-1
be2a0 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 6d 6f 6e 20 44 65 76 65 6c 6f 70 6d 65 .1":.[........."Common.Developme
be2c0 6e 74 20 61 6e 64 20 44 69 73 74 72 69 62 75 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 nt.and.Distribution.License.1.1"
be2e0 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 45 43 49 ,.........false.....],....."CECI
be300 4c 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 65 43 49 4c 4c 20 46 72 65 65 20 LL-1.0":.[........."CeCILL.Free.
be320 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 20 76 31 2e 30 22 Software.License.Agreement.v1.0"
be340 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 45 43 49 ,.........false.....],....."CECI
be360 4c 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 65 43 49 4c 4c 20 46 72 65 65 20 LL-1.1":.[........."CeCILL.Free.
be380 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 20 76 31 2e 31 22 Software.License.Agreement.v1.1"
be3a0 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 45 43 49 ,.........false.....],....."CECI
be3c0 4c 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 65 43 49 4c 4c 20 46 72 65 65 20 LL-2.0":.[........."CeCILL.Free.
be3e0 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 20 76 32 2e 30 22 Software.License.Agreement.v2.0"
be400 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 45 43 49 ,.........false.....],....."CECI
be420 4c 4c 2d 32 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 65 43 49 4c 4c 20 46 72 65 65 20 LL-2.1":.[........."CeCILL.Free.
be440 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 20 76 32 2e 31 22 Software.License.Agreement.v2.1"
be460 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 45 43 49 4c ,.........true.....],....."CECIL
be480 4c 2d 42 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 65 43 49 4c 4c 2d 42 20 46 72 65 65 20 53 L-B":.[........."CeCILL-B.Free.S
be4a0 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 22 2c 0a 20 20 20 20 oftware.License.Agreement",.....
be4c0 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 45 43 49 4c 4c 2d 43 22 3a ....false.....],....."CECILL-C":
be4e0 20 5b 0a 20 20 20 20 20 20 20 20 22 43 65 43 49 4c 4c 2d 43 20 46 72 65 65 20 53 6f 66 74 77 61 .[........."CeCILL-C.Free.Softwa
be500 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 22 2c 0a 20 20 20 20 20 20 20 20 66 re.License.Agreement",.........f
be520 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 6c 41 72 74 69 73 74 69 63 22 3a 20 5b 0a alse.....],....."ClArtistic":.[.
be540 20 20 20 20 20 20 20 20 22 43 6c 61 72 69 66 69 65 64 20 41 72 74 69 73 74 69 63 20 4c 69 63 65 ........"Clarified.Artistic.Lice
be560 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 nse",.........false.....],....."
be580 43 4e 52 49 2d 4a 79 74 68 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 4e 52 49 20 4a 79 CNRI-Jython":.[........."CNRI.Jy
be5a0 74 68 6f 6e 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 thon.License",.........false....
be5c0 20 5d 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 .],....."CNRI-Python":.[........
be5e0 20 22 43 4e 52 49 20 50 79 74 68 6f 6e 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 ."CNRI.Python.License",.........
be600 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 2d 47 50 4c true.....],....."CNRI-Python-GPL
be620 2d 43 6f 6d 70 61 74 69 62 6c 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 4e 52 49 20 50 79 -Compatible":.[........."CNRI.Py
be640 74 68 6f 6e 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 47 50 4c 20 43 6f 6d 70 61 74 69 62 6c 65 20 thon.Open.Source.GPL.Compatible.
be660 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 License.Agreement",.........fals
be680 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 6f 6e 64 6f 72 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 e.....],....."Condor-1.1":.[....
be6a0 20 20 20 20 20 22 43 6f 6e 64 6f 72 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 ....."Condor.Public.License.v1.1
be6c0 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 50 41 ",.........false.....],....."CPA
be6e0 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 6d 6f 6e 20 50 75 62 6c 69 63 L-1.0":.[........."Common.Public
be700 20 41 74 74 72 69 62 75 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 .Attribution.License.1.0",......
be720 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 50 4c 2d 31 2e 30 22 3a 20 5b 0a ...true.....],....."CPL-1.0":.[.
be740 20 20 20 20 20 20 20 20 22 43 6f 6d 6d 6f 6e 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 ........"Common.Public.License.1
be760 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 50 .0",.........true.....],....."CP
be780 4f 4c 2d 31 2e 30 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 64 65 20 50 72 6f 6a 65 63 OL-1.02":.[........."Code.Projec
be7a0 74 20 4f 70 65 6e 20 4c 69 63 65 6e 73 65 20 31 2e 30 32 22 2c 0a 20 20 20 20 20 20 20 20 66 61 t.Open.License.1.02",.........fa
be7c0 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 72 6f 73 73 77 6f 72 64 22 3a 20 5b 0a 20 20 lse.....],....."Crossword":.[...
be7e0 20 20 20 20 20 20 22 43 72 6f 73 73 77 6f 72 64 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 ......"Crossword.License",......
be800 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 72 79 73 74 61 6c 53 74 61 63 ...false.....],....."CrystalStac
be820 6b 65 72 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 79 73 74 61 6c 53 74 61 63 6b 65 72 20 ker":.[........."CrystalStacker.
be840 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 License",.........false.....],..
be860 20 20 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 55 41 ..."CUA-OPL-1.0":.[........."CUA
be880 20 4f 66 66 69 63 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 .Office.Public.License.v1.0",...
be8a0 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 43 75 62 65 22 3a 20 5b 0a ......true.....],....."Cube":.[.
be8c0 20 20 20 20 20 20 20 20 22 43 75 62 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 ........"Cube.License",.........
be8e0 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 44 2d 46 53 4c 2d 31 2e 30 22 3a 20 5b 0a false.....],....."D-FSL-1.0":.[.
be900 20 20 20 20 20 20 20 20 22 44 65 75 74 73 63 68 65 20 46 72 65 69 65 20 53 6f 66 74 77 61 72 65 ........"Deutsche.Freie.Software
be920 20 4c 69 7a 65 6e 7a 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 .Lizenz",.........false.....],..
be940 20 20 20 22 64 69 66 66 6d 61 72 6b 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 69 66 66 6d 61 ..."diffmark":.[........."diffma
be960 72 6b 20 6c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d rk.license",.........false.....]
be980 2c 0a 20 20 20 20 22 44 4f 43 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 4f 43 20 4c 69 63 65 ,....."DOC":.[........."DOC.Lice
be9a0 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 nse",.........false.....],....."
be9c0 44 6f 74 73 65 71 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 6f 74 73 65 71 6e 20 4c 69 63 Dotseqn":.[........."Dotseqn.Lic
be9e0 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 ense",.........false.....],.....
bea00 22 44 53 44 50 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 53 44 50 20 4c 69 63 65 6e 73 65 22 "DSDP":.[........."DSDP.License"
bea20 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 64 76 69 70 ,.........false.....],....."dvip
bea40 64 66 6d 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 76 69 70 64 66 6d 20 4c 69 63 65 6e 73 65 dfm":.[........."dvipdfm.License
bea60 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 43 4c ",.........false.....],....."ECL
bea80 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 64 75 63 61 74 69 6f 6e 61 6c 20 43 6f -1.0":.[........."Educational.Co
beaa0 6d 6d 75 6e 69 74 79 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 mmunity.License.v1.0",.........t
beac0 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 43 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 rue.....],....."ECL-2.0":.[.....
beae0 20 20 20 20 22 45 64 75 63 61 74 69 6f 6e 61 6c 20 43 6f 6d 6d 75 6e 69 74 79 20 4c 69 63 65 6e ...."Educational.Community.Licen
beb00 73 65 20 76 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 se.v2.0",.........true.....],...
beb20 20 20 22 45 46 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 69 66 66 65 6c 20 46 .."EFL-1.0":.[........."Eiffel.F
beb40 6f 72 75 6d 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 orum.License.v1.0",.........true
beb60 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 46 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 .....],....."EFL-2.0":.[........
beb80 20 22 45 69 66 66 65 6c 20 46 6f 72 75 6d 20 4c 69 63 65 6e 73 65 20 76 32 2e 30 22 2c 0a 20 20 ."Eiffel.Forum.License.v2.0",...
beba0 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 65 47 65 6e 69 78 22 3a 20 ......true.....],....."eGenix":.
bebc0 5b 0a 20 20 20 20 20 20 20 20 22 65 47 65 6e 69 78 2e 63 6f 6d 20 50 75 62 6c 69 63 20 4c 69 63 [........."eGenix.com.Public.Lic
bebe0 65 6e 73 65 20 31 2e 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d ense.1.1.0",.........false.....]
bec00 2c 0a 20 20 20 20 22 45 6e 74 65 73 73 61 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 6e 74 65 ,....."Entessa":.[........."Ente
bec20 73 73 61 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 ssa.Public.License.v1.0",.......
bec40 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 ..true.....],....."EPL-1.0":.[..
bec60 20 20 20 20 20 20 20 22 45 63 6c 69 70 73 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 ......."Eclipse.Public.License.1
bec80 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 72 .0",.........true.....],....."Er
beca0 6c 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 72 6c 61 6e 67 20 50 75 62 6c lPL-1.1":.[........."Erlang.Publ
becc0 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a ic.License.v1.1",.........false.
bece0 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 55 44 61 74 61 67 72 69 64 22 3a 20 5b 0a 20 20 20 20 20 ....],....."EUDatagrid":.[......
bed00 20 20 20 22 45 55 20 44 61 74 61 47 72 69 64 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 ..."EU.DataGrid.Software.License
bed20 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 55 50 4c ",.........true.....],....."EUPL
bed40 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 75 72 6f 70 65 61 6e 20 55 6e 69 6f 6e -1.0":.[........."European.Union
bed60 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 .Public.License.1.0",.........fa
bed80 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 45 55 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 lse.....],....."EUPL-1.1":.[....
beda0 20 20 20 20 20 22 45 75 72 6f 70 65 61 6e 20 55 6e 69 6f 6e 20 50 75 62 6c 69 63 20 4c 69 63 65 ....."European.Union.Public.Lice
bedc0 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 nse.1.1",.........true.....],...
bede0 20 20 22 45 75 72 6f 73 79 6d 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 75 72 6f 73 79 6d 20 .."Eurosym":.[........."Eurosym.
bee00 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 License",.........false.....],..
bee20 20 20 20 22 46 61 69 72 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 61 69 72 20 4c 69 63 65 6e ..."Fair":.[........."Fair.Licen
bee40 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 46 72 se",.........true.....],....."Fr
bee60 61 6d 65 77 6f 72 78 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 72 61 6d 65 77 6f ameworx-1.0":.[........."Framewo
bee80 72 78 20 4f 70 65 6e 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 rx.Open.License.1.0",.........tr
beea0 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 46 72 65 65 49 6d 61 67 65 22 3a 20 5b 0a 20 20 20 ue.....],....."FreeImage":.[....
beec0 20 20 20 20 20 22 46 72 65 65 49 6d 61 67 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 ....."FreeImage.Public.License.v
beee0 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 1.0",.........false.....],....."
bef00 46 53 46 55 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 53 46 20 55 6e 6c 69 6d 69 74 65 64 FSFUL":.[........."FSF.Unlimited
bef20 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a .License",.........false.....],.
bef40 20 20 20 20 22 46 53 46 55 4c 4c 52 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 53 46 20 55 6e ...."FSFULLR":.[........."FSF.Un
bef60 6c 69 6d 69 74 65 64 20 4c 69 63 65 6e 73 65 20 28 77 69 74 68 20 4c 69 63 65 6e 73 65 20 52 65 limited.License.(with.License.Re
bef80 74 65 6e 74 69 6f 6e 29 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a tention)",.........false.....],.
befa0 20 20 20 20 22 46 54 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 72 65 65 74 79 70 65 20 50 ...."FTL":.[........."Freetype.P
befc0 72 6f 6a 65 63 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 roject.License",.........false..
befe0 20 20 20 5d 2c 0a 20 20 20 20 22 47 46 44 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 ...],....."GFDL-1.1":.[.........
bf000 22 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 "GNU.Free.Documentation.License.
bf020 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 v1.1",.........false.....],.....
bf040 22 47 46 44 4c 2d 31 2e 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 46 72 65 65 20 "GFDL-1.2":.[........."GNU.Free.
bf060 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 76 31 2e 32 22 2c 0a 20 20 20 Documentation.License.v1.2",....
bf080 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 46 44 4c 2d 31 2e 33 22 .....false.....],....."GFDL-1.3"
bf0a0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 :.[........."GNU.Free.Documentat
bf0c0 69 6f 6e 20 4c 69 63 65 6e 73 65 20 76 31 2e 33 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 ion.License.v1.3",.........false
bf0e0 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 69 66 74 77 61 72 65 22 3a 20 5b 0a 20 20 20 20 20 20 .....],....."Giftware":.[.......
bf100 20 20 22 47 69 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 .."Giftware.License",.........fa
bf120 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 4c 32 50 53 22 3a 20 5b 0a 20 20 20 20 20 20 lse.....],....."GL2PS":.[.......
bf140 20 20 22 47 4c 32 50 53 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 .."GL2PS.License",.........false
bf160 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 6c 69 64 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .....],....."Glide":.[........."
bf180 33 64 66 78 20 47 6c 69 64 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 3dfx.Glide.License",.........fal
bf1a0 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 6c 75 6c 78 65 22 3a 20 5b 0a 20 20 20 20 20 20 se.....],....."Glulxe":.[.......
bf1c0 20 20 22 47 6c 75 6c 78 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 .."Glulxe.License",.........fals
bf1e0 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 67 6e 75 70 6c 6f 74 22 3a 20 5b 0a 20 20 20 20 20 20 e.....],....."gnuplot":.[.......
bf200 20 20 22 67 6e 75 70 6c 6f 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c .."gnuplot.License",.........fal
bf220 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 se.....],....."GPL-1.0":.[......
bf240 20 20 20 22 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 ..."GNU.General.Public.License.v
bf260 31 2e 30 20 6f 6e 6c 79 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 1.0.only",.........false.....],.
bf280 20 20 20 20 22 47 50 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 47 65 ...."GPL-2.0":.[........."GNU.Ge
bf2a0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 30 20 6f 6e 6c 79 22 2c neral.Public.License.v2.0.only",
bf2c0 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e .........true.....],....."GPL-3.
bf2e0 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 0":.[........."GNU.General.Publi
bf300 63 20 4c 69 63 65 6e 73 65 20 76 33 2e 30 20 6f 6e 6c 79 22 2c 0a 20 20 20 20 20 20 20 20 74 72 c.License.v3.0.only",.........tr
bf320 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 67 53 4f 41 50 2d 31 2e 33 62 22 3a 20 5b 0a 20 20 ue.....],....."gSOAP-1.3b":.[...
bf340 20 20 20 20 20 20 22 67 53 4f 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 33 ......"gSOAP.Public.License.v1.3
bf360 62 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 48 61 b",.........false.....],....."Ha
bf380 73 6b 65 6c 6c 52 65 70 6f 72 74 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 48 61 73 6b 65 6c 6c skellReport":.[........."Haskell
bf3a0 20 4c 61 6e 67 75 61 67 65 20 52 65 70 6f 72 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 .Language.Report.License",......
bf3c0 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 48 50 4e 44 22 3a 20 5b 0a 20 20 ...false.....],....."HPND":.[...
bf3e0 20 20 20 20 20 20 22 48 69 73 74 6f 72 69 63 20 50 65 72 6d 69 73 73 69 6f 6e 20 4e 6f 74 69 63 ......"Historic.Permission.Notic
bf400 65 20 61 6e 64 20 44 69 73 63 6c 61 69 6d 65 72 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a e.and.Disclaimer",.........true.
bf420 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 42 4d 2d 70 69 62 73 22 3a 20 5b 0a 20 20 20 20 20 20 20 ....],....."IBM-pibs":.[........
bf440 20 22 49 42 4d 20 50 6f 77 65 72 50 43 20 49 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 61 6e 64 ."IBM.PowerPC.Initialization.and
bf460 20 42 6f 6f 74 20 53 6f 66 74 77 61 72 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 .Boot.Software",.........false..
bf480 20 20 20 5d 2c 0a 20 20 20 20 22 49 43 55 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 43 55 20 ...],....."ICU":.[........."ICU.
bf4a0 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 License",.........false.....],..
bf4c0 20 20 20 22 49 4a 47 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 64 65 70 65 6e 64 65 6e 74 ..."IJG":.[........."Independent
bf4e0 20 4a 50 45 47 20 47 72 6f 75 70 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 .JPEG.Group.License",.........fa
bf500 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 6d 61 67 65 4d 61 67 69 63 6b 22 3a 20 5b 0a lse.....],....."ImageMagick":.[.
bf520 20 20 20 20 20 20 20 20 22 49 6d 61 67 65 4d 61 67 69 63 6b 20 4c 69 63 65 6e 73 65 22 2c 0a 20 ........"ImageMagick.License",..
bf540 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 69 4d 61 74 69 78 22 .......false.....],....."iMatix"
bf560 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 4d 61 74 69 78 20 53 74 61 6e 64 61 72 64 20 46 75 6e :.[........."iMatix.Standard.Fun
bf580 63 74 69 6f 6e 20 4c 69 62 72 61 72 79 20 41 67 72 65 65 6d 65 6e 74 22 2c 0a 20 20 20 20 20 20 ction.Library.Agreement",.......
bf5a0 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 6d 6c 69 62 32 22 3a 20 5b 0a 20 ..false.....],....."Imlib2":.[..
bf5c0 20 20 20 20 20 20 20 22 49 6d 6c 69 62 32 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 ......."Imlib2.License",........
bf5e0 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 6e 74 65 6c 22 3a 20 5b 0a 20 20 20 .false.....],....."Intel":.[....
bf600 20 20 20 20 20 22 49 6e 74 65 6c 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 22 ....."Intel.Open.Source.License"
bf620 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 6e 74 65 6c ,.........true.....],....."Intel
bf640 2d 41 43 50 49 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 74 65 6c 20 41 43 50 49 20 53 6f -ACPI":.[........."Intel.ACPI.So
bf660 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 22 2c 0a 20 20 20 20 20 ftware.License.Agreement",......
bf680 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 6e 74 65 72 62 61 73 65 2d 31 ...false.....],....."Interbase-1
bf6a0 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 74 65 72 62 61 73 65 20 50 75 62 6c 69 63 .0":.[........."Interbase.Public
bf6c0 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 .License.v1.0",.........false...
bf6e0 20 20 5d 2c 0a 20 20 20 20 22 49 50 41 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 50 41 20 46 ..],....."IPA":.[........."IPA.F
bf700 6f 6e 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d ont.License",.........true.....]
bf720 2c 0a 20 20 20 20 22 49 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 42 4d 20 ,....."IPL-1.0":.[........."IBM.
bf740 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 Public.License.v1.0",.........tr
bf760 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 49 53 43 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 ue.....],....."ISC":.[........."
bf780 49 53 43 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d ISC.License",.........true.....]
bf7a0 2c 0a 20 20 20 20 22 4a 61 73 50 65 72 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4a ,....."JasPer-2.0":.[........."J
bf7c0 61 73 50 65 72 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 asPer.License",.........false...
bf7e0 20 20 5d 2c 0a 20 20 20 20 22 4a 53 4f 4e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4a 53 4f 4e ..],....."JSON":.[........."JSON
bf800 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a .License",.........false.....],.
bf820 20 20 20 20 22 4c 61 74 65 78 32 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 61 74 65 78 32 ...."Latex2e":.[........."Latex2
bf840 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c e.License",.........false.....],
bf860 0a 20 20 20 20 22 4c 65 70 74 6f 6e 69 63 61 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 65 70 ....."Leptonica":.[........."Lep
bf880 74 6f 6e 69 63 61 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 tonica.License",.........false..
bf8a0 20 20 20 5d 2c 0a 20 20 20 20 22 4c 47 50 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 ...],....."LGPL-2.0":.[.........
bf8c0 22 47 4e 55 20 4c 69 62 72 61 72 79 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 "GNU.Library.General.Public.Lice
bf8e0 6e 73 65 20 76 32 20 6f 6e 6c 79 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d nse.v2.only",.........true.....]
bf900 2c 0a 20 20 20 20 22 4c 47 50 4c 2d 32 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 ,....."LGPL-2.1":.[........."GNU
bf920 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 .Lesser.General.Public.License.v
bf940 32 2e 31 20 6f 6e 6c 79 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 2.1.only",.........true.....],..
bf960 20 20 20 22 4c 47 50 4c 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 4e 55 20 4c 65 ..."LGPL-3.0":.[........."GNU.Le
bf980 73 73 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 33 2e 30 sser.General.Public.License.v3.0
bf9a0 20 6f 6e 6c 79 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 .only",.........true.....],.....
bf9c0 22 4c 47 50 4c 4c 52 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 65 73 73 65 72 20 47 65 6e 65 "LGPLLR":.[........."Lesser.Gene
bf9e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 46 6f 72 20 4c 69 6e 67 75 69 73 74 69 ral.Public.License.For.Linguisti
bfa00 63 20 52 65 73 6f 75 72 63 65 73 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 c.Resources",.........false.....
bfa20 5d 2c 0a 20 20 20 20 22 4c 69 62 70 6e 67 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6c 69 62 70 ],....."Libpng":.[........."libp
bfa40 6e 67 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d ng.License",.........false.....]
bfa60 2c 0a 20 20 20 20 22 6c 69 62 74 69 66 66 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6c 69 62 74 ,....."libtiff":.[........."libt
bfa80 69 66 66 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 iff.License",.........false.....
bfaa0 5d 2c 0a 20 20 20 20 22 4c 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 75 63 ],....."LPL-1.0":.[........."Luc
bfac0 65 6e 74 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 56 65 72 73 69 6f 6e 20 31 2e 30 22 2c ent.Public.License.Version.1.0",
bfae0 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4c 50 4c 2d 31 2e .........true.....],....."LPL-1.
bfb00 30 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 75 63 65 6e 74 20 50 75 62 6c 69 63 20 4c 69 02":.[........."Lucent.Public.Li
bfb20 63 65 6e 73 65 20 76 31 2e 30 32 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d cense.v1.02",.........true.....]
bfb40 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 61 54 ,....."LPPL-1.0":.[........."LaT
bfb60 65 58 20 50 72 6f 6a 65 63 74 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c eX.Project.Public.License.v1.0",
bfb80 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4c 50 50 4c 2d .........false.....],....."LPPL-
bfba0 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 61 54 65 58 20 50 72 6f 6a 65 63 74 20 50 1.1":.[........."LaTeX.Project.P
bfbc0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c ublic.License.v1.1",.........fal
bfbe0 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e 32 22 3a 20 5b 0a 20 20 20 20 se.....],....."LPPL-1.2":.[.....
bfc00 20 20 20 20 22 4c 61 54 65 58 20 50 72 6f 6a 65 63 74 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 ...."LaTeX.Project.Public.Licens
bfc20 65 20 76 31 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 e.v1.2",.........false.....],...
bfc40 20 20 22 4c 50 50 4c 2d 31 2e 33 61 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 61 54 65 58 20 .."LPPL-1.3a":.[........."LaTeX.
bfc60 50 72 6f 6a 65 63 74 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 33 61 22 2c 0a 20 20 Project.Public.License.1.3a",...
bfc80 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e 33 ......false.....],....."LPPL-1.3
bfca0 63 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 61 54 65 58 20 50 72 6f 6a 65 63 74 20 50 75 62 c":.[........."LaTeX.Project.Pub
bfcc0 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 33 63 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 lic.License.v1.3c",.........true
bfce0 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 61 6b 65 49 6e 64 65 78 22 3a 20 5b 0a 20 20 20 20 20 .....],....."MakeIndex":.[......
bfd00 20 20 20 22 4d 61 6b 65 49 6e 64 65 78 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 ..."MakeIndex.License",.........
bfd20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 69 72 4f 53 22 3a 20 5b 0a 20 20 20 20 false.....],....."MirOS":.[.....
bfd40 20 20 20 20 22 4d 69 72 4f 53 20 4c 69 63 65 6e 63 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 ...."MirOS.Licence",.........tru
bfd60 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 49 54 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d e.....],....."MIT":.[........."M
bfd80 49 54 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c IT.License",.........true.....],
bfda0 0a 20 20 20 20 22 4d 49 54 2d 61 64 76 65 72 74 69 73 69 6e 67 22 3a 20 5b 0a 20 20 20 20 20 20 ....."MIT-advertising":.[.......
bfdc0 20 20 22 45 6e 6c 69 67 68 74 65 6e 6d 65 6e 74 20 4c 69 63 65 6e 73 65 20 28 65 31 36 29 22 2c .."Enlightenment.License.(e16)",
bfde0 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 49 54 2d 43 .........false.....],....."MIT-C
bfe00 4d 55 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 4d 55 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 MU":.[........."CMU.License",...
bfe20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 49 54 2d 65 6e 6e 61 ......false.....],....."MIT-enna
bfe40 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 65 6e 6e 61 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 ":.[........."enna.License",....
bfe60 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 49 54 2d 66 65 68 22 3a .....false.....],....."MIT-feh":
bfe80 20 5b 0a 20 20 20 20 20 20 20 20 22 66 65 68 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 .[........."feh.License",.......
bfea0 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 49 54 4e 46 41 22 3a 20 5b 0a 20 ..false.....],....."MITNFA":.[..
bfec0 20 20 20 20 20 20 20 22 4d 49 54 20 2b 6e 6f 2d 66 61 6c 73 65 2d 61 74 74 72 69 62 73 20 6c 69 ......."MIT.+no-false-attribs.li
bfee0 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 cense",.........false.....],....
bff00 20 22 4d 6f 74 6f 73 6f 74 6f 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 6f 74 6f 73 6f 74 6f ."Motosoto":.[........."Motosoto
bff20 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 .License",.........true.....],..
bff40 20 20 20 22 6d 70 69 63 68 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6d 70 69 63 68 32 20 4c ..."mpich2":.[........."mpich2.L
bff60 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 icense",.........false.....],...
bff80 20 20 22 4d 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 6f 7a 69 6c 6c 61 20 .."MPL-1.0":.[........."Mozilla.
bffa0 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 Public.License.1.0",.........tru
bffc0 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 e.....],....."MPL-1.1":.[.......
bffe0 20 20 22 4d 6f 7a 69 6c 6c 61 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a .."Mozilla.Public.License.1.1",.
c0000 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 50 4c 2d 32 2e 30 ........true.....],....."MPL-2.0
c0020 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 6f 7a 69 6c 6c 61 20 50 75 62 6c 69 63 20 4c 69 63 ":.[........."Mozilla.Public.Lic
c0040 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 ense.2.0",.........true.....],..
c0060 20 20 20 22 4d 50 4c 2d 32 2e 30 2d 6e 6f 2d 63 6f 70 79 6c 65 66 74 2d 65 78 63 65 70 74 69 6f ..."MPL-2.0-no-copyleft-exceptio
c0080 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 6f 7a 69 6c 6c 61 20 50 75 62 6c 69 63 20 4c 69 n":.[........."Mozilla.Public.Li
c00a0 63 65 6e 73 65 20 32 2e 30 20 28 6e 6f 20 63 6f 70 79 6c 65 66 74 20 65 78 63 65 70 74 69 6f 6e cense.2.0.(no.copyleft.exception
c00c0 29 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 53 2d )",.........true.....],....."MS-
c00e0 50 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 69 63 72 6f 73 6f 66 74 20 50 75 62 6c 69 63 PL":.[........."Microsoft.Public
c0100 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 .License",.........true.....],..
c0120 20 20 20 22 4d 53 2d 52 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 69 63 72 6f 73 6f 66 74 ..."MS-RL":.[........."Microsoft
c0140 20 52 65 63 69 70 72 6f 63 61 6c 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 .Reciprocal.License",.........tr
c0160 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 54 4c 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 ue.....],....."MTLL":.[.........
c0180 22 4d 61 74 72 69 78 20 54 65 6d 70 6c 61 74 65 20 4c 69 62 72 61 72 79 20 4c 69 63 65 6e 73 65 "Matrix.Template.Library.License
c01a0 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 75 6c ",.........false.....],....."Mul
c01c0 74 69 63 73 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 75 6c 74 69 63 73 20 4c 69 63 65 6e 73 tics":.[........."Multics.Licens
c01e0 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4d 75 70 e",.........true.....],....."Mup
c0200 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4d 75 70 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 ":.[........."Mup.License",.....
c0220 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 41 53 41 2d 31 2e 33 22 3a ....false.....],....."NASA-1.3":
c0240 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 41 53 41 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 41 67 72 .[........."NASA.Open.Source.Agr
c0260 65 65 6d 65 6e 74 20 31 2e 33 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c eement.1.3",.........true.....],
c0280 0a 20 20 20 20 22 4e 61 75 6d 65 6e 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 61 75 6d 65 6e ....."Naumen":.[........."Naumen
c02a0 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 .Public.License",.........true..
c02c0 20 20 20 5d 2c 0a 20 20 20 20 22 4e 42 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 ...],....."NBPL-1.0":.[.........
c02e0 22 4e 65 74 20 42 6f 6f 6c 65 61 6e 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 22 2c "Net.Boolean.Public.License.v1",
c0300 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 43 53 41 22 .........false.....],....."NCSA"
c0320 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 49 6c 6c 69 6e :.[........."University.of.Illin
c0340 6f 69 73 2f 4e 43 53 41 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 ois/NCSA.Open.Source.License",..
c0360 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 65 74 43 44 46 22 3a .......true.....],....."NetCDF":
c0380 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 65 74 43 44 46 20 6c 69 63 65 6e 73 65 22 2c 0a 20 20 20 .[........."NetCDF.license",....
c03a0 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 65 77 73 6c 65 74 72 22 .....false.....],....."Newsletr"
c03c0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 65 77 73 6c 65 74 72 20 4c 69 63 65 6e 73 65 22 2c 0a :.[........."Newsletr.License",.
c03e0 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 47 50 4c 22 3a ........false.....],....."NGPL":
c0400 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 65 74 68 61 63 6b 20 47 65 6e 65 72 61 6c 20 50 75 62 6c .[........."Nethack.General.Publ
c0420 69 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c ic.License",.........true.....],
c0440 0a 20 20 20 20 22 4e 4c 50 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 6f 20 4c 69 6d 69 74 ....."NLPL":.[........."No.Limit
c0460 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a .Public.License",.........false.
c0480 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 6f 6b 69 61 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e ....],....."Nokia":.[........."N
c04a0 6f 6b 69 61 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 okia.Open.Source.License",......
c04c0 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 4f 53 4c 22 3a 20 5b 0a 20 20 20 ...true.....],....."NOSL":.[....
c04e0 20 20 20 20 20 22 4e 65 74 69 7a 65 6e 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 ....."Netizen.Open.Source.Licens
c0500 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 6f e",.........false.....],....."No
c0520 77 65 62 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 6f 77 65 62 20 4c 69 63 65 6e 73 65 22 2c web":.[........."Noweb.License",
c0540 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 50 4c 2d 31 .........false.....],....."NPL-1
c0560 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 65 74 73 63 61 70 65 20 50 75 62 6c 69 63 20 .0":.[........."Netscape.Public.
c0580 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 License.v1.0",.........false....
c05a0 20 5d 2c 0a 20 20 20 20 22 4e 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 65 .],....."NPL-1.1":.[........."Ne
c05c0 74 73 63 61 70 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 tscape.Public.License.v1.1",....
c05e0 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 50 4f 53 4c 2d 33 2e 30 .....false.....],....."NPOSL-3.0
c0600 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 6f 6e 2d 50 72 6f 66 69 74 20 4f 70 65 6e 20 53 6f ":.[........."Non-Profit.Open.So
c0620 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 33 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 ftware.License.3.0",.........tru
c0640 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e 52 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e e.....],....."NRL":.[........."N
c0660 52 4c 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d RL.License",.........false.....]
c0680 2c 0a 20 20 20 20 22 4e 54 50 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 54 50 20 4c 69 63 65 ,....."NTP":.[........."NTP.Lice
c06a0 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4e nse",.........true.....],....."N
c06c0 75 6e 69 74 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 75 6e 69 74 20 4c 69 63 65 6e 73 65 22 unit":.[........."Nunit.License"
c06e0 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 43 4c 43 ,.........false.....],....."OCLC
c0700 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 43 4c 43 20 52 65 73 65 61 72 63 68 20 -2.0":.[........."OCLC.Research.
c0720 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 Public.License.2.0",.........tru
c0740 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 44 62 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 e.....],....."ODbL-1.0":.[......
c0760 20 20 20 22 4f 44 43 20 4f 70 65 6e 20 44 61 74 61 62 61 73 65 20 4c 69 63 65 6e 73 65 20 76 31 ..."ODC.Open.Database.License.v1
c0780 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f .0",.........false.....],....."O
c07a0 46 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 49 4c 20 4f 70 65 6e 20 46 6f 6e FL-1.0":.[........."SIL.Open.Fon
c07c0 74 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 t.License.1.0",.........false...
c07e0 20 20 5d 2c 0a 20 20 20 20 22 4f 46 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 ..],....."OFL-1.1":.[........."S
c0800 49 4c 20 4f 70 65 6e 20 46 6f 6e 74 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 IL.Open.Font.License.1.1",......
c0820 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 47 54 53 4c 22 3a 20 5b 0a 20 20 ...true.....],....."OGTSL":.[...
c0840 20 20 20 20 20 20 22 4f 70 65 6e 20 47 72 6f 75 70 20 54 65 73 74 20 53 75 69 74 65 20 4c 69 63 ......"Open.Group.Test.Suite.Lic
c0860 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 ense",.........true.....],....."
c0880 4f 4c 44 41 50 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 OLDAP-1.1":.[........."Open.LDAP
c08a0 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 .Public.License.v1.1",.........f
c08c0 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 31 2e 32 22 3a 20 5b 0a 20 alse.....],....."OLDAP-1.2":.[..
c08e0 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 ......."Open.LDAP.Public.License
c0900 20 76 31 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 .v1.2",.........false.....],....
c0920 20 22 4f 4c 44 41 50 2d 31 2e 33 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 ."OLDAP-1.3":.[........."Open.LD
c0940 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 33 22 2c 0a 20 20 20 20 20 20 20 AP.Public.License.v1.3",........
c0960 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 31 2e 34 22 3a 20 5b .false.....],....."OLDAP-1.4":.[
c0980 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e ........."Open.LDAP.Public.Licen
c09a0 73 65 20 76 31 2e 34 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 se.v1.4",.........false.....],..
c09c0 20 20 20 22 4f 4c 44 41 50 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 ..."OLDAP-2.0":.[........."Open.
c09e0 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 30 20 28 6f 72 20 70 6f 73 LDAP.Public.License.v2.0.(or.pos
c0a00 73 69 62 6c 79 20 32 2e 30 41 20 61 6e 64 20 32 2e 30 42 29 22 2c 0a 20 20 20 20 20 20 20 20 66 sibly.2.0A.and.2.0B)",.........f
c0a20 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 30 2e 31 22 3a 20 5b alse.....],....."OLDAP-2.0.1":.[
c0a40 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e ........."Open.LDAP.Public.Licen
c0a60 73 65 20 76 32 2e 30 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c se.v2.0.1",.........false.....],
c0a80 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 ....."OLDAP-2.1":.[........."Ope
c0aa0 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 31 22 2c 0a 20 20 20 n.LDAP.Public.License.v2.1",....
c0ac0 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 32 .....false.....],....."OLDAP-2.2
c0ae0 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c ":.[........."Open.LDAP.Public.L
c0b00 69 63 65 6e 73 65 20 76 32 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 icense.v2.2",.........false.....
c0b20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 ],....."OLDAP-2.2.1":.[.........
c0b40 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 32 2e 31 "Open.LDAP.Public.License.v2.2.1
c0b60 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 ",.........false.....],....."OLD
c0b80 41 50 2d 32 2e 32 2e 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 AP-2.2.2":.[........."Open.LDAP.
c0ba0 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 20 32 2e 32 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 Public.License..2.2.2",.........
c0bc0 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 33 22 3a 20 5b 0a false.....],....."OLDAP-2.3":.[.
c0be0 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 ........"Open.LDAP.Public.Licens
c0c00 65 20 76 32 2e 33 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 e.v2.3",.........false.....],...
c0c20 20 20 22 4f 4c 44 41 50 2d 32 2e 34 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c .."OLDAP-2.4":.[........."Open.L
c0c40 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 34 22 2c 0a 20 20 20 20 20 20 DAP.Public.License.v2.4",.......
c0c60 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 35 22 3a 20 ..false.....],....."OLDAP-2.5":.
c0c80 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 [........."Open.LDAP.Public.Lice
c0ca0 6e 73 65 20 76 32 2e 35 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a nse.v2.5",.........false.....],.
c0cc0 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 36 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e ...."OLDAP-2.6":.[........."Open
c0ce0 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 36 22 2c 0a 20 20 20 20 .LDAP.Public.License.v2.6",.....
c0d00 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 37 22 ....false.....],....."OLDAP-2.7"
c0d20 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 :.[........."Open.LDAP.Public.Li
c0d40 63 65 6e 73 65 20 76 32 2e 37 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d cense.v2.7",.........false.....]
c0d60 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 38 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 ,....."OLDAP-2.8":.[........."Op
c0d80 65 6e 20 4c 44 41 50 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 32 2e 38 22 2c 0a 20 20 en.LDAP.Public.License.v2.8",...
c0da0 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 4d 4c 22 3a 20 5b 0a ......false.....],....."OML":.[.
c0dc0 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 4d 61 72 6b 65 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 ........"Open.Market.License",..
c0de0 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 70 65 6e 53 53 4c .......false.....],....."OpenSSL
c0e00 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 53 53 4c 20 4c 69 63 65 6e 73 65 22 2c 0a ":.[........."OpenSSL.License",.
c0e20 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 50 4c 2d 31 2e ........false.....],....."OPL-1.
c0e40 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 0":.[........."Open.Public.Licen
c0e60 73 65 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 se.v1.0",.........false.....],..
c0e80 20 20 20 22 4f 53 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 53 6f ..."OSL-1.0":.[........."Open.So
c0ea0 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 ftware.License.1.0",.........tru
c0ec0 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 53 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 e.....],....."OSL-1.1":.[.......
c0ee0 20 20 22 4f 70 65 6e 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 .."Open.Software.License.1.1",..
c0f00 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 53 4c 2d 32 2e 30 .......false.....],....."OSL-2.0
c0f20 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 ":.[........."Open.Software.Lice
c0f40 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 nse.2.0",.........true.....],...
c0f60 20 20 22 4f 53 4c 2d 32 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 53 6f 66 .."OSL-2.1":.[........."Open.Sof
c0f80 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 32 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 tware.License.2.1",.........true
c0fa0 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 4f 53 4c 2d 33 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 .....],....."OSL-3.0":.[........
c0fc0 20 22 4f 70 65 6e 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 33 2e 30 22 2c 0a 20 20 ."Open.Software.License.3.0",...
c0fe0 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 50 44 44 4c 2d 31 2e 30 22 ......true.....],....."PDDL-1.0"
c1000 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 44 43 20 50 75 62 6c 69 63 20 44 6f 6d 61 69 6e 20 44 :.[........."ODC.Public.Domain.D
c1020 65 64 69 63 61 74 69 6f 6e 20 26 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 edication.&.License.1.0",.......
c1040 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 50 48 50 2d 33 2e 30 22 3a 20 5b 0a ..false.....],....."PHP-3.0":.[.
c1060 20 20 20 20 20 20 20 20 22 50 48 50 20 4c 69 63 65 6e 73 65 20 76 33 2e 30 22 2c 0a 20 20 20 20 ........"PHP.License.v3.0",.....
c1080 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 50 48 50 2d 33 2e 30 31 22 3a 20 ....true.....],....."PHP-3.01":.
c10a0 5b 0a 20 20 20 20 20 20 20 20 22 50 48 50 20 4c 69 63 65 6e 73 65 20 76 33 2e 30 31 22 2c 0a 20 [........."PHP.License.v3.01",..
c10c0 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 50 6c 65 78 75 73 22 .......false.....],....."Plexus"
c10e0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 65 78 75 73 20 43 6c 61 73 73 77 6f 72 6c 64 73 20 :.[........."Plexus.Classworlds.
c1100 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 License",.........false.....],..
c1120 20 20 20 22 50 6f 73 74 67 72 65 53 51 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6f 73 74 ..."PostgreSQL":.[........."Post
c1140 67 72 65 53 51 4c 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 greSQL.License",.........true...
c1160 20 20 5d 2c 0a 20 20 20 20 22 70 73 66 72 61 67 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 73 ..],....."psfrag":.[........."ps
c1180 66 72 61 67 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 frag.License",.........false....
c11a0 20 5d 2c 0a 20 20 20 20 22 70 73 75 74 69 6c 73 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 73 .],....."psutils":.[........."ps
c11c0 75 74 69 6c 73 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 utils.License",.........false...
c11e0 20 20 5d 2c 0a 20 20 20 20 22 50 79 74 68 6f 6e 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 ..],....."Python-2.0":.[........
c1200 20 22 50 79 74 68 6f 6e 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 ."Python.License.2.0",.........t
c1220 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 51 68 75 6c 6c 22 3a 20 5b 0a 20 20 20 20 20 20 rue.....],....."Qhull":.[.......
c1240 20 20 22 51 68 75 6c 6c 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 .."Qhull.License",.........false
c1260 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 51 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 .....],....."QPL-1.0":.[........
c1280 20 22 51 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 ."Q.Public.License.1.0",........
c12a0 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 52 64 69 73 63 22 3a 20 5b 0a 20 20 20 20 .true.....],....."Rdisc":.[.....
c12c0 20 20 20 20 22 52 64 69 73 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c ...."Rdisc.License",.........fal
c12e0 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 52 48 65 43 6f 73 2d 31 2e 31 22 3a 20 5b 0a 20 20 se.....],....."RHeCos-1.1":.[...
c1300 20 20 20 20 20 20 22 52 65 64 20 48 61 74 20 65 43 6f 73 20 50 75 62 6c 69 63 20 4c 69 63 65 6e ......"Red.Hat.eCos.Public.Licen
c1320 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 se.v1.1",.........false.....],..
c1340 20 20 20 22 52 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 52 65 63 69 70 72 6f ..."RPL-1.1":.[........."Recipro
c1360 63 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 cal.Public.License.1.1",........
c1380 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 52 50 4c 2d 31 2e 35 22 3a 20 5b 0a 20 20 .true.....],....."RPL-1.5":.[...
c13a0 20 20 20 20 20 20 22 52 65 63 69 70 72 6f 63 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 ......"Reciprocal.Public.License
c13c0 20 31 2e 35 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 .1.5",.........true.....],....."
c13e0 52 50 53 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 52 65 61 6c 4e 65 74 77 6f 72 RPSL-1.0":.[........."RealNetwor
c1400 6b 73 20 50 75 62 6c 69 63 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a ks.Public.Source.License.v1.0",.
c1420 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 52 53 41 2d 4d 44 22 ........true.....],....."RSA-MD"
c1440 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 52 53 41 20 4d 65 73 73 61 67 65 2d 44 69 67 65 73 74 20 :.[........."RSA.Message-Digest.
c1460 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 License",.........false.....],..
c1480 20 20 20 22 52 53 43 50 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 52 69 63 6f 68 20 53 6f 75 ..."RSCPL":.[........."Ricoh.Sou
c14a0 72 63 65 20 43 6f 64 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 rce.Code.Public.License",.......
c14c0 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 52 75 62 79 22 3a 20 5b 0a 20 20 20 20 ..true.....],....."Ruby":.[.....
c14e0 20 20 20 20 22 52 75 62 79 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 ...."Ruby.License",.........fals
c1500 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 41 58 2d 50 44 22 3a 20 5b 0a 20 20 20 20 20 20 20 e.....],....."SAX-PD":.[........
c1520 20 22 53 61 78 20 50 75 62 6c 69 63 20 44 6f 6d 61 69 6e 20 4e 6f 74 69 63 65 22 2c 0a 20 20 20 ."Sax.Public.Domain.Notice",....
c1540 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 61 78 70 61 74 68 22 3a .....false.....],....."Saxpath":
c1560 20 5b 0a 20 20 20 20 20 20 20 20 22 53 61 78 70 61 74 68 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 .[........."Saxpath.License",...
c1580 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 43 45 41 22 3a 20 5b ......false.....],....."SCEA":.[
c15a0 0a 20 20 20 20 20 20 20 20 22 53 43 45 41 20 53 68 61 72 65 64 20 53 6f 75 72 63 65 20 4c 69 63 ........."SCEA.Shared.Source.Lic
c15c0 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 ense",.........false.....],.....
c15e0 22 53 65 6e 64 6d 61 69 6c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 65 6e 64 6d 61 69 6c 20 "Sendmail":.[........."Sendmail.
c1600 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 License",.........false.....],..
c1620 20 20 20 22 53 47 49 2d 42 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 47 49 20 46 ..."SGI-B-1.0":.[........."SGI.F
c1640 72 65 65 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 42 20 76 31 2e 30 22 2c 0a 20 20 ree.Software.License.B.v1.0",...
c1660 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 47 49 2d 42 2d 31 2e ......false.....],....."SGI-B-1.
c1680 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 47 49 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 1":.[........."SGI.Free.Software
c16a0 20 4c 69 63 65 6e 73 65 20 42 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a .License.B.v1.1",.........false.
c16c0 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 47 49 2d 42 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 ....],....."SGI-B-2.0":.[.......
c16e0 20 20 22 53 47 49 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 42 20 76 .."SGI.Free.Software.License.B.v
c1700 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 2.0",.........false.....],....."
c1720 53 69 6d 50 4c 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 69 6d 70 6c 65 20 50 75 SimPL-2.0":.[........."Simple.Pu
c1740 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a blic.License.2.0",.........true.
c1760 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 49 53 53 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 ....],....."SISSL":.[........."S
c1780 75 6e 20 49 6e 64 75 73 74 72 79 20 53 74 61 6e 64 61 72 64 73 20 53 6f 75 72 63 65 20 4c 69 63 un.Industry.Standards.Source.Lic
c17a0 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a ense.v1.1",.........true.....],.
c17c0 20 20 20 20 22 53 49 53 53 4c 2d 31 2e 32 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 75 6e 20 ...."SISSL-1.2":.[........."Sun.
c17e0 49 6e 64 75 73 74 72 79 20 53 74 61 6e 64 61 72 64 73 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 Industry.Standards.Source.Licens
c1800 65 20 76 31 2e 32 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 e.v1.2",.........false.....],...
c1820 20 20 22 53 6c 65 65 70 79 63 61 74 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6c 65 65 70 79 .."Sleepycat":.[........."Sleepy
c1840 63 61 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d cat.License",.........true.....]
c1860 2c 0a 20 20 20 20 22 53 4d 4c 4e 4a 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 74 61 6e 64 61 ,....."SMLNJ":.[........."Standa
c1880 72 64 20 4d 4c 20 6f 66 20 4e 65 77 20 4a 65 72 73 65 79 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 rd.ML.of.New.Jersey.License",...
c18a0 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 4e 49 41 22 3a 20 5b ......false.....],....."SNIA":.[
c18c0 0a 20 20 20 20 20 20 20 20 22 53 4e 49 41 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e ........."SNIA.Public.License.1.
c18e0 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 70 1",.........false.....],....."Sp
c1900 65 6e 63 65 72 2d 38 36 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 70 65 6e 63 65 72 20 4c 69 encer-86":.[........."Spencer.Li
c1920 63 65 6e 73 65 20 38 36 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a cense.86",.........false.....],.
c1940 20 20 20 20 22 53 70 65 6e 63 65 72 2d 39 34 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 70 65 ...."Spencer-94":.[........."Spe
c1960 6e 63 65 72 20 4c 69 63 65 6e 73 65 20 39 34 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a ncer.License.94",.........false.
c1980 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 70 65 6e 63 65 72 2d 39 39 22 3a 20 5b 0a 20 20 20 20 20 ....],....."Spencer-99":.[......
c19a0 20 20 20 22 53 70 65 6e 63 65 72 20 4c 69 63 65 6e 73 65 20 39 39 22 2c 0a 20 20 20 20 20 20 20 ..."Spencer.License.99",........
c19c0 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 .false.....],....."SPL-1.0":.[..
c19e0 20 20 20 20 20 20 20 22 53 75 6e 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 ......."Sun.Public.License.v1.0"
c1a00 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 75 67 61 72 ,.........true.....],....."Sugar
c1a20 43 52 4d 2d 31 2e 31 2e 33 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 75 67 61 72 43 52 4d 20 CRM-1.1.3":.[........."SugarCRM.
c1a40 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 2e 33 22 2c 0a 20 20 20 20 20 20 20 20 Public.License.v1.1.3",.........
c1a60 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 53 57 4c 22 3a 20 5b 0a 20 20 20 20 20 20 false.....],....."SWL":.[.......
c1a80 20 20 22 53 63 68 65 6d 65 20 57 69 64 67 65 74 20 4c 69 62 72 61 72 79 20 28 53 57 4c 29 20 53 .."Scheme.Widget.Library.(SWL).S
c1aa0 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 41 67 72 65 65 6d 65 6e 74 22 2c 0a 20 20 20 20 oftware.License.Agreement",.....
c1ac0 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 54 43 4c 22 3a 20 5b 0a 20 20 ....false.....],....."TCL":.[...
c1ae0 20 20 20 20 20 20 22 54 43 4c 2f 54 4b 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 ......"TCL/TK.License",.........
c1b00 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 54 4d 61 74 65 22 3a 20 5b 0a 20 20 20 20 false.....],....."TMate":.[.....
c1b20 20 20 20 20 22 54 4d 61 74 65 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 22 2c ...."TMate.Open.Source.License",
c1b40 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 54 4f 52 51 55 .........false.....],....."TORQU
c1b60 45 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 54 4f 52 51 55 45 20 76 32 2e 35 2b 20 E-1.1":.[........."TORQUE.v2.5+.
c1b80 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 Software.License.v1.1",.........
c1ba0 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 54 4f 53 4c 22 3a 20 5b 0a 20 20 20 20 20 false.....],....."TOSL":.[......
c1bc0 20 20 20 22 54 72 75 73 73 74 65 72 20 4f 70 65 6e 20 53 6f 75 72 63 65 20 4c 69 63 65 6e 73 65 ..."Trusster.Open.Source.License
c1be0 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 55 6e 69 ",.........false.....],....."Uni
c1c00 63 6f 64 65 2d 54 4f 55 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 55 6e 69 63 6f 64 65 20 54 65 code-TOU":.[........."Unicode.Te
c1c20 72 6d 73 20 6f 66 20 55 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d rms.of.Use",.........false.....]
c1c40 2c 0a 20 20 20 20 22 55 6e 6c 69 63 65 6e 73 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 54 68 ,....."Unlicense":.[........."Th
c1c60 65 20 55 6e 6c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 e.Unlicense",.........false.....
c1c80 5d 2c 0a 20 20 20 20 22 55 50 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 55 6e 69 ],....."UPL-1.0":.[........."Uni
c1ca0 76 65 72 73 61 6c 20 50 65 72 6d 69 73 73 69 76 65 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c versal.Permissive.License.v1.0",
c1cc0 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 56 69 6d 22 3a 20 .........true.....],....."Vim":.
c1ce0 5b 0a 20 20 20 20 20 20 20 20 22 56 69 6d 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 [........."Vim.License",........
c1d00 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 56 4f 53 54 52 4f 4d 22 3a 20 5b 0a 20 .false.....],....."VOSTROM":.[..
c1d20 20 20 20 20 20 20 20 22 56 4f 53 54 52 4f 4d 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 ......."VOSTROM.Public.License.f
c1d40 6f 72 20 4f 70 65 6e 20 53 6f 75 72 63 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 or.Open.Source",.........false..
c1d60 20 20 20 5d 2c 0a 20 20 20 20 22 56 53 4c 2d 31 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 ...],....."VSL-1.0":.[........."
c1d80 56 6f 76 69 64 61 20 53 6f 66 74 77 61 72 65 20 4c 69 63 65 6e 73 65 20 76 31 2e 30 22 2c 0a 20 Vovida.Software.License.v1.0",..
c1da0 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 57 33 43 22 3a 20 5b 0a .......true.....],....."W3C":.[.
c1dc0 20 20 20 20 20 20 20 20 22 57 33 43 20 53 6f 66 74 77 61 72 65 20 4e 6f 74 69 63 65 20 61 6e 64 ........"W3C.Software.Notice.and
c1de0 20 4c 69 63 65 6e 73 65 20 28 32 30 30 32 2d 31 32 2d 33 31 29 22 2c 0a 20 20 20 20 20 20 20 20 .License.(2002-12-31)",.........
c1e00 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 57 33 43 2d 31 39 39 38 30 37 32 30 22 3a 20 true.....],....."W3C-19980720":.
c1e20 5b 0a 20 20 20 20 20 20 20 20 22 57 33 43 20 53 6f 66 74 77 61 72 65 20 4e 6f 74 69 63 65 20 61 [........."W3C.Software.Notice.a
c1e40 6e 64 20 4c 69 63 65 6e 73 65 20 28 31 39 39 38 2d 30 37 2d 32 30 29 22 2c 0a 20 20 20 20 20 20 nd.License.(1998-07-20)",.......
c1e60 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 3a ..false.....],....."Watcom-1.0":
c1e80 20 5b 0a 20 20 20 20 20 20 20 20 22 53 79 62 61 73 65 20 4f 70 65 6e 20 57 61 74 63 6f 6d 20 50 .[........."Sybase.Open.Watcom.P
c1ea0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 ublic.License.1.0",.........true
c1ec0 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 57 73 75 69 70 61 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 .....],....."Wsuipa":.[.........
c1ee0 22 57 73 75 69 70 61 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a "Wsuipa.License",.........false.
c1f00 20 20 20 20 5d 2c 0a 20 20 20 20 22 57 54 46 50 4c 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 ....],....."WTFPL":.[........."D
c1f20 6f 20 57 68 61 74 20 54 68 65 20 46 2a 63 6b 20 59 6f 75 20 57 61 6e 74 20 54 6f 20 50 75 62 6c o.What.The.F*ck.You.Want.To.Publ
c1f40 69 63 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d ic.License",.........false.....]
c1f60 2c 0a 20 20 20 20 22 58 31 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 58 31 31 20 4c 69 63 65 ,....."X11":.[........."X11.Lice
c1f80 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 nse",.........false.....],....."
c1fa0 58 65 72 6f 78 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 58 65 72 6f 78 20 4c 69 63 65 6e 73 65 Xerox":.[........."Xerox.License
c1fc0 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 58 46 72 ",.........false.....],....."XFr
c1fe0 65 65 38 36 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 58 46 72 65 65 38 36 20 4c 69 ee86-1.1":.[........."XFree86.Li
c2000 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c cense.1.1",.........false.....],
c2020 0a 20 20 20 20 22 78 69 6e 65 74 64 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 78 69 6e 65 74 64 ....."xinetd":.[........."xinetd
c2040 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a .License",.........false.....],.
c2060 20 20 20 20 22 58 6e 65 74 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 58 2e 4e 65 74 20 4c 69 63 ...."Xnet":.[........."X.Net.Lic
c2080 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 ense",.........true.....],....."
c20a0 78 70 70 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 58 50 50 20 4c 69 63 65 6e 73 65 22 2c 0a 20 xpp":.[........."XPP.License",..
c20c0 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 58 53 6b 61 74 22 3a .......false.....],....."XSkat":
c20e0 20 5b 0a 20 20 20 20 20 20 20 20 22 58 53 6b 61 74 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 .[........."XSkat.License",.....
c2100 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 59 50 4c 2d 31 2e 30 22 3a 20 ....false.....],....."YPL-1.0":.
c2120 5b 0a 20 20 20 20 20 20 20 20 22 59 61 68 6f 6f 21 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 [........."Yahoo!.Public.License
c2140 20 76 31 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 .v1.0",.........false.....],....
c2160 20 22 59 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 59 61 68 6f 6f 21 20 50 75 ."YPL-1.1":.[........."Yahoo!.Pu
c2180 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 blic.License.v1.1",.........fals
c21a0 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 5a 65 64 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5a e.....],....."Zed":.[........."Z
c21c0 65 64 20 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d ed.License",.........false.....]
c21e0 2c 0a 20 20 20 20 22 5a 65 6e 64 2d 32 2e 30 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5a 65 6e ,....."Zend-2.0":.[........."Zen
c2200 64 20 4c 69 63 65 6e 73 65 20 76 32 2e 30 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 d.License.v2.0",.........false..
c2220 20 20 20 5d 2c 0a 20 20 20 20 22 5a 69 6d 62 72 61 2d 31 2e 33 22 3a 20 5b 0a 20 20 20 20 20 20 ...],....."Zimbra-1.3":.[.......
c2240 20 20 22 5a 69 6d 62 72 61 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 76 31 2e 33 22 2c 0a .."Zimbra.Public.License.v1.3",.
c2260 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 5a 69 6d 62 72 61 ........false.....],....."Zimbra
c2280 2d 31 2e 34 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5a 69 6d 62 72 61 20 50 75 62 6c 69 63 20 -1.4":.[........."Zimbra.Public.
c22a0 4c 69 63 65 6e 73 65 20 76 31 2e 34 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 License.v1.4",.........false....
c22c0 20 5d 2c 0a 20 20 20 20 22 5a 6c 69 62 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 7a 6c 69 62 20 .],....."Zlib":.[........."zlib.
c22e0 4c 69 63 65 6e 73 65 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 License",.........true.....],...
c2300 20 20 22 7a 6c 69 62 2d 61 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 22 3a 20 5b 0a 20 20 20 20 .."zlib-acknowledgement":.[.....
c2320 20 20 20 20 22 7a 6c 69 62 2f 6c 69 62 70 6e 67 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 41 63 ...."zlib/libpng.License.with.Ac
c2340 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 knowledgement",.........false...
c2360 20 20 5d 2c 0a 20 20 20 20 22 5a 50 4c 2d 31 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5a ..],....."ZPL-1.1":.[........."Z
c2380 6f 70 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 31 2e 31 22 2c 0a 20 20 20 20 20 20 20 ope.Public.License.1.1",........
c23a0 20 66 61 6c 73 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 5a 50 4c 2d 32 2e 30 22 3a 20 5b 0a 20 .false.....],....."ZPL-2.0":.[..
c23c0 20 20 20 20 20 20 20 22 5a 6f 70 65 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 32 2e 30 22 ......."Zope.Public.License.2.0"
c23e0 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 0a 20 20 20 20 5d 2c 0a 20 20 20 20 22 5a 50 4c 2d 32 ,.........true.....],....."ZPL-2
c2400 2e 31 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5a 6f 70 65 20 50 75 62 6c 69 63 20 4c 69 63 65 .1":.[........."Zope.Public.Lice
c2420 6e 73 65 20 32 2e 31 22 2c 0a 20 20 20 20 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 5d 0a 7d 4d nse.2.1",.........false.....].}M
c2440 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 00 00 00 00 00 Z......................@........
c2460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 0e ................................
c2480 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 61 6e 6e 6f 74 .......!..L.!This.program.cannot
c24a0 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 00 00 00 00 7f .be.run.in.DOS.mode....$........
c24c0 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 2d a7 42 9e 32 .,.;.B.;.B.;.B.2...:.B.2...-.B.2
c24e0 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 08 a7 42 9e 32 ...9.B.2...?.B..a9.8.B.;.C...B.2
c2500 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 3b a7 42 9e 00 ...:.B.2...:.B.2...:.B.Rich;.B..
c2520 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 e0 00 02 01 0b .......PE..L....MoO.............
c2540 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 00 00 40 00 00 ...............8.............@..
c2560 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 00 04 00 00 3f ........................`......?
c2580 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 10 00 00 00 00 .....@..........................
c25a0 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 00 00 00 00 00 ........"..P....@...............
c25c0 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 00 00 00 00 00 ........P..p....!...............
c25e0 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 00 00 00 00 00 ...............8!..@............
c2600 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 00 00 00 00 2e ................................
c2620 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 00 00 00 00 00 text............................
c2640 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 00 0e 00 00 00 ......`.rdata...................
c2660 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 00 30 00 00 00 ...........@..@.data........0...
c2680 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 63 00 00 00 20 ...................@....rsrc....
c26a0 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 40 00 00 40 2e ....@......................@..@.
c26c0 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 00 00 00 00 00 reloc.......P......."...........
c26e0 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 00 00 00 00 00 ...@..B.........................
c2700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c27a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c27c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c27e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a ...............................j
c2840 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 d0 50 56 ff 15 $...@..x...j.....@..e.....E.PV..
c2860 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 83 65 fc 00 8d ..@..E....PV....@..M...X.@..e...
c2880 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 ff 35 60 20 40 E.P.5H.@...L.@.YY.5\.@..E.P.5`.@
c28a0 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 20 40 00 33 c0 ...D.@.YY....P.@..M...M...T.@.3.
c28c0 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 a3 04 00 00 a1 .H....;..0@.u........h..@.......
c28e0 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 68 28 30 40 00 l3@...$40@..5h3@..40@.h$0@.h(0@.
c2900 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 03 00 00 59 c3 h.0@.....@.....00@...}.j......Y.
c2920 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 5d e4 bf 80 33 j.h."@......3..].d......p..]...3
c2940 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 68 e8 03 00 00 @.SVW..0.@.;.t.;.u.3.F.u...h....
c2960 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 59 eb 3b a1 7c ..4.@...3.F.|3@.;.u.j..\...Y.;.|
c2980 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 00 59 59 85 c0 3@...u,.5|3@.h..@.h..@......YY..
c29a0 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 33 40 00 3b c6 t..E................5<0@..|3@.;.
c29c0 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 00 00 39 5d e4 u.h..@.h..@..l...YY..|3@.....9].
c29e0 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 00 59 85 c0 74 u.SW..8.@.9..3@.t.h.3@......Y..t
c2a00 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 30 40 00 ff 35 .Sj.S...3@..$0@.....@....5$0@..5
c2a20 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 40 00 75 37 50 (0@..5.0@..........80@.9.,0@.u7P
c2a40 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 65 e8 8b 45 e0 ....@..E......M.PQ.....YY..e..E.
c2a60 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 00 75 06 ff 15 .80@.3.9.,0@.u.P..h.@.9.<0@.u...
c2a80 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 66 39 05 00 00 ..@..E......80@........MZ..f9...
c2aa0 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 0f b7 48 18 81 @.t.3..M.<.@.....@..8PE..u...H..
c2ac0 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 88 f8 00 00 00 .....t.......u........v.3.9.....
c2ae0 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 00 ff 15 70 20 ...xt.v.3.9..........j..,0@...p.
c2b00 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 00 8b 0d 74 33 @.j...l.@.YY..3@...3@.....@...t3
c2b20 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 33 40 00 e8 56 @.......@...p3@......@....x3@..V
c2b40 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 00 59 e8 67 04 .........=.0@..u.h..@.....@.Y.g.
c2b60 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 00 e9 9f fd ff ...=.0@..u.j.....@.Y3...{.......
c2b80 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 40 00 89 1d 3c ...U....(....H1@...D1@...@1@...<
c2ba0 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 40 00 66 8c 1d 1@..581@..=41@.f..`1@.f..T1@.f..
c2bc0 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 05 58 31 40 00 01@.f..,1@.f.%(1@.f.-$1@....X1@.
c2be0 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 fc ff ff c7 05 .E..L1@..E..P1@..E..\1@.........
c2c00 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 c0 c7 05 44 30 .0@......P1@..L0@...@0@.......D0
c2c20 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 ff ff 15 1c 20 @.......0@.........0@...........
c2c40 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 00 ff 15 24 20 @...0@.j..?...Yj.....@.h.!@...$.
c2c60 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 20 40 00 50 ff @..=.0@..u.j......Yh......(.@.P.
c2c80 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 10 03 75 24 8b .,.@.....U...E....8csm.u*.x..u$.
c2ca0 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 01 75 05 e8 d0 @.=....t.=!...t.="...t.=.@..u...
c2cc0 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 40 00 6a 14 68 ...3.]...hH.@.....@.3...%..@.j.h
c2ce0 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 83 f8 ff 75 0c ("@..b....5.3@..5..@...Y.E....u.
c2d00 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 33 40 00 ff d6 .u.....@.Y.gj......Y.e...5.3@...
c2d20 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 8b 35 6c 20 40 .E..5.3@...YY.E..E.P.E.P.u..5l.@
c2d40 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 d6 83 c4 14 a3 ...YP.U....E..u.....3@..u.......
c2d60 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 e8 19 03 00 00 .3@..E...........E.......j......
c2d80 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 56 b8 fc 21 40 Y...U...u..N.........YH]...V..!@
c2da0 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 f1 5f 5e c3 8b ...!@.W..;.s.....t......;.r._^..
c2dc0 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 83 c7 04 3b fe .V.."@..."@.W..;.s.....t......;.
c2de0 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 00 66 39 01 74 r._^..%..@.......U...M..MZ..f9.t
c2e00 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 48 18 0f 94 c2 .3.]..A<...8PE..u.3......f9H....
c2e20 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 c8 0f b7 41 14 ..]..............U...E..H<....A.
c2e40 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 8b 58 08 03 d9 SV..q.3.W.D....v..}..H.;.r..X...
c2e60 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 cc cc cc cc 8b ;.r.B..(;.r.3._^[]..............
c2e80 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 56 57 a1 00 30 .U..j.hH"@.he.@.d.....P...SVW..0
c2ea0 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 68 00 00 40 00 @.1E.3.P.E.d......e..E.....h..@.
c2ec0 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 50 ff ff ff 83 .*........tU.E.-..@.Ph..@..P....
c2ee0 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 64 89 0d 00 00 ....t;.@$.........E......M.d....
c2f00 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 8b c2 c3 8b 65 ..Y_^[..]..E.....3.=...........e
c2f20 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 c3 cc ff 25 b8 ..E.....3..M.d......Y_^[..]...%.
c2f40 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 89 6c 24 10 8d .@..%..@...he.@.d.5.....D$..l$..
c2f60 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 fc c7 45 fc fe l$.+.SVW..0@.1E.3.P.e..u..E..E..
c2f80 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 5f 5f 5e 5b 8b ....E..E.d.......M.d......Y__^[.
c2fa0 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 00 30 40 00 e8 .]Q...U...u..u..u..u.h..@.h.0@..
c2fc0 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 00 00 00 83 c4 .......]...Vh....h....3.V.......
c2fe0 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 ec 83 ec 10 a1 ...t.VVVVV........^.3....U......
c3000 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 0d 85 c3 74 09 .0@..e...e..SW.N.@......;.t...t.
c3020 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 15 0c 20 40 00 ....0@..`V.E.P..<.@..u.3u.....@.
c3040 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 00 8b 45 f4 33 3.....@.3.....@.3..E.P....@..E.3
c3060 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 35 00 30 40 00 E.3.;.u..O.@.....u.........5.0@.
c3080 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 7c 20 40 00 ff ...5.0@.^_[...%t.@..%x.@..%|.@..
c30a0 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 40 00 ff 25 d0 %..@..%..@..%..@..%..@..%..@..%.
c30c0 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 00 30 40 00 33 .@.Pd.5.....D$.+d$.SVW.(....0@.3
c30e0 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 f4 64 89 0d 00 .P.E..u..E......E.d.......M.d...
c3100 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 ff 8d 4d d4 ff ...Y__^[..]Q..M.3............M..
c3120 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 e8 86 f7 ff ff %T.@..T$..B..J.3.......J.3......
c3140 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 00 00 00 00 00 .l"@..s.........................
c3160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c31a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c31c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c31e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 ................................
c3240 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 34 29 00 00 16 #...#...#...)..r)..b)..H)..4)...
c3260 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 9e 29 00 00 00 )...(...(...(...(...(...(...)...
c3280 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 ae 26 00 00 a4 ....#...$...%...%...&..d&...&...
c32a0 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 1e 28 00 00 28 $......('...'...'...'...'...(..(
c32c0 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 1e 27 00 00 0e (..6(...'..H(..Z(..t(...(...'...
c32e0 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 46 27 00 00 3e '...'...'...'..l'..^'..R'..F'..>
c3300 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 96 10 40 00 00 '..>(..0'...'...)............@..
c3320 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 00 00 00 00 00 .......W.@...@..................
c3340 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 40 30 40 00 98 ....MoO........l....!......@0@..
c3360 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 00 00 00 00 00 0@.bad.allocation......H........
c3380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c33a0 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 02 00 00 00 52 ....................0@..!@.....R
c33c0 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 73 65 72 73 5c SDS.......J.!...LZ.....c:\users\
c33e0 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 6f 20 32 30 31 seld\documents\visual.studio.201
c3400 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 65 5c 68 69 64 0\Projects\hiddeninp\Release\hid
c3420 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 00 00 00 00 00 deninp.pdb.....e................
c3440 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 07 12 40 00 1b .............................@..
c3460 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 00 00 00 00 3a .@.............................:
c3480 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 cb 16 40 00 df .@...........................@..
c34a0 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 00 00 00 00 00 .@.......@.".......d"@..........
c34c0 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 ec 23 00 00 00 ................"...........#...
c34e0 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 00 00 00 00 00 ...$#...........&..D...H#.......
c3500 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 00 00 00 00 b8 ....(..h........................
c3520 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 34 29 00 00 16 #...#...#...)..r)..b)..H)..4)...
c3540 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 9e 29 00 00 00 )...(...(...(...(...(...(...)...
c3560 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 ae 26 00 00 a4 ....#...$...%...%...&..d&...&...
c3580 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 1e 28 00 00 28 $......('...'...'...'...'...(..(
c35a0 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 1e 27 00 00 0e (..6(...'..H(..Z(..t(...(...'...
c35c0 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 46 27 00 00 3e '...'...'...'..l'..^'..R'..F'..>
c35e0 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 74 43 6f 6e 73 '..>(..0'...'...)........GetCons
c3600 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 3b 02 47 65 74 oleMode....SetConsoleMode..;.Get
c3620 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 3f 3f 24 3f 36 StdHandle..KERNEL32.dll....??$?6
c3640 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
c3660 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 6f 73 74 72 65 tor@D@1@@std@@YAAAV?$basic_ostre
c3680 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 am@DU?$char_traits@D@std@@@0@AAV
c36a0 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 61 72 5f 74 72 10@ABV?$basic_string@DU?$char_tr
c36c0 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 aits@D@std@@V?$allocator@D@2@@0@
c36e0 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 73 74 72 65 61 @Z...?cout@std@@3V?$basic_ostrea
c3700 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 00 4a m@DU?$char_traits@D@std@@@1@A..J
c3720 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 6d 40 44 55 3f .?cin@std@@3V?$basic_istream@DU?
c3740 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 3f 3f 24 67 65 $char_traits@D@std@@@1@A...??$ge
c3760 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 40 40 56 3f 24 tline@DU?$char_traits@D@std@@V?$
c3780 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 62 61 73 69 63 allocator@D@2@@std@@YAAAV?$basic
c37a0 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 73 74 64 40 40 _istream@DU?$char_traits@D@std@@
c37c0 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 44 55 3f 24 63 @0@AAV10@AAV?$basic_string@DU?$c
c37e0 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 44 har_traits@D@std@@V?$allocator@D
c3800 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 61 6d 40 44 55 @2@@0@@Z...??6?$basic_ostream@DU
c3820 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 51 41 45 41 41 ?$char_traits@D@std@@@std@@QAEAA
c3840 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 3f 3f 31 3f 24 V01@P6AAAV01@AAV01@@Z@Z.._.??1?$
c3860 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 73 40 44 40 73 basic_string@DU?$char_traits@D@s
c3880 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 51 41 45 40 58 td@@V?$allocator@D@2@@std@@QAE@X
c38a0 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 63 68 61 72 5f Z..{.??0?$basic_string@DU?$char_
c38c0 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 traits@D@std@@V?$allocator@D@2@@
c38e0 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 41 41 41 56 3f std@@QAE@XZ....?endl@std@@YAAAV?
c3900 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 69 74 73 40 44 $basic_ostream@DU?$char_traits@D
c3920 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 64 6c 6c 00 15 @std@@@1@AAV21@@Z..MSVCP90.dll..
c3940 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 73 00 2c 01 5f ._amsg_exit....__getmainargs.,._
c3960 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 72 00 cc 04 65 cexit..|._exit.f._XcptFilter...e
c3980 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 6d 00 05 02 5f xit....__initenv..._initterm..._
c39a0 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 6f 63 61 6c 65 initterm_e.<._configthreadlocale
c39c0 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 75 73 74 5f 66 ...__setusermatherr...._adjust_f
c39e0 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 5f 66 6d 6f 64 div....__p__commode....__p__fmod
c3a00 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 74 5f 61 70 70 e..j._encode_pointer...__set_app
c3a20 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 00 00 43 00 3f _type..K._crt_debugger_hook..C.?
c3a40 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 6c 00 e6 03 5f terminate@@YAXXZ.MSVCR90.dll..._
c3a60 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 6b 00 1c 03 5f unlock...__dllonexit.v._lock..._
c3a80 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 5f 65 78 63 65 onexit.`._decode_pointer.s._exce
c3aa0 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 65 5f 77 61 74 pt_handler4_common..._invoke_wat
c3ac0 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 72 6c 6f 63 6b son..?._controlfp_s....Interlock
c3ae0 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 6f 63 6b 65 64 edExchange.!.Sleep...Interlocked
c3b00 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 65 50 72 6f 63 CompareExchange..-.TerminateProc
c3b20 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 55 6e 68 61 6e ess....GetCurrentProcess.>.Unhan
c3b40 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 6e 68 61 6e 64 dledExceptionFilter....SetUnhand
c3b60 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 67 67 65 72 50 ledExceptionFilter...IsDebuggerP
c3b80 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 75 6e 74 65 72 resent.T.QueryPerformanceCounter
c3ba0 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 6e 74 54 68 72 .f.GetTickCount....GetCurrentThr
c3bc0 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 64 00 4f 02 47 eadId....GetCurrentProcessId.O.G
c3be0 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 43 78 78 46 72 etSystemTimeAsFileTime.s.__CxxFr
c3c00 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 00 00 00 00 00 ameHandler3.....................
c3c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4e ...............................N
c3c40 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 00 00 00 00 00 .@....D................$!@......
c3c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3e40 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 38 00 00 80 00 ...........................8....
c3e60 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 00 00 00 00 04 ...................P............
c3e80 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 00 00 01 00 09 ...........h....................
c3ea0 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 90 00 00 00 a0 ................................
c3ec0 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 00 00 00 00 28 @..(............C..V...........(
c3ee0 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 49 00 4e 00 46 .4...V.S._.V.E.R.S.I.O.N._.I.N.F
c3f00 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 00 00 00 00 17 .O..............................
c3f20 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 86 02 00 00 01 ................................
c3f40 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 6f 00 00 00 62 .S.t.r.i.n.g.F.i.l.e.I.n.f.o...b
c3f60 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 01 00 46 00 69 .....0.4.0.9.0.4.b.0.....Q...F.i
c3f80 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 00 00 00 00 52 .l.e.D.e.s.c.r.i.p.t.i.o.n.....R
c3fa0 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 69 00 6e 00 20 .e.a.d.s...f.r.o.m...s.t.d.i.n..
c3fc0 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 6e 00 67 00 20 .w.i.t.h.o.u.t...l.e.a.k.i.n.g..
c3fe0 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 65 00 72 00 6d .i.n.f.o...t.o...t.h.e...t.e.r.m
c4000 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 75 00 74 00 73 .i.n.a.l...a.n.d...o.u.t.p.u.t.s
c4020 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 75 00 74 00 00 ...b.a.c.k...t.o...s.t.d.o.u.t..
c4040 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 6f 00 6e 00 00 ...6.....F.i.l.e.V.e.r.s.i.o.n..
c4060 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 38 00 0c 00 01 ...1.,...0.,...0.,...0.....8....
c4080 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 68 00 69 00 64 .I.n.t.e.r.n.a.l.N.a.m.e...h.i.d
c40a0 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 65 00 67 00 61 .d.e.n.i.n.p.u.t...P.....L.e.g.a
c40c0 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 72 00 64 00 69 .l.C.o.p.y.r.i.g.h.t...J.o.r.d.i
c40e0 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 30 00 31 00 32 ...B.o.g.g.i.a.n.o...-...2.0.1.2
c4100 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 69 00 6c 00 65 ...H.....O.r.i.g.i.n.a.l.F.i.l.e
c4120 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 70 00 75 00 74 .n.a.m.e...h.i.d.d.e.n.i.n.p.u.t
c4140 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 63 00 74 00 4e ...e.x.e...:.....P.r.o.d.u.c.t.N
c4160 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 6e 00 70 00 75 .a.m.e.....H.i.d.d.e.n...I.n.p.u
c4180 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 56 00 65 00 72 .t.....:.....P.r.o.d.u.c.t.V.e.r
c41a0 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 20 00 30 00 00 .s.i.o.n...1.,...0.,...0.,...0..
c41c0 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 66 00 6f 00 00 ...D.....V.a.r.F.i.l.e.I.n.f.o..
c41e0 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 6f 00 6e 00 00 ...$.....T.r.a.n.s.l.a.t.i.o.n..
c4200 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 3a 73 63 68 65 .......<assembly.xmlns="urn:sche
c4220 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 61 6e 69 66 65 mas-microsoft-com:asm.v1".manife
c4240 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 6e 66 6f 20 78 stVersion="1.0">....<trustInfo.x
c4260 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 2d 63 6f 6d 3a mlns="urn:schemas-microsoft-com:
c4280 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 20 20 20 20 20 asm.v3">......<security>........
c42a0 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 20 20 20 20 3c <requestedPrivileges>..........<
c42c0 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 65 6c 3d 22 61 requestedExecutionLevel.level="a
c42e0 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 3c 2f 72 65 71 sInvoker".uiAccess="false"></req
c4300 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 20 20 3c 2f 72 uestedExecutionLevel>........</r
c4320 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 73 65 63 75 72 equestedPrivileges>......</secur
c4340 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 70 65 6e 64 65 ity>....</trustInfo>....<depende
c4360 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 79 3e 0d 0a 20 ncy>......<dependentAssembly>...
c4380 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 3d 22 77 69 6e .....<assemblyIdentity.type="win
c43a0 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 54 22 20 76 65 32".name="Microsoft.VC90.CRT".ve
c43c0 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 6f 72 41 72 63 rsion="9.0.21022.8".processorArc
c43e0 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 6b 65 6e 3d 22 hitecture="x86".publicKeyToken="
c4400 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 79 49 64 65 6e 1fc8b3b9a1e18e3b"></assemblyIden
c4420 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 62 6c 79 3e 0d tity>......</dependentAssembly>.
c4440 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 79 3e 50 41 50 ...</dependency>..</assembly>PAP
c4460 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4480 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c44a0 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c44c0 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c44e0 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4500 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4520 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4540 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4560 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4580 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c45a0 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c45c0 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c45e0 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4600 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 44 49 4e 47 50 ADDINGXXPADDINGPADDINGXXPADDINGP
c4620 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 44 49 4e 47 00 ADDINGXXPADDINGPADDINGXXPADDING.
c4640 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 6e 30 7b 30 89 ...@....0.0!0/080F0L0T0^0d0n0{0.
c4660 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 23 31 2d 31 40 0.0.0.0.0.0.0.0.0.0.0.0.0.1#1-1@
c4680 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 d3 31 db 31 e1 1J1O1T1v1{1.1.1.1.1.1.1.1.1.1.1.
c46a0 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 b9 32 bf 32 c7 1.1.1.1.2"2*23292A2M2_2j2p2.2.2.
c46c0 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 4e 33 54 33 5a 2.2.2.2.2.2.2.2.2.3.3.3%303N3T3Z
c46e0 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 c1 33 ca 33 cf 3`3f3l3s3z3.3.3.3.3.3.3.3.3.3.3.
c4700 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 91 34 9a 34 a1 3.3.3.3.3.3.4.4.4.4%4;4B4.4.4.4.
c4720 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 48 36 4d 36 5f 4.4.4.4.4.4.4.5!5^5c5.5.5.5H6M6_
c4740 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 05 38 0d 38 19 6}6.6.6.7.7.7*7w7|7.7.7.7.7.8.8.
c4760 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 02 39 00 00 00 8=8E8P8V8\8b8h8n8t8z8.8.8.8.9...
c4780 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 5c 32 60 32 68 ...$....0.0.0.1.1t1x1.2.2@2\2`2h
c47a0 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 00 00 00 00 00 2t2.0.......0...................
c47c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c47e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c ...............................<
c4840 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
c4860 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 6e 79 \Component\Console;..use.Symfony
c4880 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 54 65 \Component\Console\Descriptor\Te
c48a0 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 6f 6e xtDescriptor;.use.Symfony\Compon
c48c0 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 72 69 ent\Console\Descriptor\XmlDescri
c48e0 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
c4900 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 72 3b ole\Helper\DebugFormatterHelper;
c4920 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
c4940 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 6e 79 elper\ProcessHelper;.use.Symfony
c4960 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 74 69 \Component\Console\Helper\Questi
c4980 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 74 5c onHelper;.use.Symfony\Component\
c49a0 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
c49c0 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
c49e0 74 5c 41 72 67 76 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 t\ArgvInput;.use.Symfony\Compone
c4a00 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 nt\Console\Input\ArrayInput;.use
c4a20 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
c4a40 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 6f \InputDefinition;.use.Symfony\Co
c4a60 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
c4a80 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
c4aa0 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
c4ac0 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
c4ae0 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 70 6f wareInterface;.use.Symfony\Compo
c4b00 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 74 70 nent\Console\Output\BufferedOutp
c4b20 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 6c ut;.use.Symfony\Component\Consol
c4b40 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
c4b60 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 mfony\Component\Console\Output\C
c4b80 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e onsoleOutput;.use.Symfony\Compon
c4ba0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 ent\Console\Output\ConsoleOutput
c4bc0 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
c4be0 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 53 79 \Console\Command\Command;.use.Sy
c4c00 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c mfony\Component\Console\Command\
c4c20 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 6e 65 HelpCommand;.use.Symfony\Compone
c4c40 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 3b 0a nt\Console\Command\ListCommand;.
c4c60 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
c4c80 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 6d 70 lper\HelperSet;.use.Symfony\Comp
c4ca0 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 48 65 onent\Console\Helper\FormatterHe
c4cc0 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 6e 73 lper;.use.Symfony\Component\Cons
c4ce0 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 79 6d ole\Helper\DialogHelper;.use.Sym
c4d00 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 50 72 fony\Component\Console\Helper\Pr
c4d20 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 6f 6e ogressHelper;.use.Symfony\Compon
c4d40 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 3b 0a ent\Console\Helper\TableHelper;.
c4d60 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 45 76 use.Symfony\Component\Console\Ev
c4d80 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 79 6d ent\ConsoleCommandEvent;.use.Sym
c4da0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f 6e fony\Component\Console\Event\Con
c4dc0 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 79 5c soleExceptionEvent;.use.Symfony\
c4de0 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 65 54 Component\Console\Event\ConsoleT
c4e00 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 70 6f erminateEvent;.use.Symfony\Compo
c4e20 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 61 74 nent\EventDispatcher\EventDispat
c4e40 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 0a 63 cherInterface;.................c
c4e60 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 63 6f 6d 6d lass.Application.{.private.$comm
c4e80 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 74 48 65 6c ands.=.array();.private.$wantHel
c4ea0 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 43 6f 6d 6d ps.=.false;.private.$runningComm
c4ec0 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 24 76 65 72 and;.private.$name;.private.$ver
c4ee0 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 6e 73 20 3d sion;.private.$catchExceptions.=
c4f00 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 72 75 65 3b .true;.private.$autoExit.=.true;
c4f20 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
c4f40 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 72 3b 0a 70 elperSet;.private.$dispatcher;.p
c4f60 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 70 72 69 76 rivate.$terminalDimensions;.priv
c4f80 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 70 75 62 6c ate.$defaultCommand;........publ
c4fa0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 ic.function.__construct($name.=.
c4fc0 27 55 4e 4b 4e 4f 57 4e 27 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 29 'UNKNOWN',.$version.=.'UNKNOWN')
c4fe0 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 76 .{.$this->name.=.$name;.$this->v
c5000 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 64 65 66 61 75 6c ersion.=.$version;.$this->defaul
c5020 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 68 65 6c 70 65 72 tCommand.=.'list';.$this->helper
c5040 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 Set.=.$this->getDefaultHelperSet
c5060 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 ();.$this->definition.=.$this->g
c5080 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 66 6f 72 etDefaultInputDefinition();..for
c50a0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 each.($this->getDefaultCommands(
c50c0 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d ).as.$command).{.$this->add($com
c50e0 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 mand);.}.}..public.function.setD
c5100 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 49 6e 74 65 72 66 61 ispatcher(EventDispatcherInterfa
c5120 63 65 20 24 64 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 ce.$dispatcher).{.$this->dispatc
c5140 68 65 72 20 3d 20 24 64 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a her.=.$dispatcher;.}............
c5160 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 public.function.run(InputInterfa
c5180 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 ce.$input.=.null,.OutputInterfac
c51a0 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d e.$output.=.null).{.if.(null.===
c51c0 20 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 67 76 49 6e 70 75 .$input).{.$input.=.new.ArgvInpu
c51e0 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a t();.}..if.(null.===.$output).{.
c5200 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d $output.=.new.ConsoleOutput();.}
c5220 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 ..$this->configureIO($input,.$ou
c5240 74 70 75 74 29 3b 0a 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d tput);..try.{.$exitCode.=.$this-
c5260 3e 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 >doRun($input,.$output);.}.catch
c5280 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 .(\Exception.$e).{.if.(!$this->c
c52a0 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 atchExceptions).{.throw.$e;.}..i
c52c0 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
c52e0 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 63 putInterface).{.$this->renderExc
c5300 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 eption($e,.$output->getErrorOutp
c5320 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 63 ut());.}.else.{.$this->renderExc
c5340 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 65 78 69 74 43 6f 64 eption($e,.$output);.}..$exitCod
c5360 65 20 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 e.=.$e->getCode();.if.(is_numeri
c5380 63 28 24 65 78 69 74 43 6f 64 65 29 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 28 69 6e 74 c($exitCode)).{.$exitCode.=.(int
c53a0 29 20 24 65 78 69 74 43 6f 64 65 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 65 78 69 74 43 6f 64 65 ).$exitCode;.if.(0.===.$exitCode
c53c0 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 ).{.$exitCode.=.1;.}.}.else.{.$e
c53e0 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 xitCode.=.1;.}.}..if.($this->aut
c5400 6f 45 78 69 74 29 20 7b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 20 3e 20 32 35 35 29 20 7b 0a oExit).{.if.($exitCode.>.255).{.
c5420 24 65 78 69 74 43 6f 64 65 20 3d 20 32 35 35 3b 0a 7d 0a 0a 65 78 69 74 28 24 65 78 69 74 43 6f $exitCode.=.255;.}..exit($exitCo
c5440 64 65 29 3b 0a 7d 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 0a de);.}..return.$exitCode;.}.....
c5460 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 .....public.function.doRun(Input
c5480 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
c54a0 65 20 24 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 e.$output).{.if.(true.===.$input
c54c0 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 76 65 ->hasParameterOption(array('--ve
c54e0 72 73 69 6f 6e 27 2c 20 27 2d 56 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 rsion',.'-V'))).{.$output->write
c5500 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 ln($this->getLongVersion());..re
c5520 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d turn.0;.}..$name.=.$this->getCom
c5540 6d 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 mandName($input);.if.(true.===.$
c5560 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 input->hasParameterOption(array(
c5580 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 29 29 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 '--help',.'-h'))).{.if.(!$name).
c55a0 7b 0a 24 6e 61 6d 65 20 3d 20 27 68 65 6c 70 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 {.$name.=.'help';.$input.=.new.A
c55c0 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 27 68 65 rrayInput(array('command'.=>.'he
c55e0 6c 70 27 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 lp'));.}.else.{.$this->wantHelps
c5600 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d .=.true;.}.}..if.(!$name).{.$nam
c5620 65 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 3b 0a 24 69 6e 70 75 e.=.$this->defaultCommand;.$inpu
c5640 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e t.=.new.ArrayInput(array('comman
c5660 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 29 29 3b 0a 7d d'.=>.$this->defaultCommand));.}
c5680 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 28 24 6e 61 6d 65 ....$command.=.$this->find($name
c56a0 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d );..$this->runningCommand.=.$com
c56c0 6d 61 6e 64 3b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 43 6f mand;.$exitCode.=.$this->doRunCo
c56e0 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 mmand($command,.$input,.$output)
c5700 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a ;.$this->runningCommand.=.null;.
c5720 0a 72 65 74 75 72 6e 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 .return.$exitCode;.}.......publi
c5740 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 c.function.setHelperSet(HelperSe
c5760 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 t.$helperSet).{.$this->helperSet
c5780 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .=.$helperSet;.}.......public.fu
c57a0 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 nction.getHelperSet().{.return.$
c57c0 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 this->helperSet;.}.......public.
c57e0 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 function.setDefinition(InputDefi
c5800 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 nition.$definition).{.$this->def
c5820 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 inition.=.$definition;.}.......p
c5840 75 62 6c 69 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 ublic.function.getDefinition().{
c5860 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a .return.$this->definition;.}....
c5880 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 72 ...public.function.getHelp().{.r
c58a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 3b 0a 7d eturn.$this->getLongVersion();.}
c58c0 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 61 74 63 68 45 .......public.function.setCatchE
c58e0 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 74 xceptions($boolean).{.$this->cat
c5900 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 62 6f 6f 6c 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a chExceptions.=.(bool).$boolean;.
c5920 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 }.......public.function.setAutoE
c5940 78 69 74 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 xit($boolean).{.$this->autoExit.
c5960 3d 20 28 62 6f 6f 6c 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 =.(bool).$boolean;.}.......publi
c5980 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 74 c.function.getName().{.return.$t
c59a0 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 69 his->name;.}.......public.functi
c59c0 6f 6e 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 on.setName($name).{.$this->name.
c59e0 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.$name;.}.......public.function
c5a00 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 .getVersion().{.return.$this->ve
c5a20 72 73 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 73 rsion;.}.......public.function.s
c5a40 65 74 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 etVersion($version).{.$this->ver
c5a60 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 sion.=.$version;.}.......public.
c5a80 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 function.getLongVersion().{.if.(
c5aa0 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 'UNKNOWN'.!==.$this->getName().&
c5ac0 26 20 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f &.'UNKNOWN'.!==.$this->getVersio
c5ae0 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c n()).{.return.sprintf('<info>%s<
c5b00 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d /info>.version.<comment>%s</comm
c5b20 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e ent>',.$this->getName(),.$this->
c5b40 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 6e 66 6f 3e getVersion());.}..return.'<info>
c5b60 43 6f 6e 73 6f 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a Console.Tool</info>';.}.........
c5b80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 6e 61 6d 65 29 0a public.function.register($name).
c5ba0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 28 {.return.$this->add(new.Command(
c5bc0 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $name));.}.......public.function
c5be0 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).{.
c5c00 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).
c5c20 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);.}.}.....
c5c40 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 61 6e ......public.function.add(Comman
c5c60 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 6c 69 d.$command).{.$command->setAppli
c5c80 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 3e 69 cation($this);..if.(!$command->i
c5ca0 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 6c 69 sEnabled()).{.$command->setAppli
c5cc0 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 6e 75 cation(null);..return;.}..if.(nu
c5ce0 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 28 29 ll.===.$command->getDefinition()
c5d00 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 ).{.throw.new.\LogicException(sp
c5d20 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 6f 74 rintf('Command.class."%s".is.not
c5d40 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 6f 62 .correctly.initialized..You.prob
c5d60 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 20 63 ably.forgot.to.call.the.parent.c
c5d80 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 6e 64 onstructor.',.get_class($command
c5da0 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 6e 64 )));.}..$this->commands[$command
c5dc0 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 61 63 ->getName()].=.$command;..foreac
c5de0 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 61 6c h.($command->getAliases().as.$al
c5e00 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 20 3d ias).{.$this->commands[$alias].=
c5e20 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 0a 7d .$command;.}..return.$command;.}
c5e40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 ...........public.function.get($
c5e60 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e name).{.if.(!isset($this->comman
c5e80 64 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ds[$name])).{.throw.new.\Invalid
c5ea0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 ArgumentException(sprintf('The.c
c5ec0 6f 6d 6d 61 6e 64 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e ommand."%s".does.not.exist.',.$n
c5ee0 61 6d 65 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d ame));.}..$command.=.$this->comm
c5f00 61 6e 64 73 5b 24 6e 61 6d 65 5d 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c ands[$name];..if.($this->wantHel
c5f20 70 73 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a ps).{.$this->wantHelps.=.false;.
c5f40 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 27 68 65 6c 70 .$helpCommand.=.$this->get('help
c5f60 27 29 3b 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f ');.$helpCommand->setCommand($co
c5f80 6d 6d 61 6e 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 7d 0a mmand);..return.$helpCommand;.}.
c5fa0 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 70 75 62 6c .return.$command;.}.........publ
c5fc0 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 ic.function.has($name).{.return.
c5fe0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d isset($this->commands[$name]);.}
c6000 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 .........public.function.getName
c6020 73 70 61 63 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 spaces().{.$namespaces.=.array()
c6040 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 ;.foreach.($this->commands.as.$c
c6060 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 72 61 79 5f 6d 65 ommand).{.$namespaces.=.array_me
c6080 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 74 72 61 63 74 41 rge($namespaces,.$this->extractA
c60a0 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 4e 61 6d 65 28 29 llNamespaces($command->getName()
c60c0 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 ));..foreach.($command->getAlias
c60e0 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 es().as.$alias).{.$namespaces.=.
c6100 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 74 68 69 73 2d 3e array_merge($namespaces,.$this->
c6120 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 73 29 29 3b 0a 7d extractAllNamespaces($alias));.}
c6140 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 72 61 79 5f 75 6e .}..return.array_values(array_un
c6160 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 63 65 73 29 29 29 ique(array_filter($namespaces)))
c6180 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 66 69 ;.}...........public.function.fi
c61a0 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 24 61 6c 6c 4e 61 ndNamespace($namespace).{.$allNa
c61c0 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 70 61 63 65 73 28 mespaces.=.$this->getNamespaces(
c61e0 29 3b 0a 24 65 78 70 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b );.$expr.=.preg_replace_callback
c6200 28 27 7b 28 5b 5e 3a 5d 2b 7c 29 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 ('{([^:]+|)}',.function.($matche
c6220 73 29 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 63 68 65 73 5b s).{.return.preg_quote($matches[
c6240 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 29 3b 0a 24 6e 61 1]).'[^:]*';.},.$namespace);.$na
c6260 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 24 65 78 70 72 2e mespaces.=.preg_grep('{^'.$expr.
c6280 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 28 65 6d 70 74 79 '}',.$allNamespaces);..if.(empty
c62a0 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 3d 20 73 70 72 69 ($namespaces)).{.$message.=.spri
c62c0 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 20 64 65 66 69 6e ntf('There.are.no.commands.defin
c62e0 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 2c 20 24 6e 61 6d ed.in.the."%s".namespace.',.$nam
c6300 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 73 20 3d 20 24 74 espace);..if.($alternatives.=.$t
c6320 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 65 73 70 61 63 65 his->findAlternatives($namespace
c6340 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f ,.$allNamespaces)).{.if.(1.==.co
c6360 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e unt($alternatives)).{.$message..
c6380 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 =."\n\nDid.you.mean.this?\n...."
c63a0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 ;.}.else.{.$message..=."\n\nDid.
c63c0 79 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d you.mean.one.of.these?\n....";.}
c63e0 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 ..$message..=.implode("\n....",.
c6400 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e $alternatives);.}..throw.new.\In
c6420 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 validArgumentException($message)
c6440 3b 0a 7d 0a 0a 24 65 78 61 63 74 20 3d 20 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 73 70 61 63 ;.}..$exact.=.in_array($namespac
c6460 65 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 e,.$namespaces,.true);.if.(count
c6480 28 24 6e 61 6d 65 73 70 61 63 65 73 29 20 3e 20 31 20 26 26 20 21 24 65 78 61 63 74 29 20 7b 0a ($namespaces).>.1.&&.!$exact).{.
c64a0 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
c64c0 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 22 25 73 22 20 ion(sprintf('The.namespace."%s".
c64e0 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 2c is.ambiguous.(%s).',.$namespace,
c6500 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f .$this->getAbbreviationSuggestio
c6520 6e 73 28 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 6e 61 6d 65 73 70 61 63 65 73 29 29 29 29 3b ns(array_values($namespaces))));
c6540 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 61 63 74 20 3f 20 24 6e 61 6d 65 73 70 61 63 65 20 3a .}..return.$exact.?.$namespace.:
c6560 20 72 65 73 65 74 28 24 6e 61 6d 65 73 70 61 63 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .reset($namespaces);.}..........
c6580 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a ....public.function.find($name).
c65a0 7b 0a 24 61 6c 6c 43 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 {.$allCommands.=.array_keys($thi
c65c0 73 2d 3e 63 6f 6d 6d 61 6e 64 73 29 3b 0a 24 65 78 70 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 s->commands);.$expr.=.preg_repla
c65e0 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 5b 5e 3a 5d 2b 7c 29 7d 27 2c 20 66 75 6e 63 74 69 ce_callback('{([^:]+|)}',.functi
c6600 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 71 75 6f 74 on.($matches).{.return.preg_quot
c6620 65 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 27 5b 5e 3a 5d 2a 27 3b 20 7d 2c 20 24 6e 61 6d 65 e($matches[1]).'[^:]*';.},.$name
c6640 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 70 72 65 67 5f 67 72 65 70 28 27 7b 5e 27 2e 24 65 );.$commands.=.preg_grep('{^'.$e
c6660 78 70 72 2e 27 7d 27 2c 20 24 61 6c 6c 43 6f 6d 6d 61 6e 64 73 29 3b 0a 0a 69 66 20 28 65 6d 70 xpr.'}',.$allCommands);..if.(emp
c6680 74 79 28 24 63 6f 6d 6d 61 6e 64 73 29 20 7c 7c 20 63 6f 75 6e 74 28 70 72 65 67 5f 67 72 65 70 ty($commands).||.count(preg_grep
c66a0 28 27 7b 5e 27 2e 24 65 78 70 72 2e 27 24 7d 27 2c 20 24 63 6f 6d 6d 61 6e 64 73 29 29 20 3c 20 ('{^'.$expr.'$}',.$commands)).<.
c66c0 31 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 1).{.if.(false.!==.$pos.=.strrpo
c66e0 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 s($name,.':')).{...$this->findNa
c6700 6d 65 73 70 61 63 65 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b mespace(substr($name,.0,.$pos));
c6720 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 .}..$message.=.sprintf('Command.
c6740 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a "%s".is.not.defined.',.$name);..
c6760 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 if.($alternatives.=.$this->findA
c6780 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 61 6c 6c 43 6f 6d 6d 61 6e 64 73 29 lternatives($name,.$allCommands)
c67a0 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
c67c0 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
c67e0 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
c6800 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
c6820 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c hese?\n....";.}.$message..=.impl
c6840 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a ode("\n....",.$alternatives);.}.
c6860 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
c6880 74 69 6f 6e 28 24 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 tion($message);.}....if.(count($
c68a0 63 6f 6d 6d 61 6e 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 commands).>.1).{.$commandList.=.
c68c0 24 74 68 69 73 2d 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 $this->commands;.$commands.=.arr
c68e0 61 79 5f 66 69 6c 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 ay_filter($commands,.function.($
c6900 6e 61 6d 65 4f 72 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 nameOrAlias).use.($commandList,.
c6920 24 63 6f 6d 6d 61 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 $commands).{.$commandName.=.$com
c6940 6d 61 6e 64 4c 69 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 mandList[$nameOrAlias]->getName(
c6960 29 3b 0a 0a 72 65 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 );..return.$commandName.===.$nam
c6980 65 4f 72 41 6c 69 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 eOrAlias.||.!in_array($commandNa
c69a0 6d 65 2c 20 24 63 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 me,.$commands);.});.}..$exact.=.
c69c0 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 74 72 75 65 29 in_array($name,.$commands,.true)
c69e0 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 29 20 3e 20 31 20 26 26 20 21 24 ;.if.(count($commands).>.1.&&.!$
c6a00 65 78 61 63 74 29 20 7b 0a 24 73 75 67 67 65 73 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 exact).{.$suggestions.=.$this->g
c6a20 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 61 72 72 61 79 5f etAbbreviationSuggestions(array_
c6a40 76 61 6c 75 65 73 28 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c values($commands));..throw.new.\
c6a60 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
c6a80 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 ('Command."%s".is.ambiguous.(%s)
c6aa0 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 72 65 .',.$name,.$suggestions));.}..re
c6ac0 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 65 78 61 63 74 20 3f 20 24 6e 61 6d 65 20 3a turn.$this->get($exact.?.$name.:
c6ae0 20 72 65 73 65 74 28 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .reset($commands));.}...........
c6b00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d public.function.all($namespace.=
c6b20 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 .null).{.if.(null.===.$namespace
c6b40 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 24 ).{.return.$this->commands;.}..$
c6b60 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 commands.=.array();.foreach.($th
c6b80 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e is->commands.as.$name.=>.$comman
c6ba0 64 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 d).{.if.($namespace.===.$this->e
c6bc0 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 73 75 62 73 74 72 5f 63 6f xtractNamespace($name,.substr_co
c6be0 75 6e 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 3a 27 29 20 2b 20 31 29 29 20 7b 0a 24 63 6f unt($namespace,.':').+.1)).{.$co
c6c00 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 0a 72 mmands[$name].=.$command;.}.}..r
c6c20 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 eturn.$commands;.}.........publi
c6c40 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f c.static.function.getAbbreviatio
c6c60 6e 73 28 24 6e 61 6d 65 73 29 0a 7b 0a 24 61 62 62 72 65 76 73 20 3d 20 61 72 72 61 79 28 29 3b ns($names).{.$abbrevs.=.array();
c6c80 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 .foreach.($names.as.$name).{.for
c6ca0 20 28 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 20 24 6c 65 6e 20 3e 20 30 .($len.=.strlen($name);.$len.>.0
c6cc0 3b 20 2d 2d 24 6c 65 6e 29 20 7b 0a 24 61 62 62 72 65 76 20 3d 20 73 75 62 73 74 72 28 24 6e 61 ;.--$len).{.$abbrev.=.substr($na
c6ce0 6d 65 2c 20 30 2c 20 24 6c 65 6e 29 3b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b me,.0,.$len);.$abbrevs[$abbrev][
c6d00 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 3b ].=.$name;.}.}..return.$abbrevs;
c6d20 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 .}............public.function.as
c6d40 54 65 78 74 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 Text($namespace.=.null,.$raw.=.f
c6d60 61 6c 73 65 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 27 2e 5f 5f alse).{.@trigger_error('The.'.__
c6d80 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 METHOD__.'.method.is.deprecated.
c6da0 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 since.version.2.3.and.will.be.re
c6dc0 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 moved.in.3.0.',.E_USER_DEPRECATE
c6de0 44 29 3b 0a 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 D);..$descriptor.=.new.TextDescr
c6e00 69 70 74 6f 72 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f iptor();.$output.=.new.BufferedO
c6e20 75 74 70 75 74 28 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f utput(BufferedOutput::VERBOSITY_
c6e40 4e 4f 52 4d 41 4c 2c 20 21 24 72 61 77 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 NORMAL,.!$raw);.$descriptor->des
c6e60 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d cribe($output,.$this,.array('nam
c6e80 65 73 70 61 63 65 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 72 61 77 5f 6f 75 74 70 espace'.=>.$namespace,.'raw_outp
c6ea0 75 74 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e ut'.=>.true));..return.$output->
c6ec0 66 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e fetch();.}............public.fun
c6ee0 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 ction.asXml($namespace.=.null,.$
c6f00 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 asDom.=.false).{.@trigger_error(
c6f20 27 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 65 'The.'.__METHOD__.'.method.is.de
c6f40 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 20 61 6e 64 20 77 precated.since.version.2.3.and.w
c6f60 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f 55 53 45 52 5f ill.be.removed.in.3.0.',.E_USER_
c6f80 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 DEPRECATED);..$descriptor.=.new.
c6fa0 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 7b 0a XmlDescriptor();..if.($asDom).{.
c6fc0 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 74 69 return.$descriptor->getApplicati
c6fe0 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 0a 7d onDocument($this,.$namespace);.}
c7000 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 28 29 ..$output.=.new.BufferedOutput()
c7020 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 74 2c ;.$descriptor->describe($output,
c7040 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 6e 61 .$this,.array('namespace'.=>.$na
c7060 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 74 63 mespace));..return.$output->fetc
c7080 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 72 65 h();.}........public.function.re
c70a0 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 6f 20 nderException($e,.$output).{.do.
c70c0 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c 20 67 {.$title.=.sprintf('..[%s]..',.g
c70e0 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 73 74 et_class($e));..$len.=.$this->st
c7100 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 74 68 ringWidth($title);..$width.=.$th
c7120 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 2d 3e is->getTerminalWidth().?.$this->
c7140 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 4e 54 getTerminalWidth().-.1.:.PHP_INT
c7160 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 49 4f _MAX;...if.(defined('HHVM_VERSIO
c7180 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 64 74 N').&&.$width.>.1.<<.31).{.$widt
c71a0 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 75 74 h.=.1.<<.31;.}.$formatter.=.$out
c71c0 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 61 72 put->getFormatter();.$lines.=.ar
c71e0 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 72 3f ray();.foreach.(preg_split('/\r?
c7200 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 6e 65 \n/',.$e->getMessage()).as.$line
c7220 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 67 42 ).{.foreach.($this->splitStringB
c7240 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 6c 69 yWidth($line,.$width.-.4).as.$li
c7260 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 74 72 ne).{...$lineLength.=.$this->str
c7280 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 5d 2a ingWidth(preg_replace('/.\[[^m]*
c72a0 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 69 6e m/',.'',.$formatter->format($lin
c72c0 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 6e 65 e))).+.4;.$lines[].=.array($line
c72e0 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 69 6e ,.$lineLength);..$len.=.max($lin
c7300 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 20 3d eLength,.$len);.}.}..$messages.=
c7320 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 24 65 .array('',.'');.$messages[].=.$e
c7340 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 73 70 mptyLine.=.$formatter->format(sp
c7360 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 5f 72 rintf('<error>%s</error>',.str_r
c7380 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 5d 20 epeat('.',.$len)));.$messages[].
c73a0 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 3c 65 =.$formatter->format(sprintf('<e
c73c0 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 72 5f rror>%s%s</error>',.$title,.str_
c73e0 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 73 2d repeat('.',.max(0,.$len.-.$this-
c7400 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 61 63 >stringWidth($title)))));.foreac
c7420 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b h.($lines.as.$line).{.$messages[
c7440 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('
c7460 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 65 5b <error>..%s..%s</error>',.$line[
c7480 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 6e 65 0],.str_repeat('.',.$len.-.$line
c74a0 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 4c 69 [1])));.}.$messages[].=.$emptyLi
c74c0 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 73 5b ne;.$messages[].=.'';.$messages[
c74e0 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 73 61 ].=.'';..$output->writeln($messa
c7500 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 41 57 ges,.OutputInterface::OUTPUT_RAW
c7520 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 53 49 );..if.(OutputInterface::VERBOSI
c7540 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 6f 73 TY_VERBOSE.<=.$output->getVerbos
c7560 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 6d 6d ity()).{.$output->writeln('<comm
c7580 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 27 29 ent>Exception.trace:</comment>')
c75a0 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 61 72 ;....$trace.=.$e->getTrace();.ar
c75c0 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 6e 63 ray_unshift($trace,.array(.'func
c75e0 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 46 69 tion'.=>.'',.'file'.=>.$e->getFi
c7600 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 3a 20 le().!==.null.?.$e->getFile().:.
c7620 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 20 21 'n/a',.'line'.=>.$e->getLine().!
c7640 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 27 2c ==.null.?.$e->getLine().:.'n/a',
c7660 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 24 69 .'args'.=>.array(),.));..for.($i
c7680 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 24 69 .=.0,.$count.=.count($trace);.$i
c76a0 20 3c 20 24 63 6f 75 6e 74 3b 20 2b 2b 24 69 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 69 73 73 65 .<.$count;.++$i).{.$class.=.isse
c76c0 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 65 5b t($trace[$i]['class']).?.$trace[
c76e0 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 65 74 $i]['class'].:.'';.$type.=.isset
c7700 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 24 69 ($trace[$i]['type']).?.$trace[$i
c7720 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 72 61 ]['type'].:.'';.$function.=.$tra
c7740 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 73 65 ce[$i]['function'];.$file.=.isse
c7760 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 5b 24 t($trace[$i]['file']).?.$trace[$
c7780 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 73 65 i]['file'].:.'n/a';.$line.=.isse
c77a0 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 5b 24 t($trace[$i]['line']).?.$trace[$
c77c0 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 77 72 i]['line'].:.'n/a';..$output->wr
c77e0 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 6e 66 iteln(sprintf('.%s%s%s().at.<inf
c7800 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 2c 20 o>%s:%s</info>',.$class,.$type,.
c7820 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 24 6f $function,.$file,.$line));.}..$o
c7840 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 utput->writeln('');.$output->wri
c7860 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 3d 20 24 65 2d 3e 67 65 teln('');.}.}.while.($e.=.$e->ge
c7880 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 68 69 tPrevious());..if.(null.!==.$thi
c78a0 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 77 72 s->runningCommand).{.$output->wr
c78c0 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 27 2c iteln(sprintf('<info>%s</info>',
c78e0 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 2d 3e .sprintf($this->runningCommand->
c7900 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 29 29 getSynopsis(),.$this->getName())
c7920 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 24 6f 75 74 70 75 ));.$output->writeln('');.$outpu
c7940 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 t->writeln('');.}.}.......protec
c7960 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 29 0a ted.function.getTerminalWidth().
c7980 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 69 6e {.$dimensions.=.$this->getTermin
c79a0 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 73 69 alDimensions();..return.$dimensi
c79c0 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 74 69 ons[0];.}.......protected.functi
c79e0 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 6e 73 on.getTerminalHeight().{.$dimens
c7a00 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 73 69 ions.=.$this->getTerminalDimensi
c7a20 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 0a 7d ons();..return.$dimensions[1];.}
c7a40 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 69 6e .......public.function.getTermin
c7a60 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 72 6d alDimensions().{.if.($this->term
c7a80 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 2d 3e inalDimensions).{.return.$this->
c7aa0 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 27 20 terminalDimensions;.}..if.('\\'.
c7ac0 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 66 20 ===.DIRECTORY_SEPARATOR).{...if.
c7ae0 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 78 28 (preg_match('/^(\d+)x\d+.\(\d+x(
c7b00 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 4e 27 \d+)\)$/',.trim(getenv('ANSICON'
c7b20 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 28 69 )),.$matches)).{.return.array((i
c7b40 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 73 5b nt).$matches[1],.(int).$matches[
c7b60 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 2b 29 2]);.}...if.(preg_match('/^(\d+)
c7b80 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 64 65 x(\d+)$/',.$this->getConsoleMode
c7ba0 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 28 69 (),.$matches)).{.return.array((i
c7bc0 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 73 5b nt).$matches[1],.(int).$matches[
c7be0 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 68 69 2]);.}.}..if.($sttyString.=.$thi
c7c00 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 72 65 s->getSttyColumns()).{...if.(pre
c7c20 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 28 5c g_match('/rows.(\d+);.columns.(\
c7c40 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 29 29 d+);/i',.$sttyString,.$matches))
c7c60 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 5b 32 .{.return.array((int).$matches[2
c7c80 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 28 70 ],.(int).$matches[1]);.}...if.(p
c7ca0 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 29 2e reg_match('/;.(\d+).rows;.(\d+).
c7cc0 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 68 65 columns/i',.$sttyString,.$matche
c7ce0 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 68 65 s)).{.return.array((int).$matche
c7d00 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 0a 72 s[2],.(int).$matches[1]);.}.}..r
c7d20 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 0a 0a eturn.array(null,.null);.}......
c7d40 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 6e 61 ......public.function.setTermina
c7d60 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 0a 24 lDimensions($width,.$height).{.$
c7d80 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 61 79 this->terminalDimensions.=.array
c7da0 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 69 73 ($width,.$height);..return.$this
c7dc0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f ;.}........protected.function.co
c7de0 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 74 2c nfigureIO(InputInterface.$input,
c7e00 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 .OutputInterface.$output).{.if.(
c7e20 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 true.===.$input->hasParameterOpt
c7e40 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 74 2d ion(array('--ansi'))).{.$output-
c7e60 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 28 74 >setDecorated(true);.}.elseif.(t
c7e80 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 rue.===.$input->hasParameterOpti
c7ea0 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 70 75 on(array('--no-ansi'))).{.$outpu
c7ec0 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 28 74 t->setDecorated(false);.}..if.(t
c7ee0 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 rue.===.$input->hasParameterOpti
c7f00 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 2d 6e on(array('--no-interaction',.'-n
c7f20 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 66 61 '))).{.$input->setInteractive(fa
c7f40 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 73 28 lse);.}.elseif.(function_exists(
c7f60 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 65 6c 'posix_isatty').&&.$this->getHel
c7f80 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 69 6e perSet()->has('question')).{.$in
c7fa0 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 74 28 putStream.=.$this->getHelperSet(
c7fc0 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 72 65 )->get('question')->getInputStre
c7fe0 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 74 53 am();.if.(!@posix_isatty($inputS
c8000 74 72 65 61 6d 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 53 48 45 4c tream).&&.false.===.getenv('SHEL
c8020 4c 5f 49 4e 54 45 52 41 43 54 49 56 45 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e L_INTERACTIVE')).{.$input->setIn
c8040 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 teractive(false);.}.}..if.(true.
c8060 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 ===.$input->hasParameterOption(a
c8080 72 72 61 79 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 rray('--quiet',.'-q'))).{.$outpu
c80a0 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 63 65 3a t->setVerbosity(OutputInterface:
c80c0 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 :VERBOSITY_QUIET);.}.else.{.if.(
c80e0 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 76 $input->hasParameterOption('-vvv
c8100 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e ').||.$input->hasParameterOption
c8120 28 27 2d 2d 76 65 72 62 6f 73 65 3d 33 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 ('--verbose=3').||.$input->getPa
c8140 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 3d 3d 3d 20 33 rameterOption('--verbose').===.3
c8160 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 ).{.$output->setVerbosity(Output
c8180 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 29 3b 0a 7d 20 65 Interface::VERBOSITY_DEBUG);.}.e
c81a0 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 72 4f 70 74 69 6f lseif.($input->hasParameterOptio
c81c0 6e 28 27 2d 76 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 n('-vv').||.$input->hasParameter
c81e0 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 32 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d Option('--verbose=2').||.$input-
c8200 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 >getParameterOption('--verbose')
c8220 20 3d 3d 3d 20 32 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 .===.2).{.$output->setVerbosity(
c8240 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f OutputInterface::VERBOSITY_VERY_
c8260 56 45 52 42 4f 53 45 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 VERBOSE);.}.elseif.($input->hasP
c8280 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e arameterOption('-v').||.$input->
c82a0 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 6f 73 65 3d 31 27 hasParameterOption('--verbose=1'
c82c0 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(
c82e0 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d '--verbose').||.$input->getParam
c8300 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 eterOption('--verbose')).{.$outp
c8320 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 63 65 ut->setVerbosity(OutputInterface
c8340 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a ::VERBOSITY_VERBOSE);.}.}.}.....
c8360 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 64 6f ...........protected.function.do
c8380 52 75 6e 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 49 6e 70 RunCommand(Command.$command,.Inp
c83a0 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
c83c0 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 ace.$output).{.foreach.($command
c83e0 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 20 61 73 20 24 68 65 6c 70 65 72 29 20 7b 0a 69 ->getHelperSet().as.$helper).{.i
c8400 66 20 28 24 68 65 6c 70 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 41 77 61 72 65 f.($helper.instanceof.InputAware
c8420 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 49 6e 70 75 74 28 24 Interface).{.$helper->setInput($
c8440 69 6e 70 75 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d input);.}.}..if.(null.===.$this-
c8460 3e 64 69 73 70 61 74 63 68 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 2d 3e >dispatcher).{.return.$command->
c8480 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 run($input,.$output);.}..$event.
c84a0 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 63 6f 6d 6d 61 =.new.ConsoleCommandEvent($comma
c84c0 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 nd,.$input,.$output);.$this->dis
c84e0 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a patcher->dispatch(ConsoleEvents:
c8500 3a 43 4f 4d 4d 41 4e 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 :COMMAND,.$event);..if.($event->
c8520 63 6f 6d 6d 61 6e 64 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 commandShouldRun()).{.try.{.$exi
c8540 74 43 6f 64 65 20 3d 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 tCode.=.$command->run($input,.$o
c8560 75 74 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 utput);.}.catch.(\Exception.$e).
c8580 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 {.$event.=.new.ConsoleExceptionE
c85a0 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 vent($command,.$input,.$output,.
c85c0 24 65 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 $e,.$e->getCode());.$this->dispa
c85e0 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 45 tcher->dispatch(ConsoleEvents::E
c8600 58 43 45 50 54 49 4f 4e 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 24 65 20 3d 20 24 65 76 65 6e 74 2d XCEPTION,.$event);..$e.=.$event-
c8620 3e 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 >getException();..$event.=.new.C
c8640 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 onsoleTerminateEvent($command,.$
c8660 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 3b 0a input,.$output,.$e->getCode());.
c8680 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 6f 6e 73 $this->dispatcher->dispatch(Cons
c86a0 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a oleEvents::TERMINATE,.$event);..
c86c0 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d throw.$e;.}.}.else.{.$exitCode.=
c86e0 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3a 3a 52 45 54 55 52 4e 5f 43 4f 44 .ConsoleCommandEvent::RETURN_COD
c8700 45 5f 44 49 53 41 42 4c 45 44 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 E_DISABLED;.}..$event.=.new.Cons
c8720 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 oleTerminateEvent($command,.$inp
c8740 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e ut,.$output,.$exitCode);.$this->
c8760 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e dispatcher->dispatch(ConsoleEven
c8780 74 73 3a 3a 54 45 52 4d 49 4e 41 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 ts::TERMINATE,.$event);..return.
c87a0 24 65 76 65 6e 74 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 $event->getExitCode();.}........
c87c0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 .protected.function.getCommandNa
c87e0 6d 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 me(InputInterface.$input).{.retu
c8800 72 6e 20 24 69 6e 70 75 74 2d 3e 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 7d rn.$input->getFirstArgument();.}
c8820 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 .......protected.function.getDef
c8840 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e aultInputDefinition().{.return.n
c8860 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e ew.InputDefinition(array(.new.In
c8880 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 49 6e 70 75 74 41 72 67 75 putArgument('command',.InputArgu
c88a0 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 ment::REQUIRED,.'The.command.to.
c88c0 65 78 65 63 75 74 65 27 29 2c 0a 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 68 execute'),..new.InputOption('--h
c88e0 65 6c 70 27 2c 20 27 2d 68 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e elp',.'-h',.InputOption::VALUE_N
c8900 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 68 65 6c 70 20 6d 65 73 73 61 67 65 27 ONE,.'Display.this.help.message'
c8920 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d ),.new.InputOption('--quiet',.'-
c8940 71 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 6f q',.InputOption::VALUE_NONE,.'Do
c8960 20 6e 6f 74 20 6f 75 74 70 75 74 20 61 6e 79 20 6d 65 73 73 61 67 65 27 29 2c 0a 6e 65 77 20 49 .not.output.any.message'),.new.I
c8980 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 7c 76 76 7c 76 nputOption('--verbose',.'-v|vv|v
c89a0 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 vv',.InputOption::VALUE_NONE,.'I
c89c0 6e 63 72 65 61 73 65 20 74 68 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 ncrease.the.verbosity.of.message
c89e0 73 3a 20 31 20 66 6f 72 20 6e 6f 72 6d 61 6c 20 6f 75 74 70 75 74 2c 20 32 20 66 6f 72 20 6d 6f s:.1.for.normal.output,.2.for.mo
c8a00 72 65 20 76 65 72 62 6f 73 65 20 6f 75 74 70 75 74 20 61 6e 64 20 33 20 66 6f 72 20 64 65 62 75 re.verbose.output.and.3.for.debu
c8a20 67 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 g'),.new.InputOption('--version'
c8a40 2c 20 27 2d 56 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ,.'-V',.InputOption::VALUE_NONE,
c8a60 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 .'Display.this.application.versi
c8a80 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c 20 on'),.new.InputOption('--ansi',.
c8aa0 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f '',.InputOption::VALUE_NONE,.'Fo
c8ac0 72 63 65 20 41 4e 53 49 20 6f 75 74 70 75 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 rce.ANSI.output'),.new.InputOpti
c8ae0 6f 6e 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a on('--no-ansi',.'',.InputOption:
c8b00 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 70 75 :VALUE_NONE,.'Disable.ANSI.outpu
c8b20 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 69 6e 74 65 72 t'),.new.InputOption('--no-inter
c8b40 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 action',.'-n',.InputOption::VALU
c8b60 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 E_NONE,.'Do.not.ask.any.interact
c8b80 69 76 65 20 71 75 65 73 74 69 6f 6e 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ive.question'),.));.}.......prot
c8ba0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 ected.function.getDefaultCommand
c8bc0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 s().{.return.array(new.HelpComma
c8be0 6e 64 28 29 2c 20 6e 65 77 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a nd(),.new.ListCommand());.}.....
c8c00 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 ..protected.function.getDefaultH
c8c20 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 elperSet().{.return.new.HelperSe
c8c40 74 28 61 72 72 61 79 28 0a 6e 65 77 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a t(array(.new.FormatterHelper(),.
c8c60 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 66 61 6c 73 65 29 2c 0a 6e 65 77 20 50 72 6f new.DialogHelper(false),.new.Pro
c8c80 67 72 65 73 73 48 65 6c 70 65 72 28 66 61 6c 73 65 29 2c 0a 6e 65 77 20 54 61 62 6c 65 48 65 6c gressHelper(false),.new.TableHel
c8ca0 70 65 72 28 66 61 6c 73 65 29 2c 0a 6e 65 77 20 44 65 62 75 67 46 6f 72 6d 61 74 74 65 72 48 65 per(false),.new.DebugFormatterHe
c8cc0 6c 70 65 72 28 29 2c 0a 6e 65 77 20 50 72 6f 63 65 73 73 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 lper(),.new.ProcessHelper(),.new
c8ce0 20 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .QuestionHelper(),.));.}.......p
c8d00 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 rivate.function.getSttyColumns()
c8d20 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 .{.if.(!function_exists('proc_op
c8d40 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 en')).{.return;.}..$descriptorsp
c8d60 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 ec.=.array(1.=>.array('pipe',.'w
c8d80 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 '),.2.=>.array('pipe',.'w'));.$p
c8da0 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 73 74 74 79 20 2d 61 20 7c 20 67 72 rocess.=.proc_open('stty.-a.|.gr
c8dc0 65 70 20 63 6f 6c 75 6d 6e 73 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 2c 20 24 70 ep.columns',.$descriptorspec,.$p
c8de0 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 73 75 70 70 72 65 73 ipes,.null,.null,.array('suppres
c8e00 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f s_errors'.=>.true));.if.(is_reso
c8e20 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d 20 73 74 72 65 61 6d urce($process)).{.$info.=.stream
c8e40 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 _get_contents($pipes[1]);.fclose
c8e60 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 32 5d 29 3b 0a ($pipes[1]);.fclose($pipes[2]);.
c8e80 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 proc_close($process);..return.$i
c8ea0 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 nfo;.}.}.......private.function.
c8ec0 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e getConsoleMode().{.if.(!function
c8ee0 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 3b 0a _exists('proc_open')).{.return;.
c8f00 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 }..$descriptorspec.=.array(1.=>.
c8f20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 array('pipe',.'w'),.2.=>.array('
c8f40 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 pipe',.'w'));.$process.=.proc_op
c8f60 65 6e 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 2c 20 en('mode.CON',.$descriptorspec,.
c8f80 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 73 75 70 70 72 $pipes,.null,.null,.array('suppr
c8fa0 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 69 73 5f 72 65 ess_errors'.=>.true));.if.(is_re
c8fc0 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d 20 73 74 72 65 source($process)).{.$info.=.stre
c8fe0 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f am_get_contents($pipes[1]);.fclo
c9000 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 32 5d 29 se($pipes[1]);.fclose($pipes[2])
c9020 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 69 66 20 28 70 72 65 ;.proc_close($process);..if.(pre
c9040 67 5f 6d 61 74 63 68 28 27 2f 2d 2d 2d 2d 2d 2d 2d 2d 2b 5c 72 3f 5c 6e 2e 2b 3f 28 5c 64 2b 29 g_match('/--------+\r?\n.+?(\d+)
c9060 5c 72 3f 5c 6e 2e 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2f 27 2c 20 24 69 6e 66 6f 2c 20 24 6d 61 \r?\n.+?(\d+)\r?\n/',.$info,.$ma
c9080 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 78 27 tches)).{.return.$matches[2].'x'
c90a0 2e 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 .$matches[1];.}.}.}.........priv
c90c0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 ate.function.getAbbreviationSugg
c90e0 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e estions($abbrevs).{.return.sprin
c9100 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 76 73 5b 30 5d 2c 20 24 61 62 62 tf('%s,.%s%s',.$abbrevs[0],.$abb
c9120 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 3e 20 32 20 3f 20 73 revs[1],.count($abbrevs).>.2.?.s
c9140 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 2c 20 63 6f 75 6e 74 28 24 61 62 printf('.and.%d.more',.count($ab
c9160 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a brevs).-.2).:.'');.}............
c9180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 public.function.extractNamespace
c91a0 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 74 73 20 ($name,.$limit.=.null).{.$parts.
c91c0 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b 0a 61 72 72 61 79 5f 70 6f 70 =.explode(':',.$name);.array_pop
c91e0 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 3a 27 2c 20 6e ($parts);..return.implode(':',.n
c9200 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 73 20 3a 20 61 72 72 61 79 5f ull.===.$limit.?.$parts.:.array_
c9220 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 74 29 29 3b 0a 7d 0a 0a 0a 0a slice($parts,.0,.$limit));.}....
c9240 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 41 6c 74 65 .......private.function.findAlte
c9260 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a 7b 0a 24 rnatives($name,.$collection).{.$
c9280 74 68 72 65 73 68 6f 6c 64 20 3d 20 31 65 33 3b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d threshold.=.1e3;.$alternatives.=
c92a0 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 6f 6c 6c 65 63 74 69 6f 6e 50 61 72 74 73 20 3d 20 61 72 .array();..$collectionParts.=.ar
c92c0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 ray();.foreach.($collection.as.$
c92e0 69 74 65 6d 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 69 6f 6e 50 61 72 74 73 5b 24 69 74 65 6d 5d 20 item).{.$collectionParts[$item].
c9300 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 69 74 65 6d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 =.explode(':',.$item);.}..foreac
c9320 68 20 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 20 61 73 20 24 69 20 3d 3e 20 h.(explode(':',.$name).as.$i.=>.
c9340 24 73 75 62 6e 61 6d 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 6f 6e $subname).{.foreach.($collection
c9360 50 61 72 74 73 20 61 73 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 20 3d 3e 20 24 70 61 72 Parts.as.$collectionName.=>.$par
c9380 74 73 29 20 7b 0a 24 65 78 69 73 74 73 20 3d 20 69 73 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 ts).{.$exists.=.isset($alternati
c93a0 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 29 3b 0a 69 66 20 28 21 69 73 73 65 ves[$collectionName]);.if.(!isse
c93c0 74 28 24 70 61 72 74 73 5b 24 69 5d 29 20 26 26 20 24 65 78 69 73 74 73 29 20 7b 0a 24 61 6c 74 t($parts[$i]).&&.$exists).{.$alt
c93e0 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 3d 20 24 74 ernatives[$collectionName].+=.$t
c9400 68 72 65 73 68 6f 6c 64 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 hreshold;.continue;.}.elseif.(!i
c9420 73 73 65 74 28 24 70 61 72 74 73 5b 24 69 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a sset($parts[$i])).{.continue;.}.
c9440 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 73 75 62 6e 61 6d 65 2c 20 24 70 .$lev.=.levenshtein($subname,.$p
c9460 61 72 74 73 5b 24 69 5d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 73 arts[$i]);.if.($lev.<=.strlen($s
c9480 75 62 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 27 27 20 21 3d 3d 20 24 73 75 62 6e 61 6d 65 20 26 ubname)./.3.||.''.!==.$subname.&
c94a0 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 72 74 73 5b 24 69 5d 2c 20 24 &.false.!==.strpos($parts[$i],.$
c94c0 73 75 62 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 subname)).{.$alternatives[$colle
c94e0 63 74 69 6f 6e 4e 61 6d 65 5d 20 3d 20 24 65 78 69 73 74 73 20 3f 20 24 61 6c 74 65 72 6e 61 74 ctionName].=.$exists.?.$alternat
c9500 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 2b 20 24 6c 65 76 20 3a 20 24 ives[$collectionName].+.$lev.:.$
c9520 6c 65 76 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 65 78 69 73 74 73 29 20 7b 0a 24 61 6c 74 65 72 lev;.}.elseif.($exists).{.$alter
c9540 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 3d 20 24 74 68 72 natives[$collectionName].+=.$thr
c9560 65 73 68 6f 6c 64 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 eshold;.}.}.}..foreach.($collect
c9580 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 ion.as.$item).{.$lev.=.levenshte
c95a0 69 6e 28 24 6e 61 6d 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 in($name,.$item);.if.($lev.<=.st
c95c0 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 rlen($name)./.3.||.false.!==.str
c95e0 70 6f 73 28 24 69 74 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 pos($item,.$name)).{.$alternativ
c9600 65 73 5b 24 69 74 65 6d 5d 20 3d 20 69 73 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b es[$item].=.isset($alternatives[
c9620 24 69 74 65 6d 5d 29 20 3f 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 2d $item]).?.$alternatives[$item].-
c9640 20 24 6c 65 76 20 3a 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 .$lev.:.$lev;.}.}..$alternatives
c9660 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 2c 20 66 .=.array_filter($alternatives,.f
c9680 75 6e 63 74 69 6f 6e 20 28 24 6c 65 76 29 20 75 73 65 20 28 24 74 68 72 65 73 68 6f 6c 64 29 20 unction.($lev).use.($threshold).
c96a0 7b 20 72 65 74 75 72 6e 20 24 6c 65 76 20 3c 20 32 20 2a 20 24 74 68 72 65 73 68 6f 6c 64 3b 20 {.return.$lev.<.2.*.$threshold;.
c96c0 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 0a 72 65 74 75 72 });.asort($alternatives);..retur
c96e0 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 29 3b 0a 7d 0a 0a n.array_keys($alternatives);.}..
c9700 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 75 6c 74 43 .....public.function.setDefaultC
c9720 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 69 73 2d 3e 64 65 ommand($commandName).{.$this->de
c9740 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 65 3b 0a 7d 0a 0a faultCommand.=.$commandName;.}..
c9760 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 74 68 28 24 73 74 private.function.stringWidth($st
c9780 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 74 73 28 27 6d 62 ring).{.if.(!function_exists('mb
c97a0 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 65 6e 28 24 73 74 _strwidth')).{.return.strlen($st
c97c0 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e ring);.}..if.(false.===.$encodin
c97e0 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 g.=.mb_detect_encoding($string))
c9800 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 .{.return.strlen($string);.}..re
c9820 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 24 65 6e 63 6f 64 turn.mb_strwidth($string,.$encod
c9840 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 73 70 6c 69 74 53 ing);.}..private.function.splitS
c9860 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 74 68 29 0a 7b 0a tringByWidth($string,.$width).{.
c9880 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 28 27 6d 62 5f 73 ......if.(!function_exists('mb_s
c98a0 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 6c 69 74 28 24 73 trwidth')).{.return.str_split($s
c98c0 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 73 65 20 3d 3d 3d tring,.$width);.}..if.(false.===
c98e0 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 .$encoding.=.mb_detect_encoding(
c9900 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 69 74 28 24 73 74 $string)).{.return.str_split($st
c9920 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 69 6e 67 20 3d 20 ring,.$width);.}..$utf8String.=.
c9940 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 67 2c 20 27 75 74 mb_convert_encoding($string,.'ut
c9960 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 61 72 72 61 79 28 f8',.$encoding);.$lines.=.array(
c9980 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 65 67 5f 73 70 6c );.$line.=.'';.foreach.(preg_spl
c99a0 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 24 63 68 61 72 29 it('//u',.$utf8String).as.$char)
c99c0 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 2e 24 63 68 61 72 .{...if.(mb_strwidth($line.$char
c99e0 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 6e 65 20 2e 3d 20 ,.'utf8').<=.$width).{.$line..=.
c9a00 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 73 5b 5d 20 3d 20 $char;.continue;.}...$lines[].=.
c9a20 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 69 6e 65 20 3d 20 str_pad($line,.$width);.$line.=.
c9a40 24 63 68 61 72 3b 0a 7d 0a 69 66 20 28 27 27 20 21 3d 3d 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 $char;.}.if.(''.!==.$line).{.$li
c9a60 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 74 72 5f 70 61 64 28 nes[].=.count($lines).?.str_pad(
c9a80 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 0a 0a 6d 62 5f 63 6f $line,.$width).:.$line;.}..mb_co
c9aa0 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 2c 20 27 75 74 66 38 nvert_variables($encoding,.'utf8
c9ac0 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 73 3b 0a 7d 0a 0a 0a ',.$lines);..return.$lines;.}...
c9ae0 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 74 72 61 63 74 41 6c ......private.function.extractAl
c9b00 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 61 72 74 73 20 3d 20 lNamespaces($name).{...$parts.=.
c9b20 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 24 6e 61 6d 65 73 70 explode(':',.$name,.-1);.$namesp
c9b40 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 28 24 70 61 72 74 73 aces.=.array();..foreach.($parts
c9b60 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 61 6d 65 73 70 61 63 .as.$part).{.if.(count($namespac
c9b80 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 64 28 24 6e 61 6d 65 es)).{.$namespaces[].=.end($name
c9ba0 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 20 7b 0a 24 6e 61 6d spaces).':'.$part;.}.else.{.$nam
c9bc0 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 65 74 75 72 6e 20 24 espaces[].=.$part;.}.}..return.$
c9be0 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 0a 0a 0a 0a 0a 0a 0a namespaces;.}.}.<?php...........
c9c00 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
c9c20 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ole\Command;..use.Symfony\Compon
c9c40 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 ent\Console\Descriptor\TextDescr
c9c60 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e iptor;.use.Symfony\Component\Con
c9c80 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 sole\Descriptor\XmlDescriptor;.u
c9ca0 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
c9cc0 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\
c9ce0 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
c9d00 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
c9d20 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
c9d40 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
c9d60 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
c9d80 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 74 70 75 74 3b t\Console\Output\BufferedOutput;
c9da0 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
c9dc0 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f utput\OutputInterface;.use.Symfo
c9de0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e ny\Component\Console\Application
c9e00 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\
c9e20 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f Helper\HelperSet;.......class.Co
c9e40 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 72 mmand.{.private.$application;.pr
c9e60 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 74 ivate.$name;.private.$processTit
c9e80 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 0a le;.private.$aliases.=.array();.
c9ea0 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 65 private.$definition;.private.$he
c9ec0 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 74 lp;.private.$description;.privat
c9ee0 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 73 e.$ignoreValidationErrors.=.fals
c9f00 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 6f e;.private.$applicationDefinitio
c9f20 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 63 nMerged.=.false;.private.$applic
c9f40 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 20 ationDefinitionMergedWithArgs.=.
c9f60 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 73 false;.private.$code;.private.$s
c9f80 79 6e 6f 70 73 69 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 75 73 61 67 ynopsis.=.array();.private.$usag
c9fa0 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 es.=.array();.private.$helperSet
c9fc0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ;.........public.function.__cons
c9fe0 74 72 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 truct($name.=.null).{.$this->def
ca000 69 6e 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 inition.=.new.InputDefinition();
ca020 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 ..if.(null.!==.$name).{.$this->s
ca040 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 etName($name);.}..$this->configu
ca060 72 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 re();..if.(!$this->name).{.throw
ca080 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 .new.\LogicException(sprintf('Th
ca0a0 65 20 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 e.command.defined.in."%s".cannot
ca0c0 20 68 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 .have.an.empty.name.',.get_class
ca0e0 28 24 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 ($this)));.}.}.......public.func
ca100 74 69 6f 6e 20 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 0a 7b 0a tion.ignoreValidationErrors().{.
ca120 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 20 3d 20 $this->ignoreValidationErrors.=.
ca140 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 true;.}.......public.function.se
ca160 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
ca180 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
ca1a0 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
ca1c0 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
ca1e0 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
ca200 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;.}.}.
ca220 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
ca240 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
ca260 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;.}.....
ca280 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()
ca2a0 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;.}...
ca2c0 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 74 69 ....public.function.getApplicati
ca2e0 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 6f 6e on().{.return.$this->application
ca300 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 73 45 ;.}..........public.function.isE
ca320 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 70 72 nabled().{.return.true;.}.....pr
ca340 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 7d otected.function.configure().{.}
ca360 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 75 6e ...................protected.fun
ca380 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e ction.execute(InputInterface.$in
ca3a0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
ca3c0 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 20 6d throw.new.\LogicException('You.m
ca3e0 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 68 6f ust.override.the.execute().metho
ca400 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 73 2e d.in.the.concrete.command.class.
ca420 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 63 74 ');.}............protected.funct
ca440 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 6e 70 ion.interact(InputInterface.$inp
ca460 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 7d ut,.OutputInterface.$output).{.}
ca480 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 69 6e ...........protected.function.in
ca4a0 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 20 itialize(InputInterface.$input,.
ca4c0 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 0a 0a OutputInterface.$output).{.}....
ca4e0 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 72 ...............public.function.r
ca500 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
ca520 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 2d 3e 67 65 Interface.$output).{...$this->ge
ca540 74 53 79 6e 6f 70 73 69 73 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 tSynopsis(true);.$this->getSynop
ca560 73 69 73 28 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6d 65 72 67 65 41 70 70 6c 69 sis(false);....$this->mergeAppli
ca580 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 7b 0a 24 69 6e cationDefinition();....try.{.$in
ca5a0 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 29 3b 0a 7d 20 put->bind($this->definition);.}.
ca5c0 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 catch.(\Exception.$e).{.if.(!$th
ca5e0 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 20 7b 0a 74 68 is->ignoreValidationErrors).{.th
ca600 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 69 7a 65 28 24 row.$e;.}.}..$this->initialize($
ca620 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 21 3d 3d 20 24 input,.$output);..if.(null.!==.$
ca640 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 75 6e 63 74 69 this->processTitle).{.if.(functi
ca660 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 74 69 74 6c 65 on_exists('cli_set_process_title
ca680 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 28 24 74 68 69 ')).{.cli_set_process_title($thi
ca6a0 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 28 66 75 6e 63 s->processTitle);.}.elseif.(func
ca6c0 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 29 20 7b 0a 73 tion_exists('setproctitle')).{.s
ca6e0 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 69 74 6c 65 29 etproctitle($this->processTitle)
ca700 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 3a 3a 56 45 52 ;.}.elseif.(OutputInterface::VER
ca720 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 74 70 75 74 2d BOSITY_VERY_VERBOSE.===.$output-
ca740 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 3e 77 72 69 74 >getVerbosity()).{.$output->writ
ca760 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 72 6f 63 74 69 eln('<comment>Install.the.procti
ca780 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 67 65 20 74 68 tle.PECL.to.be.able.to.change.th
ca7a0 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 29 3b 0a 7d 0a e.process.title.</comment>');.}.
ca7c0 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 65 28 29 29 20 }..if.($input->isInteractive()).
ca7e0 7b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 {.$this->interact($input,.$outpu
ca800 74 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 41 72 67 75 t);.}........if.($input->hasArgu
ca820 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 69 6e 70 ment('command').&&.null.===.$inp
ca840 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 20 7b 0a 24 69 ut->getArgument('command')).{.$i
ca860 6e 70 75 74 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 24 74 68 nput->setArgument('command',.$th
ca880 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 2d 3e 76 61 6c 69 64 is->getName());.}..$input->valid
ca8a0 61 74 65 28 29 3b 0a 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 ate();..if.($this->code).{.$stat
ca8c0 75 73 43 6f 64 65 20 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 usCode.=.call_user_func($this->c
ca8e0 6f 64 65 2c 20 24 69 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 ode,.$input,.$output);.}.else.{.
ca900 24 73 74 61 74 75 73 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 $statusCode.=.$this->execute($in
ca920 70 75 74 2c 20 24 6f 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 put,.$output);.}..return.is_nume
ca940 72 69 63 28 24 73 74 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 ric($statusCode).?.(int).$status
ca960 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 Code.:.0;.}................publi
ca980 63 20 66 75 6e 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 c.function.setCode($code).{.if.(
ca9a0 21 69 73 5f 63 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 !is_callable($code)).{.throw.new
ca9c0 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 49 6e 76 61 .\InvalidArgumentException('Inva
ca9e0 6c 69 64 20 63 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 lid.callable.provided.to.Command
caa00 3a 3a 73 65 74 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 ::setCode.');.}..$this->code.=.$
caa20 63 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 code;..return.$this;.}.........p
caa40 75 62 6c 69 63 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 ublic.function.mergeApplicationD
caa60 65 66 69 6e 69 74 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 efinition($mergeArgs.=.true).{.i
caa80 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 7c f.(null.===.$this->application.|
caaa0 7c 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 |.(true.===.$this->applicationDe
caac0 66 69 6e 69 74 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 finitionMerged.&&.($this->applic
caae0 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 7c 7c ationDefinitionMergedWithArgs.||
cab00 20 21 24 6d 65 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 .!$mergeArgs))).{.return;.}..if.
cab20 28 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 ($mergeArgs).{.$currentArguments
cab40 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e .=.$this->definition->getArgumen
cab60 74 73 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 ts();.$this->definition->setArgu
cab80 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 ments($this->application->getDef
caba0 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 74 68 69 inition()->getArguments());.$thi
cabc0 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 63 75 72 s->definition->addArguments($cur
cabe0 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 rentArguments);.}..$this->defini
cac00 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 tion->addOptions($this->applicat
cac20 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 4f 70 74 69 6f 6e 73 ion->getDefinition()->getOptions
cac40 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 ());..$this->applicationDefiniti
cac60 6f 6e 4d 65 72 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 onMerged.=.true;.if.($mergeArgs)
cac80 20 7b 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 .{.$this->applicationDefinitionM
caca0 65 72 67 65 64 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 ergedWithArgs.=.true;.}.}.......
cacc0 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 74 69 6f 6e 28 ..public.function.setDefinition(
cace0 24 64 65 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 $definition).{.if.($definition.i
cad00 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 nstanceof.InputDefinition).{.$th
cad20 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 7d 20 is->definition.=.$definition;.}.
cad40 65 6c 73 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 else.{.$this->definition->setDef
cad60 69 6e 69 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 inition($definition);.}..$this->
cad80 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 applicationDefinitionMerged.=.fa
cada0 6c 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 70 75 62 6c lse;..return.$this;.}.......publ
cadc0 69 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 ic.function.getDefinition().{.re
cade0 74 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 turn.$this->definition;.}.......
cae00 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 74 69 76 65 44 65 .....public.function.getNativeDe
cae20 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 67 65 74 44 65 finition().{.return.$this->getDe
cae40 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 finition();.}............public.
cae60 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 64 function.addArgument($name,.$mod
cae80 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
caea0 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
caec0 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 74 n->addArgument(new.InputArgument
caee0 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 65 ($name,.$mode,.$description,.$de
caf00 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 0a fault));..return.$this;.}.......
caf20 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 ......public.function.addOption(
caf40 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 65 20 3d $name,.$shortcut.=.null,.$mode.=
caf60 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 66 61 75 .null,.$description.=.'',.$defau
caf80 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 6e 2d 3e lt.=.null).{.$this->definition->
cafa0 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 6d 65 2c addOption(new.InputOption($name,
cafc0 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 6f 6e 2c .$shortcut,.$mode,.$description,
cafe0 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 0a 0a 0a .$default));..return.$this;.}...
cb000 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
cb020 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d Name($name).{.$this->validateNam
cb040 65 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a e($name);..$this->name.=.$name;.
cb060 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 75 .return.$this;.}..............pu
cb080 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 6c 65 28 24 74 blic.function.setProcessTitle($t
cb0a0 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 20 3d 20 24 74 itle).{.$this->processTitle.=.$t
cb0c0 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 0a 0a 70 75 62 itle;..return.$this;.}.......pub
cb0e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getName().{.return.
cb100 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $this->name;.}.........public.fu
cb120 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 65 73 63 72 69 70 74 69 nction.setDescription($descripti
cb140 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 on).{.$this->description.=.$desc
cb160 72 69 70 74 69 6f 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ription;..return.$this;.}.......
cb180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 public.function.getDescription()
cb1a0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a .{.return.$this->description;.}.
cb1c0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 28 ........public.function.setHelp(
cb1e0 24 68 65 6c 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 20 3d 20 24 68 65 6c 70 3b 0a 0a 72 $help).{.$this->help.=.$help;..r
cb200 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
cb220 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 tion.getHelp().{.return.$this->h
cb240 65 6c 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 elp;.}........public.function.ge
cb260 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 tProcessedHelp().{.$name.=.$this
cb280 2d 3e 6e 61 6d 65 3b 0a 0a 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a ->name;..$placeholders.=.array(.
cb2a0 27 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 27 2c 0a 27 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c '%command.name%',.'%command.full
cb2c0 5f 6e 61 6d 65 25 27 2c 0a 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 _name%',.);.$replacements.=.arra
cb2e0 79 28 0a 24 6e 61 6d 65 2c 0a 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 2e 27 y(.$name,.$_SERVER['PHP_SELF'].'
cb300 20 27 2e 24 6e 61 6d 65 2c 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 .'.$name,.);..return.str_replace
cb320 28 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 2c 20 24 ($placeholders,.$replacements,.$
cb340 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 20 3f 3a 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 this->getHelp().?:.$this->getDes
cb360 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 cription());.}...........public.
cb380 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 0a 7b 0a function.setAliases($aliases).{.
cb3a0 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 6c 69 61 73 65 73 29 20 26 26 20 21 24 61 6c 69 if.(!is_array($aliases).&&.!$ali
cb3c0 61 73 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 29 20 7b 0a ases.instanceof.\Traversable).{.
cb3e0 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
cb400 69 6f 6e 28 27 24 61 6c 69 61 73 65 73 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f ion('$aliases.must.be.an.array.o
cb420 72 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 27 29 3b r.an.instance.of.\Traversable');
cb440 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 .}..foreach.($aliases.as.$alias)
cb460 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 61 6c 69 61 73 29 3b 0a .{.$this->validateName($alias);.
cb480 7d 0a 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 0a 72 }..$this->aliases.=.$aliases;..r
cb4a0 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
cb4c0 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getAliases().{.return.$this
cb4e0 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->aliases;.}.........public.func
cb500 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 24 73 68 6f 72 74 20 3d 20 66 61 6c 73 65 29 tion.getSynopsis($short.=.false)
cb520 0a 7b 0a 24 6b 65 79 20 3d 20 24 73 68 6f 72 74 20 3f 20 27 73 68 6f 72 74 27 20 3a 20 27 6c 6f .{.$key.=.$short.?.'short'.:.'lo
cb540 6e 67 27 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 ng';..if.(!isset($this->synopsis
cb560 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 5b 24 6b 65 79 5d [$key])).{.$this->synopsis[$key]
cb580 20 3d 20 74 72 69 6d 28 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 74 68 69 73 2d 3e .=.trim(sprintf('%s.%s',.$this->
cb5a0 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 53 79 6e 6f name,.$this->definition->getSyno
cb5c0 70 73 69 73 28 24 73 68 6f 72 74 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d psis($short)));.}..return.$this-
cb5e0 3e 73 79 6e 6f 70 73 69 73 5b 24 6b 65 79 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 >synopsis[$key];.}.......public.
cb600 66 75 6e 63 74 69 6f 6e 20 61 64 64 55 73 61 67 65 28 24 75 73 61 67 65 29 0a 7b 0a 69 66 20 28 function.addUsage($usage).{.if.(
cb620 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 75 73 61 67 65 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 0.!==.strpos($usage,.$this->name
cb640 29 29 20 7b 0a 24 75 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 )).{.$usage.=.sprintf('%s.%s',.$
cb660 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 75 73 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 this->name,.$usage);.}..$this->u
cb680 73 61 67 65 73 5b 5d 20 3d 20 24 75 73 61 67 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b sages[].=.$usage;..return.$this;
cb6a0 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 55 73 61 67 .}.......public.function.getUsag
cb6c0 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 61 67 65 73 3b 0a 7d 0a 0a es().{.return.$this->usages;.}..
cb6e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 .........public.function.getHelp
cb700 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 6c 70 65 72 er($name).{.return.$this->helper
cb720 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 75 62 6c 69 Set->get($name);.}.........publi
cb740 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 c.function.asText().{.@trigger_e
cb760 72 72 6f 72 28 27 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 rror('The.'.__METHOD__.'.method.
cb780 69 73 20 64 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 20 is.deprecated.since.version.2.3.
cb7a0 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f and.will.be.removed.in.3.0.',.E_
cb7c0 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d USER_DEPRECATED);..$descriptor.=
cb7e0 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 75 74 70 75 74 20 3d .new.TextDescriptor();.$output.=
cb800 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 72 65 64 4f 75 74 70 .new.BufferedOutput(BufferedOutp
cb820 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 65 29 3b 0a 24 64 65 ut::VERBOSITY_NORMAL,.true);.$de
cb840 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 scriptor->describe($output,.$thi
cb860 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 74 72 75 65 29 29 3b s,.array('raw_output'.=>.true));
cb880 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();.}....
cb8a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 .......public.function.asXml($as
cb8c0 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 Dom.=.false).{.@trigger_error('T
cb8e0 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 he.'.__METHOD__.'.method.is.depr
cb900 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 20 61 6e 64 20 77 69 6c ecated.since.version.2.3.and.wil
cb920 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 l.be.removed.in.3.0.',.E_USER_DE
cb940 50 52 45 43 41 54 45 44 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d PRECATED);..$descriptor.=.new.Xm
cb960 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 7b 0a 72 65 lDescriptor();..if.($asDom).{.re
cb980 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 turn.$descriptor->getCommandDocu
cb9a0 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 75 ment($this);.}..$output.=.new.Bu
cb9c0 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 73 fferedOutput();.$descriptor->des
cb9e0 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 24 cribe($output,.$this);..return.$
cba00 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 72 69 output->fetch();.}...........pri
cba20 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 vate.function.validateName($name
cba40 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5e 5c 3a 5d 2b 2b 28 5c ).{.if.(!preg_match('/^[^\:]++(\
cba60 3a 5b 5e 5c 3a 5d 2b 2b 29 2a 24 2f 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e :[^\:]++)*$/',.$name)).{.throw.n
cba80 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
cbaa0 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c intf('Command.name."%s".is.inval
cbac0 69 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a id.',.$name));.}.}.}.<?php......
cbae0 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
cbb00 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \Console\Command;..use.Symfony\C
cbb20 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 72 69 70 74 omponent\Console\Helper\Descript
cbb40 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 65 6e 74 5c orHelper;.use.Symfony\Component\
cbb60 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 Console\Input\InputArgument;.use
cbb80 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
cbba0 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
cbbc0 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
cbbe0 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\
cbc00 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c Output\OutputInterface;.......cl
cbc20 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a ass.HelpCommand.extends.Command.
cbc40 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 {.private.$command;.....protecte
cbc60 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e d.function.configure().{.$this->
cbc80 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 68 69 73 ignoreValidationErrors();..$this
cbca0 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 68 65 6c 70 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 .->setName('help').->setDefiniti
cbcc0 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d on(array(.new.InputArgument('com
cbce0 6d 61 6e 64 5f 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f mand_name',.InputArgument::OPTIO
cbd00 4e 41 4c 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 65 6c 70 27 29 NAL,.'The.command.name',.'help')
cbd20 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 ,.new.InputOption('xml',.null,.I
cbd40 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 nputOption::VALUE_NONE,.'To.outp
cbd60 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 70 74 69 6f ut.help.as.XML'),.new.InputOptio
cbd80 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 6e 3a 3a 56 n('format',.null,.InputOption::V
cbda0 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 54 68 65 20 6f 75 74 70 75 74 20 66 6f 72 6d 61 ALUE_REQUIRED,.'The.output.forma
cbdc0 74 20 28 74 78 74 2c 20 78 6d 6c 2c 20 6a 73 6f 6e 2c 20 6f 72 20 6d 64 29 27 2c 20 27 74 78 74 t.(txt,.xml,.json,.or.md)',.'txt
cbde0 27 29 2c 0a 6e 65 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 '),.new.InputOption('raw',.null,
cbe00 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 6f 75 .InputOption::VALUE_NONE,.'To.ou
cbe20 74 70 75 74 20 72 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 tput.raw.command.help'),.)).->se
cbe40 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 tDescription('Displays.help.for.
cbe60 61 20 63 6f 6d 6d 61 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 a.command').->setHelp(<<<EOF.The
cbe80 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d .<info>%command.name%</info>.com
cbea0 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 mand.displays.help.for.a.given.c
cbec0 6f 6d 6d 61 6e 64 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 ommand:....<info>php.%command.fu
cbee0 6c 6c 5f 6e 61 6d 65 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c ll_name%.list</info>..You.can.al
cbf00 73 6f 20 6f 75 74 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 so.output.the.help.in.other.form
cbf20 61 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d ats.by.using.the.<comment>--form
cbf40 61 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 at</comment>.option:....<info>ph
cbf60 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 p.%command.full_name%.--format=x
cbf80 6d 6c 20 6c 69 73 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 ml.list</info>..To.display.the.l
cbfa0 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 2c 20 70 6c 65 61 73 ist.of.available.commands,.pleas
cbfc0 65 20 75 73 65 20 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 e.use.the.<info>list</info>.comm
cbfe0 61 6e 64 2e 0a 45 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 and..EOF.).;.}.......public.func
cc000 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 6e 64 tion.setCommand(Command.$command
cc020 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 6e 64 3b 0a 7d ).{.$this->command.=.$command;.}
cc040 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 .....protected.function.execute(
cc060 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
cc080 65 72 66 61 63 65 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 erface.$output).{.if.(null.===.$
cc0a0 74 68 69 73 2d 3e 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 this->command).{.$this->command.
cc0c0 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 66 69 6e 64 28 =.$this->getApplication()->find(
cc0e0 24 69 6e 70 75 74 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 $input->getArgument('command_nam
cc100 65 27 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 e'));.}..if.($input->getOption('
cc120 78 6d 6c 27 29 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 2d 2d 78 xml')).{.@trigger_error('The.--x
cc140 6d 6c 20 6f 70 74 69 6f 6e 20 77 61 73 20 64 65 70 72 65 63 61 74 65 64 20 69 6e 20 76 65 72 73 ml.option.was.deprecated.in.vers
cc160 69 6f 6e 20 32 2e 37 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 76 ion.2.7.and.will.be.removed.in.v
cc180 65 72 73 69 6f 6e 20 33 2e 30 2e 20 55 73 65 20 74 68 65 20 2d 2d 66 6f 72 6d 61 74 20 6f 70 74 ersion.3.0..Use.the.--format.opt
cc1a0 69 6f 6e 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 ion.instead.',.E_USER_DEPRECATED
cc1c0 29 3b 0a 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 );..$input->setOption('format',.
cc1e0 27 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 'xml');.}..$helper.=.new.Descrip
cc200 74 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 torHelper();.$helper->describe($
cc220 6f 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 output,.$this->command,.array(.'
cc240 66 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 format'.=>.$input->getOption('fo
cc260 72 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 rmat'),.'raw_text'.=>.$input->ge
cc280 74 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 tOption('raw'),.));..$this->comm
cc2a0 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a and.=.null;.}.}.<?php...........
cc2c0 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
cc2e0 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ole\Command;..use.Symfony\Compon
cc300 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c ent\Console\Helper\DescriptorHel
cc320 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 6e 73 6f per;.use.Symfony\Component\Conso
cc340 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
cc360 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
cc380 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
cc3a0 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
cc3c0 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
cc3e0 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 43 t\OutputInterface;.use.Symfony\C
cc400 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
cc420 6e 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 20 nition;.......class.ListCommand.
cc440 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 extends.Command.{....protected.f
cc460 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 unction.configure().{.$this.->se
cc480 74 4e 61 6d 65 28 27 6c 69 73 74 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 74 tName('list').->setDefinition($t
cc4a0 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 0a 2d 3e 73 65 74 44 65 his->createDefinition()).->setDe
cc4c0 73 63 72 69 70 74 69 6f 6e 28 27 4c 69 73 74 73 20 63 6f 6d 6d 61 6e 64 73 27 29 0a 2d 3e 73 65 scription('Lists.commands').->se
cc4e0 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e tHelp(<<<EOF.The.<info>%command.
cc500 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 73 20 61 6c 6c 20 63 name%</info>.command.lists.all.c
cc520 6f 6d 6d 61 6e 64 73 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 ommands:....<info>php.%command.f
cc540 75 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 ull_name%</info>..You.can.also.d
cc560 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 61 20 73 70 65 63 69 66 isplay.the.commands.for.a.specif
cc580 69 63 20 6e 61 6d 65 73 70 61 63 65 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d ic.namespace:....<info>php.%comm
cc5a0 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 74 65 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 and.full_name%.test</info>..You.
cc5c0 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 75 74 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 can.also.output.the.information.
cc5e0 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 in.other.formats.by.using.the.<c
cc600 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e omment>--format</comment>.option
cc620 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
cc640 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 3c 2f 69 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 e%.--format=xml</info>..It's.als
cc660 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f o.possible.to.get.raw.list.of.co
cc680 6d 6d 61 6e 64 73 20 28 75 73 65 66 75 6c 20 66 6f 72 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d mmands.(useful.for.embedding.com
cc6a0 6d 61 6e 64 20 72 75 6e 6e 65 72 29 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d mand.runner):....<info>php.%comm
cc6c0 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 72 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a and.full_name%.--raw</info>.EOF.
cc6e0 29 0a 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 74 ).;.}.....public.function.getNat
cc700 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e iveDefinition().{.return.$this->
cc720 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 createDefinition();.}.....protec
cc740 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 ted.function.execute(InputInterf
cc760 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
cc780 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d put).{.if.($input->getOption('xm
cc7a0 6c 27 29 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 2d 2d 78 6d 6c l')).{.@trigger_error('The.--xml
cc7c0 20 6f 70 74 69 6f 6e 20 77 61 73 20 64 65 70 72 65 63 61 74 65 64 20 69 6e 20 76 65 72 73 69 6f .option.was.deprecated.in.versio
cc7e0 6e 20 32 2e 37 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 76 65 72 n.2.7.and.will.be.removed.in.ver
cc800 73 69 6f 6e 20 33 2e 30 2e 20 55 73 65 20 74 68 65 20 2d 2d 66 6f 72 6d 61 74 20 6f 70 74 69 6f sion.3.0..Use.the.--format.optio
cc820 6e 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b n.instead.',.E_USER_DEPRECATED);
cc840 0a 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 78 ..$input->setOption('format',.'x
cc860 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 6f ml');.}..$helper.=.new.Descripto
cc880 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 75 rHelper();.$helper->describe($ou
cc8a0 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2c 20 61 tput,.$this->getApplication(),.a
cc8c0 72 72 61 79 28 0a 27 66 6f 72 6d 61 74 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 rray(.'format'.=>.$input->getOpt
cc8e0 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 0a 27 72 61 77 5f 74 65 78 74 27 20 3d 3e 20 24 69 6e ion('format'),.'raw_text'.=>.$in
cc900 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 2c 0a 27 6e 61 6d 65 73 70 61 63 put->getOption('raw'),.'namespac
cc920 65 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 e'.=>.$input->getArgument('names
cc940 70 61 63 65 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 pace'),.));.}.....private.functi
cc960 6f 6e 20 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e on.createDefinition().{.return.n
cc980 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e ew.InputDefinition(array(.new.In
cc9a0 70 75 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 49 6e 70 75 74 41 72 putArgument('namespace',.InputAr
cc9c0 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 gument::OPTIONAL,.'The.namespace
cc9e0 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 .name'),.new.InputOption('xml',.
cca00 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,.'
cca20 54 6f 20 6f 75 74 70 75 74 20 6c 69 73 74 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 To.output.list.as.XML'),.new.Inp
cca40 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 4f 70 74 69 6f utOption('raw',.null,.InputOptio
cca60 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 61 77 20 63 6f n::VALUE_NONE,.'To.output.raw.co
cca80 6d 6d 61 6e 64 20 6c 69 73 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 mmand.list'),.new.InputOption('f
ccaa0 6f 72 6d 61 74 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 ormat',.null,.InputOption::VALUE
ccac0 5f 52 45 51 55 49 52 45 44 2c 20 27 54 68 65 20 6f 75 74 70 75 74 20 66 6f 72 6d 61 74 20 28 74 _REQUIRED,.'The.output.format.(t
ccae0 78 74 2c 20 78 6d 6c 2c 20 6a 73 6f 6e 2c 20 6f 72 20 6d 64 29 27 2c 20 27 74 78 74 27 29 2c 0a xt,.xml,.json,.or.md)',.'txt'),.
ccb00 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ));.}.}.<?php...........namespac
ccb20 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 0a 0a e.Symfony\Component\Console;....
ccb40 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 0a 0a ...final.class.ConsoleEvents.{..
ccb60 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 6e 73 ...........const.COMMAND.=.'cons
ccb80 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 74 20 ole.command';.............const.
ccba0 54 45 52 4d 49 4e 41 54 45 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 74 65 72 6d 69 6e 61 74 65 27 3b TERMINATE.=.'console.terminate';
ccbc0 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 3d 20 ..............const.EXCEPTION.=.
ccbe0 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 0a 0a 'console.exception';.}.<?php....
ccc00 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
ccc20 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 nt\Console\Descriptor;..use.Symf
ccc40 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f ony\Component\Console\Applicatio
ccc60 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
ccc80 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 20 41 70 \Command\Command;.......class.Ap
ccca0 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 47 4c 4f plicationDescription.{.const.GLO
cccc0 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 0a 0a 0a 0a 70 BAL_NAMESPACE.=.'_global';.....p
ccce0 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 rivate.$application;.....private
ccd00 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 .$namespace;.....private.$namesp
ccd20 61 63 65 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 0a 0a aces;.....private.$commands;....
ccd40 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .private.$aliases;........public
ccd60 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 61 74 69 6f .function.__construct(Applicatio
ccd80 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 20 6e 75 6c n.$application,.$namespace.=.nul
ccda0 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 l).{.$this->application.=.$appli
ccdc0 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 6e 61 6d 65 cation;.$this->namespace.=.$name
ccde0 73 70 61 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 space;.}.....public.function.get
cce00 4e 61 6d 65 73 70 61 63 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 Namespaces().{.if.(null.===.$thi
cce20 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 s->namespaces).{.$this->inspectA
cce40 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e pplication();.}..return.$this->n
cce60 61 6d 65 73 70 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e amespaces;.}.....public.function
cce80 20 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 .getCommands().{.if.(null.===.$t
ccea0 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 his->commands).{.$this->inspectA
ccec0 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 pplication();.}..return.$this->c
ccee0 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 66 75 6e 63 74 69 ommands;.}.........public.functi
ccf00 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 on.getCommand($name).{.if.(!isse
ccf20 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 21 69 73 t($this->commands[$name]).&&.!is
ccf40 73 65 74 28 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 set($this->aliases[$name])).{.th
ccf60 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
ccf80 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 65 n(sprintf('Command.%s.does.not.e
ccfa0 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 xist.',.$name));.}..return.isset
ccfc0 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 ($this->commands[$name]).?.$this
ccfe0 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 ->commands[$name].:.$this->alias
cd000 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 es[$name];.}..private.function.i
cd020 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d nspectApplication().{.$this->com
cd040 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 mands.=.array();.$this->namespac
cd060 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 61 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 es.=.array();..$all.=.$this->app
cd080 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c 6c 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3f lication->all($this->namespace.?
cd0a0 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 .$this->application->findNamespa
cd0c0 63 65 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 29 20 3a 20 6e 75 6c 6c 29 3b 0a 66 6f ce($this->namespace).:.null);.fo
cd0e0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 61 6c 6c 29 reach.($this->sortCommands($all)
cd100 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 .as.$namespace.=>.$commands).{.$
cd120 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d names.=.array();...foreach.($com
cd140 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 0a 69 66 mands.as.$name.=>.$command).{.if
cd160 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e .(!$command->getName()).{.contin
cd180 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d ue;.}..if.($command->getName().=
cd1a0 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d ==.$name).{.$this->commands[$nam
cd1c0 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 e].=.$command;.}.else.{.$this->a
cd1e0 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 24 6e 61 liases[$name].=.$command;.}..$na
cd200 6d 65 73 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 mes[].=.$name;.}..$this->namespa
cd220 63 65 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 20 3d 20 61 72 72 61 79 28 27 69 64 27 20 3d 3e 20 ces[$namespace].=.array('id'.=>.
cd240 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 6e 61 6d 65 73 $namespace,.'commands'.=>.$names
cd260 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f );.}.}.......private.function.so
cd280 72 74 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e rtCommands(array.$commands).{.$n
cd2a0 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 67 6c amespacedCommands.=.array();.$gl
cd2c0 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 obalCommands.=.array();.foreach.
cd2e0 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 ($commands.as.$name.=>.$command)
cd300 20 7b 0a 24 6b 65 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 .{.$key.=.$this->application->ex
cd320 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 31 29 3b 0a 69 66 20 28 21 24 tractNamespace($name,.1);.if.(!$
cd340 6b 65 79 29 20 7b 0a 24 67 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 5b 27 5f 67 6c 6f 62 61 6c 27 key).{.$globalCommands['_global'
cd360 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e ][$name].=.$command;.}.else.{.$n
cd380 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 5d 5b 24 6e 61 6d 65 5d 20 3d amespacedCommands[$key][$name].=
cd3a0 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 64 .$command;.}.}.ksort($namespaced
cd3c0 43 6f 6d 6d 61 6e 64 73 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 3d Commands);.$namespacedCommands.=
cd3e0 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 67 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 2c 20 24 6e .array_merge($globalCommands,.$n
cd400 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e amespacedCommands);..foreach.($n
cd420 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 61 73 20 26 24 63 6f 6d 6d 61 6e 64 73 53 amespacedCommands.as.&$commandsS
cd440 65 74 29 20 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 53 65 74 29 3b 0a 7d 0a 0a 20 75 et).{.ksort($commandsSet);.}...u
cd460 6e 73 65 74 28 24 63 6f 6d 6d 61 6e 64 73 53 65 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6e 61 6d nset($commandsSet);..return.$nam
cd480 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a espacedCommands;.}.}.<?php......
cd4a0 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
cd4c0 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e \Console\Descriptor;..use.Symfon
cd4e0 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;
cd500 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 43 .use.Symfony\Component\Console\C
cd520 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 70 ommand\Command;.use.Symfony\Comp
cd540 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e onent\Console\Input\InputArgumen
cd560 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
cd580 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 \Input\InputDefinition;.use.Symf
cd5a0 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
cd5c0 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
cd5e0 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;..
cd600 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 44 65 73 63 72 69 70 74 6f 72 20 69 .....abstract.class.Descriptor.i
cd620 6d 70 6c 65 6d 65 6e 74 73 20 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a mplements.DescriptorInterface.{.
cd640 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ...private.$output;.....public.f
cd660 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 unction.describe(OutputInterface
cd680 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e .$output,.$object,.array.$option
cd6a0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 s.=.array()).{.$this->output.=.$
cd6c0 6f 75 74 70 75 74 3b 0a 0a 73 77 69 74 63 68 20 28 74 72 75 65 29 20 7b 0a 63 61 73 65 20 24 6f output;..switch.(true).{.case.$o
cd6e0 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 0a bject.instanceof.InputArgument:.
cd700 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6f 62 $this->describeInputArgument($ob
cd720 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 ject,.$options);.break;.case.$ob
cd740 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 0a 24 74 68 ject.instanceof.InputOption:.$th
cd760 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c is->describeInputOption($object,
cd780 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 .$options);.break;.case.$object.
cd7a0 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3a 0a 24 74 68 69 instanceof.InputDefinition:.$thi
cd7c0 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 6f 62 6a 65 s->describeInputDefinition($obje
cd7e0 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 ct,.$options);.break;.case.$obje
cd800 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 3a 0a 24 74 68 69 73 2d 3e 64 65 ct.instanceof.Command:.$this->de
cd820 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 scribeCommand($object,.$options)
cd840 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 ;.break;.case.$object.instanceof
cd860 20 41 70 70 6c 69 63 61 74 69 6f 6e 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 41 70 70 .Application:.$this->describeApp
cd880 6c 69 63 61 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 lication($object,.$options);.bre
cd8a0 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ak;.default:.throw.new.\InvalidA
cd8c0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4f 62 6a 65 63 74 rgumentException(sprintf('Object
cd8e0 20 6f 66 20 74 79 70 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 73 63 72 69 62 61 62 6c 65 .of.type."%s".is.not.describable
cd900 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 6f 62 6a 65 63 74 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a .',.get_class($object)));.}.}...
cd920 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 63 .....protected.function.write($c
cd940 6f 6e 74 65 6e 74 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 ontent,.$decorated.=.false).{.$t
cd960 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 6f 6e 74 65 6e 74 2c 20 66 61 6c his->output->write($content,.fal
cd980 73 65 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3f 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 se,.$decorated.?.OutputInterface
cd9a0 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3a 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 ::OUTPUT_NORMAL.:.OutputInterfac
cd9c0 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 e::OUTPUT_RAW);.}..........abstr
cd9e0 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 act.protected.function.describeI
cda00 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 nputArgument(InputArgument.$argu
cda20 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b ment,.array.$options.=.array());
cda40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
cda60 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f ction.describeInputOption(InputO
cda80 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 ption.$option,.array.$options.=.
cdaa0 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 array());..........abstract.prot
cdac0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 ected.function.describeInputDefi
cdae0 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 nition(InputDefinition.$definiti
cdb00 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a on,.array.$options.=.array());..
cdb20 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ........abstract.protected.funct
cdb40 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d ion.describeCommand(Command.$com
cdb60 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b mand,.array.$options.=.array());
cdb80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
cdba0 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 ction.describeApplication(Applic
cdbc0 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f ation.$application,.array.$optio
cdbe0 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ns.=.array());.}.<?php..........
cdc00 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
cdc20 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f sole\Descriptor;..use.Symfony\Co
cdc40 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
cdc60 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 65 73 63 72 69 70 74 erface;.......interface.Descript
cdc80 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 orInterface.{........public.func
cdca0 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f tion.describe(OutputInterface.$o
cdcc0 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d utput,.$object,.array.$options.=
cdce0 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .array());.}.<?php...........nam
cdd00 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
cdd20 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 70 6f 6e \Descriptor;..use.Symfony\Compon
cdd40 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 6d ent\Console\Application;.use.Sym
cdd60 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 fony\Component\Console\Command\C
cdd80 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ommand;.use.Symfony\Component\Co
cdda0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 nsole\Input\InputArgument;.use.S
cddc0 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
cdde0 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 6f 6d 70 nputDefinition;.use.Symfony\Comp
cde00 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;
cde20 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 .........class.JsonDescriptor.ex
cde40 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 tends.Descriptor.{....protected.
cde60 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 49 function.describeInputArgument(I
cde80 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 6f nputArgument.$argument,.array.$o
cdea0 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
cdec0 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 74 61 Data($this->getInputArgumentData
cdee0 28 24 61 72 67 75 6d 65 6e 74 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 ($argument),.$options);.}.....pr
cdf00 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 otected.function.describeInputOp
cdf20 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 tion(InputOption.$option,.array.
cdf40 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 $options.=.array()).{.$this->wri
cdf60 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 teData($this->getInputOptionData
cdf80 28 24 6f 70 74 69 6f 6e 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 ($option),.$options);.}.....prot
cdfa0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 ected.function.describeInputDefi
cdfc0 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 nition(InputDefinition.$definiti
cdfe0 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a on,.array.$options.=.array()).{.
ce000 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 $this->writeData($this->getInput
ce020 44 65 66 69 6e 69 74 69 6f 6e 44 61 74 61 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 2c 20 24 6f 70 DefinitionData($definition),.$op
ce040 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 6f 6e tions);.}.....protected.function
ce060 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e .describeCommand(Command.$comman
ce080 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 d,.array.$options.=.array()).{.$
ce0a0 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e this->writeData($this->getComman
ce0c0 64 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a dData($command),.$options);.}...
ce0e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 ..protected.function.describeApp
ce100 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f lication(Application.$applicatio
ce120 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 n,.array.$options.=.array()).{.$
ce140 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 describedNamespace.=.isset($opti
ce160 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 ons['namespace']).?.$options['na
ce180 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d mespace'].:.null;.$description.=
ce1a0 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 70 .new.ApplicationDescription($app
ce1c0 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a lication,.$describedNamespace);.
ce1e0 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 $commands.=.array();..foreach.($
ce200 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 description->getCommands().as.$c
ce220 6f 6d 6d 61 6e 64 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 ommand).{.$commands[].=.$this->g
ce240 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 24 64 61 74 etCommandData($command);.}..$dat
ce260 61 20 3d 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 0a 3f 20 61 72 72 61 79 28 a.=.$describedNamespace.?.array(
ce280 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 'commands'.=>.$commands,.'namesp
ce2a0 61 63 65 27 20 3d 3e 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 0a 3a 20 61 ace'.=>.$describedNamespace).:.a
ce2c0 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e rray('commands'.=>.$commands,.'n
ce2e0 61 6d 65 73 70 61 63 65 73 27 20 3d 3e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 73 63 amespaces'.=>.array_values($desc
ce300 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 29 29 3b 0a 0a 24 74 68 ription->getNamespaces()));..$th
ce320 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a is->writeData($data,.$options);.
ce340 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 }..........private.function.writ
ce360 65 44 61 74 61 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e eData(array.$data,.array.$option
ce380 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 s).{.$this->write(json_encode($d
ce3a0 61 74 61 2c 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 ata,.isset($options['json_encodi
ce3c0 6e 67 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 ng']).?.$options['json_encoding'
ce3e0 5d 20 3a 20 30 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ].:.0));.}.......private.functio
ce400 6e 20 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 74 61 28 49 6e 70 75 74 41 72 67 75 n.getInputArgumentData(InputArgu
ce420 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a ment.$argument).{.return.array(.
ce440 27 6e 61 6d 65 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 'name'.=>.$argument->getName(),.
ce460 27 69 73 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 'is_required'.=>.$argument->isRe
ce480 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 61 72 72 61 79 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e quired(),.'is_array'.=>.$argumen
ce4a0 74 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 70 t->isArray(),.'description'.=>.p
ce4c0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 73 2a 5b 5c 72 5c 6e 5d 5c 73 2a 2f 27 2c 20 27 20 reg_replace('/\s*[\r\n]\s*/',.'.
ce4e0 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c ',.$argument->getDescription()),
ce500 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 .'default'.=>.$argument->getDefa
ce520 75 6c 74 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 ult(),.);.}.......private.functi
ce540 6f 6e 20 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 49 6e 70 75 74 4f 70 74 69 6f on.getInputOptionData(InputOptio
ce560 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 n.$option).{.return.array(.'name
ce580 27 20 3d 3e 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 73 '.=>.'--'.$option->getName(),.'s
ce5a0 68 6f 72 74 63 75 74 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 hortcut'.=>.$option->getShortcut
ce5c0 28 29 20 3f 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 ().?.'-'.implode('|-',.explode('
ce5e0 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 20 3a 20 27 |',.$option->getShortcut())).:.'
ce600 27 2c 0a 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 ',.'accept_value'.=>.$option->ac
ce620 63 65 70 74 56 61 6c 75 65 28 29 2c 0a 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 ceptValue(),.'is_value_required'
ce640 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 2c 0a .=>.$option->isValueRequired(),.
ce660 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 'is_multiple'.=>.$option->isArra
ce680 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 70 72 65 67 5f 72 65 70 6c 61 y(),.'description'.=>.preg_repla
ce6a0 63 65 28 27 2f 5c 73 2a 5b 5c 72 5c 6e 5d 5c 73 2a 2f 27 2c 20 27 20 27 2c 20 24 6f 70 74 69 6f ce('/\s*[\r\n]\s*/',.'.',.$optio
ce6c0 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 0a 27 64 65 66 61 75 6c 74 27 20 n->getDescription()),.'default'.
ce6e0 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 0a 29 3b 0a 7d 0a 0a =>.$option->getDefault(),.);.}..
ce700 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 44 65 .....private.function.getInputDe
ce720 66 69 6e 69 74 69 6f 6e 44 61 74 61 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 finitionData(InputDefinition.$de
ce740 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 finition).{.$inputArguments.=.ar
ce760 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 2d 3e 67 65 74 ray();.foreach.($definition->get
ce780 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 61 72 67 75 6d 65 6e Arguments().as.$name.=>.$argumen
ce7a0 74 29 20 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 t).{.$inputArguments[$name].=.$t
ce7c0 68 69 73 2d 3e 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 his->getInputArgumentData($argum
ce7e0 65 6e 74 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 ent);.}..$inputOptions.=.array()
ce800 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 74 69 6f ;.foreach.($definition->getOptio
ce820 6e 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 69 6e 70 ns().as.$name.=>.$option).{.$inp
ce840 75 74 4f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 utOptions[$name].=.$this->getInp
ce860 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e utOptionData($option);.}..return
ce880 20 61 72 72 61 79 28 27 61 72 67 75 6d 65 6e 74 73 27 20 3d 3e 20 24 69 6e 70 75 74 41 72 67 75 .array('arguments'.=>.$inputArgu
ce8a0 6d 65 6e 74 73 2c 20 27 6f 70 74 69 6f 6e 73 27 20 3d 3e 20 24 69 6e 70 75 74 4f 70 74 69 6f 6e ments,.'options'.=>.$inputOption
ce8c0 73 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 s);.}.......private.function.get
ce8e0 43 6f 6d 6d 61 6e 64 44 61 74 61 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a CommandData(Command.$command).{.
ce900 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e $command->getSynopsis();.$comman
ce920 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 d->mergeApplicationDefinition(fa
ce940 6c 73 65 29 3b 0a 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 lse);..return.array(.'name'.=>.$
ce960 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 75 73 61 67 65 27 20 3d 3e 20 61 command->getName(),.'usage'.=>.a
ce980 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 rray_merge(array($command->getSy
ce9a0 6e 6f 70 73 69 73 28 29 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 55 73 61 67 65 73 28 29 nopsis()),.$command->getUsages()
ce9c0 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2c 0a 27 64 65 73 63 ,.$command->getAliases()),.'desc
ce9e0 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 44 65 73 63 72 69 70 ription'.=>.$command->getDescrip
cea00 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 64 2d 3e 67 65 74 50 tion(),.'help'.=>.$command->getP
cea20 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 2c 0a 27 64 65 66 69 6e 69 74 69 6f 6e 27 20 3d 3e 20 rocessedHelp(),.'definition'.=>.
cea40 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 74 61 28 24 63 $this->getInputDefinitionData($c
cea60 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 2c 0a ommand->getNativeDefinition()),.
cea80 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
ceaa0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 .Symfony\Component\Console\Descr
ceac0 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f iptor;..use.Symfony\Component\Co
ceae0 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 nsole\Application;.use.Symfony\C
ceb00 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 omponent\Console\Command\Command
ceb20 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\
ceb40 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 79 Input\InputArgument;.use.Symfony
ceb60 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 44 65 \Component\Console\Input\InputDe
ceb80 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c finition;.use.Symfony\Component\
ceba0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a Console\Input\InputOption;......
cebc0 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 ...class.MarkdownDescriptor.exte
cebe0 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 nds.Descriptor.{....protected.fu
cec00 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
cec20 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
cec40 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a ions.=.array()).{.$this->write(.
cec60 27 2a 2a 27 2e 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e '**'.$argument->getName().':**'.
cec80 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 4e 61 6d 65 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 "\n\n"..'*.Name:.'.($argument->g
ceca0 65 74 4e 61 6d 65 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 etName().?:.'<none>')."\n"..'*.I
cecc0 73 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 s.required:.'.($argument->isRequ
cece0 69 72 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 ired().?.'yes'.:.'no')."\n"..'*.
ced00 49 73 20 61 72 72 61 79 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 Is.array:.'.($argument->isArray(
ced20 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 ).?.'yes'.:.'no')."\n"..'*.Descr
ced40 69 70 74 69 6f 6e 3a 20 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 73 2a 5b 5c 72 5c iption:.'.preg_replace('/\s*[\r\
ced60 6e 5d 5c 73 2a 2f 27 2c 20 22 5c 6e 20 20 22 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 n]\s*/',."\n..",.$argument->getD
ced80 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"..
ceda0 27 2a 20 44 65 66 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c '*.Default:.`'.str_replace("\n",
cedc0 20 27 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 .'',.var_export($argument->getDe
cede0 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 0a 0a 0a 70 72 6f fault(),.true)).'`'.);.}.....pro
cee00 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
cee20 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.$
cee40 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
cee60 65 28 0a 27 2a 2a 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 e(.'**'.$option->getName().':**'
cee80 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 4e 61 6d 65 3a 20 60 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e ."\n\n"..'*.Name:.`--'.$option->
ceea0 67 65 74 4e 61 6d 65 28 29 2e 27 60 27 2e 22 5c 6e 22 0a 2e 27 2a 20 53 68 6f 72 74 63 75 74 3a getName().'`'."\n"..'*.Shortcut:
ceec0 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 60 2d .'.($option->getShortcut().?.'`-
ceee0 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 20 24 6f 70 '.implode('|-',.explode('|',.$op
cef00 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f tion->getShortcut())).'`'.:.'<no
cef20 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 41 63 63 65 70 74 20 76 61 6c 75 65 3a 20 27 2e 28 ne>')."\n"..'*.Accept.value:.'.(
cef40 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 27 79 65 73 27 20 3a $option->acceptValue().?.'yes'.:
cef60 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 76 61 6c 75 65 20 72 65 71 75 69 72 65 .'no')."\n"..'*.Is.value.require
cef80 64 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 d:.'.($option->isValueRequired()
cefa0 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 6d 75 6c .?.'yes'.:.'no')."\n"..'*.Is.mul
cefc0 74 69 70 6c 65 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 tiple:.'.($option->isArray().?.'
cefe0 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
cf000 6e 3a 20 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 73 2a 5b 5c 72 5c 6e 5d 5c 73 2a n:.'.preg_replace('/\s*[\r\n]\s*
cf020 2f 27 2c 20 22 5c 6e 20 20 22 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 /',."\n..",.$option->getDescript
cf040 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 61 ion().?:.'<none>')."\n"..'*.Defa
cf060 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 ult:.`'.str_replace("\n",.'',.va
cf080 72 5f 65 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 r_export($option->getDefault(),.
cf0a0 74 72 75 65 29 29 2e 27 60 27 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 true)).'`'.);.}.....protected.fu
cf0c0 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
cf0e0 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
cf100 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 24 73 68 6f y.$options.=.array()).{.if.($sho
cf120 77 41 72 67 75 6d 65 6e 74 73 20 3d 20 63 6f 75 6e 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e wArguments.=.count($definition->
cf140 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 getArguments()).>.0).{.$this->wr
cf160 69 74 65 28 27 23 23 23 20 41 72 67 75 6d 65 6e 74 73 3a 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 ite('###.Arguments:');.foreach.(
cf180 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 20 61 73 20 24 $definition->getArguments().as.$
cf1a0 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 argument).{.$this->write("\n\n")
cf1c0 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e ;.$this->write($this->describeIn
cf1e0 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 putArgument($argument));.}.}..if
cf200 20 28 63 6f 75 6e 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 .(count($definition->getOptions(
cf220 29 29 20 3e 20 30 29 20 7b 0a 69 66 20 28 24 73 68 6f 77 41 72 67 75 6d 65 6e 74 73 29 20 7b 0a )).>.0).{.if.($showArguments).{.
cf240 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e $this->write("\n\n");.}..$this->
cf260 77 72 69 74 65 28 27 23 23 23 20 4f 70 74 69 6f 6e 73 3a 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 write('###.Options:');.foreach.(
cf280 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 $definition->getOptions().as.$op
cf2a0 74 69 6f 6e 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 24 74 tion).{.$this->write("\n\n");.$t
cf2c0 68 69 73 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f his->write($this->describeInputO
cf2e0 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 ption($option));.}.}.}.....prote
cf300 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 61 6e 64 28 43 6f cted.function.describeCommand(Co
cf320 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 69 6f 6e 73 20 3d mmand.$command,.array.$options.=
cf340 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 .array()).{.$command->getSynopsi
cf360 73 28 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 s();.$command->mergeApplicationD
cf380 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 efinition(false);..$this->write(
cf3a0 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 5c 6e 22 0a 2e 73 74 72 5f 72 .$command->getName()."\n"..str_r
cf3c0 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e epeat('-',.strlen($command->getN
cf3e0 61 6d 65 28 29 29 29 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 ame()))."\n\n"..'*.Description:.
cf400 27 2e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a '.($command->getDescription().?:
cf420 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 55 73 61 67 65 3a 27 2e 22 5c 6e 5c .'<none>')."\n"..'*.Usage:'."\n\
cf440 6e 22 0a 2e 61 72 72 61 79 5f 72 65 64 75 63 65 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 n"..array_reduce(array_merge(arr
cf460 61 79 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 29 2c 20 24 63 6f ay($command->getSynopsis()),.$co
cf480 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 mmand->getAliases(),.$command->g
cf4a0 65 74 55 73 61 67 65 73 28 29 29 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 63 61 72 72 79 2c 20 24 etUsages()),.function.($carry,.$
cf4c0 75 73 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 61 72 72 79 20 2e 3d 20 27 20 20 2a 20 60 usage).{.return.$carry..=.'..*.`
cf4e0 27 2e 24 75 73 61 67 65 2e 27 60 27 2e 22 5c 6e 22 3b 0a 7d 29 0a 29 3b 0a 0a 69 66 20 28 24 68 '.$usage.'`'."\n";.}).);..if.($h
cf500 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 48 65 6c 70 elp.=.$command->getProcessedHelp
cf520 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d ()).{.$this->write("\n");.$this-
cf540 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 6d 61 6e 64 2d 3e >write($help);.}..if.($command->
cf560 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 69 73 2d 3e getNativeDefinition()).{.$this->
cf580 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 72 69 62 65 49 6e write("\n\n");.$this->describeIn
cf5a0 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 74 4e 61 74 69 76 putDefinition($command->getNativ
cf5c0 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 6f 74 65 63 74 65 eDefinition());.}.}.....protecte
cf5e0 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 6e 28 41 d.function.describeApplication(A
cf600 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 79 20 24 pplication.$application,.array.$
cf620 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 72 69 62 65 64 4e options.=.array()).{.$describedN
cf640 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 27 6e 61 6d 65 73 amespace.=.isset($options['names
cf660 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 61 63 65 27 5d 20 pace']).?.$options['namespace'].
cf680 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 20 41 70 70 6c 69 :.null;.$description.=.new.Appli
cf6a0 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 74 69 6f 6e 2c 20 cationDescription($application,.
cf6c0 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 69 73 2d 3e 77 72 $describedNamespace);..$this->wr
cf6e0 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 29 2e 22 5c 6e 22 ite($application->getName()."\n"
cf700 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 70 70 6c 69 63 61 .str_repeat('=',.strlen($applica
cf720 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 63 68 20 28 24 64 tion->getName())));..foreach.($d
cf740 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 escription->getNamespaces().as.$
cf760 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 6f 6e 44 65 73 63 namespace).{.if.(ApplicationDesc
cf780 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 3d 3d 20 24 6e ription::GLOBAL_NAMESPACE.!==.$n
cf7a0 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 69 74 65 28 22 amespace['id']).{.$this->write("
cf7c0 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 24 6e 61 6d 65 73 \n\n");.$this->write('**'.$names
cf7e0 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 73 2d 3e 77 72 69 pace['id'].':**');.}..$this->wri
cf800 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 6d 70 6c 6f 64 65 te("\n\n");.$this->write(implode
cf820 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 6d 6d ("\n",.array_map(function.($comm
cf840 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 6d 6d 61 6e 64 4e andName).{.return.'*.'.$commandN
cf860 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 64 73 27 5d 29 29 ame;.},.$namespace['commands']))
cf880 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 );.}..foreach.($description->get
cf8a0 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d Commands().as.$command).{.$this-
cf8c0 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 68 >write("\n\n");.$this->write($th
cf8e0 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 6e 64 29 29 3b 0a is->describeCommand($command));.
cf900 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 }.}.}.<?php...........namespace.
cf920 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 Symfony\Component\Console\Descri
cf940 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ptor;..use.Symfony\Component\Con
cf960 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f sole\Application;.use.Symfony\Co
cf980 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b mponent\Console\Command\Command;
cf9a0 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
cf9c0 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\
cf9e0 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 44 65 66 Component\Console\Input\InputDef
cfa00 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 inition;.use.Symfony\Component\C
cfa20 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a onsole\Input\InputOption;.......
cfa40 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 65 6e 64 73 20 44 ..class.TextDescriptor.extends.D
cfa60 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
cfa80 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
cfaa0 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.
cfac0 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d =.array()).{.if.(null.!==.$argum
cfae0 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 ent->getDefault().&&.(!is_array(
cfb00 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e $argument->getDefault()).||.coun
cfb20 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 t($argument->getDefault()))).{.$
cfb40 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 5b 64 65 default.=.sprintf('<comment>.[de
cfb60 66 61 75 6c 74 3a 20 25 73 5d 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f fault:.%s]</comment>',.$this->fo
cfb80 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 rmatDefaultValue($argument->getD
cfba0 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 efault()));.}.else.{.$default.=.
cfbc0 27 27 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 '';.}..$totalWidth.=.isset($opti
cfbe0 6f 6e 73 5b 27 74 6f 74 61 6c 5f 77 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 ons['total_width']).?.$options['
cfc00 74 6f 74 61 6c 5f 77 69 64 74 68 27 5d 20 3a 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 total_width'].:.strlen($argument
cfc20 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 73 70 61 63 69 6e 67 57 69 64 74 68 20 3d 20 24 74 ->getName());.$spacingWidth.=.$t
cfc40 6f 74 61 6c 57 69 64 74 68 20 2d 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 otalWidth.-.strlen($argument->ge
cfc60 74 4e 61 6d 65 28 29 29 20 2b 20 32 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 tName()).+.2;..$this->writeText(
cfc80 73 70 72 69 6e 74 66 28 27 20 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 25 73 25 73 sprintf('..<info>%s</info>%s%s%s
cfca0 27 2c 0a 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 73 74 72 5f 72 65 70 ',.$argument->getName(),.str_rep
cfcc0 65 61 74 28 27 20 27 2c 20 24 73 70 61 63 69 6e 67 57 69 64 74 68 29 2c 0a 0a 20 70 72 65 67 5f eat('.',.$spacingWidth),...preg_
cfce0 72 65 70 6c 61 63 65 28 27 2f 5c 73 2a 5b 5c 72 5c 6e 5d 5c 73 2a 2f 27 2c 20 22 5c 6e 22 2e 73 replace('/\s*[\r\n]\s*/',."\n".s
cfd00 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 74 6f 74 61 6c 57 69 64 74 68 20 2b 20 31 37 29 tr_repeat('.',.$totalWidth.+.17)
cfd20 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 0a ,.$argument->getDescription()),.
cfd40 24 64 65 66 61 75 6c 74 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f $default.),.$options);.}.....pro
cfd60 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
cfd80 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.$
cfda0 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 24 6f 70 74 69 6f 6e options.=.array()).{.if.($option
cfdc0 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f 70 74 ->acceptValue().&&.null.!==.$opt
cfde0 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 ion->getDefault().&&.(!is_array(
cfe00 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 $option->getDefault()).||.count(
cfe20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 61 $option->getDefault()))).{.$defa
cfe40 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 5b 64 65 66 61 75 6c ult.=.sprintf('<comment>.[defaul
cfe60 74 3a 20 25 73 5d 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 t:.%s]</comment>',.$this->format
cfe80 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 DefaultValue($option->getDefault
cfea0 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a ()));.}.else.{.$default.=.'';.}.
cfec0 0a 24 76 61 6c 75 65 20 3d 20 27 27 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 .$value.=.'';.if.($option->accep
cfee0 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 27 3d 27 2e 73 74 72 74 6f 75 70 tValue()).{.$value.=.'='.strtoup
cff00 70 65 72 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 69 66 20 28 24 6f per($option->getName());..if.($o
cff20 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a 24 76 61 6c ption->isValueOptional()).{.$val
cff40 75 65 20 3d 20 27 5b 27 2e 24 76 61 6c 75 65 2e 27 5d 27 3b 0a 7d 0a 7d 0a 0a 24 74 6f 74 61 6c ue.=.'['.$value.']';.}.}..$total
cff60 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 74 6f 74 61 6c 5f 77 69 Width.=.isset($options['total_wi
cff80 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 74 6f 74 61 6c 5f 77 69 64 74 68 27 5d dth']).?.$options['total_width']
cffa0 20 3a 20 24 74 68 69 73 2d 3e 63 61 6c 63 75 6c 61 74 65 54 6f 74 61 6c 57 69 64 74 68 46 6f 72 .:.$this->calculateTotalWidthFor
cffc0 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 24 73 79 6e 6f 70 73 Options(array($option));.$synops
cffe0 69 73 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 25 73 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 is.=.sprintf('%s%s',.$option->ge
d0000 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 2d 25 73 2c 20 27 2c 20 24 tShortcut().?.sprintf('-%s,.',.$
d0020 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 20 20 20 20 27 2c option->getShortcut()).:.'....',
d0040 0a 73 70 72 69 6e 74 66 28 27 2d 2d 25 73 25 73 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e .sprintf('--%s%s',.$option->getN
d0060 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 0a 29 3b 0a 0a 24 73 70 61 63 69 6e 67 57 69 64 74 68 ame(),.$value).);..$spacingWidth
d0080 20 3d 20 24 74 6f 74 61 6c 57 69 64 74 68 20 2d 20 73 74 72 6c 65 6e 28 24 73 79 6e 6f 70 73 69 .=.$totalWidth.-.strlen($synopsi
d00a0 73 29 20 2b 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 s).+.2;..$this->writeText(sprint
d00c0 66 28 27 20 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 25 73 25 73 25 73 27 2c 0a 24 f('..<info>%s</info>%s%s%s%s',.$
d00e0 73 79 6e 6f 70 73 69 73 2c 0a 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 73 70 61 63 69 synopsis,.str_repeat('.',.$spaci
d0100 6e 67 57 69 64 74 68 29 2c 0a 0a 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 73 2a 5b 5c ngWidth),...preg_replace('/\s*[\
d0120 72 5c 6e 5d 5c 73 2a 2f 27 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 r\n]\s*/',."\n".str_repeat('.',.
d0140 24 74 6f 74 61 6c 57 69 64 74 68 20 2b 20 31 37 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 $totalWidth.+.17),.$option->getD
d0160 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6f 70 74 69 6f 6e escription()),.$default,.$option
d0180 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 6d 75 6c 74 69 70 ->isArray().?.'<comment>.(multip
d01a0 6c 65 20 76 61 6c 75 65 73 20 61 6c 6c 6f 77 65 64 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 20 3a 20 le.values.allowed)</comment>'.:.
d01c0 27 27 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ''.),.$options);.}.....protected
d01e0 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 69 6f .function.describeInputDefinitio
d0200 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 20 61 n(InputDefinition.$definition,.a
d0220 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 6f 74 61 rray.$options.=.array()).{.$tota
d0240 6c 57 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 63 61 6c 63 75 6c 61 74 65 54 6f 74 61 6c 57 69 lWidth.=.$this->calculateTotalWi
d0260 64 74 68 46 6f 72 4f 70 74 69 6f 6e 73 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 dthForOptions($definition->getOp
d0280 74 69 6f 6e 73 28 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 3e tions());.foreach.($definition->
d02a0 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 getArguments().as.$argument).{.$
d02c0 74 6f 74 61 6c 57 69 64 74 68 20 3d 20 6d 61 78 28 24 74 6f 74 61 6c 57 69 64 74 68 2c 20 73 74 totalWidth.=.max($totalWidth,.st
d02e0 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 0a rlen($argument->getName()));.}..
d0300 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 if.($definition->getArguments())
d0320 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 41 72 .{.$this->writeText('<comment>Ar
d0340 67 75 6d 65 6e 74 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 guments:</comment>',.$options);.
d0360 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 66 6f 72 65 61 63 68 20 $this->writeText("\n");.foreach.
d0380 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 20 61 73 20 ($definition->getArguments().as.
d03a0 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 $argument).{.$this->describeInpu
d03c0 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 5f 6d 65 72 67 65 tArgument($argument,.array_merge
d03e0 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 74 6f 74 61 6c 5f 77 69 64 74 68 27 20 3d ($options,.array('total_width'.=
d0400 3e 20 24 74 6f 74 61 6c 57 69 64 74 68 29 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 >.$totalWidth)));.$this->writeTe
d0420 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 69 74 69 6f 6e 2d 3e xt("\n");.}.}..if.($definition->
d0440 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 74 69 6f 6e 2d 3e 67 getArguments().&&.$definition->g
d0460 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 78 74 28 etOptions()).{.$this->writeText(
d0480 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 2d 3e 67 65 74 4f 70 "\n");.}..if.($definition->getOp
d04a0 74 69 6f 6e 73 28 29 29 20 7b 0a 24 6c 61 74 65 72 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 tions()).{.$laterOptions.=.array
d04c0 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e ();..$this->writeText('<comment>
d04e0 4f 70 74 69 6f 6e 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 Options:</comment>',.$options);.
d0500 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 74 69 6f 6e 73 foreach.($definition->getOptions
d0520 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6f 70 74 ().as.$option).{.if.(strlen($opt
d0540 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3e 20 31 29 20 7b 0a 24 6c 61 74 65 ion->getShortcut()).>.1).{.$late
d0560 72 4f 70 74 69 6f 6e 73 5b 5d 20 3d 20 24 6f 70 74 69 6f 6e 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a rOptions[].=.$option;.continue;.
d0580 7d 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 69 73 2d }.$this->writeText("\n");.$this-
d05a0 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 2c 20 61 72 >describeInputOption($option,.ar
d05c0 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 74 6f 74 61 6c ray_merge($options,.array('total
d05e0 5f 77 69 64 74 68 27 20 3d 3e 20 24 74 6f 74 61 6c 57 69 64 74 68 29 29 29 3b 0a 7d 0a 66 6f 72 _width'.=>.$totalWidth)));.}.for
d0600 65 61 63 68 20 28 24 6c 61 74 65 72 4f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 each.($laterOptions.as.$option).
d0620 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 69 73 2d {.$this->writeText("\n");.$this-
d0640 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 2c 20 61 72 >describeInputOption($option,.ar
d0660 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 74 6f 74 61 6c ray_merge($options,.array('total
d0680 5f 77 69 64 74 68 27 20 3d 3e 20 24 74 6f 74 61 6c 57 69 64 74 68 29 29 29 3b 0a 7d 0a 7d 0a 7d _width'.=>.$totalWidth)));.}.}.}
d06a0 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
d06c0 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 72 61 79 20 Command(Command.$command,.array.
d06e0 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 61 6e 64 2d 3e $options.=.array()).{.$command->
d0700 67 65 74 53 79 6e 6f 70 73 69 73 28 74 72 75 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 getSynopsis(true);.$command->get
d0720 53 79 6e 6f 70 73 69 73 28 66 61 6c 73 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 Synopsis(false);.$command->merge
d0740 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 ApplicationDefinition(false);..$
d0760 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a this->writeText('<comment>Usage:
d0780 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 66 6f 72 65 61 63 68 20 </comment>',.$options);.foreach.
d07a0 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 (array_merge(array($command->get
d07c0 53 79 6e 6f 70 73 69 73 28 74 72 75 65 29 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c Synopsis(true)),.$command->getAl
d07e0 69 61 73 65 73 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 55 73 61 67 65 73 28 29 29 20 iases(),.$command->getUsages()).
d0800 61 73 20 24 75 73 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c as.$usage).{.$this->writeText("\
d0820 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 20 20 27 2e 24 75 73 61 67 n");.$this->writeText('..'.$usag
d0840 65 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 e,.$options);.}.$this->writeText
d0860 28 22 5c 6e 22 29 3b 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d ("\n");..$definition.=.$command-
d0880 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 64 65 66 >getNativeDefinition();.if.($def
d08a0 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 7c 7c 20 24 64 65 66 69 6e 69 inition->getOptions().||.$defini
d08c0 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 tion->getArguments()).{.$this->w
d08e0 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 72 69 62 65 49 riteText("\n");.$this->describeI
d0900 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 20 24 6f 70 74 nputDefinition($definition,.$opt
d0920 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d ions);.$this->writeText("\n");.}
d0940 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 ..if.($help.=.$command->getProce
d0960 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 54 65 78 74 28 22 ssedHelp()).{.$this->writeText("
d0980 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 \n");.$this->writeText('<comment
d09a0 3e 48 65 6c 70 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 24 74 >Help:</comment>',.$options);.$t
d09c0 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 his->writeText("\n");.$this->wri
d09e0 74 65 54 65 78 74 28 27 20 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e teText('.'.str_replace("\n",."\n
d0a00 20 22 2c 20 24 68 65 6c 70 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 .",.$help),.$options);.$this->wr
d0a20 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 iteText("\n");.}.}.....protected
d0a40 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 6e 28 41 70 .function.describeApplication(Ap
d0a60 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 79 20 24 6f plication.$application,.array.$o
d0a80 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 72 69 62 65 64 4e 61 ptions.=.array()).{.$describedNa
d0aa0 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 27 6e 61 6d 65 73 70 mespace.=.isset($options['namesp
d0ac0 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 61 63 65 27 5d 20 3a ace']).?.$options['namespace'].:
d0ae0 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 20 41 70 70 6c 69 63 .null;.$description.=.new.Applic
d0b00 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 74 69 6f 6e 2c 20 24 ationDescription($application,.$
d0b20 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 describedNamespace);..if.(isset(
d0b40 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e $options['raw_text']).&&.$option
d0b60 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d s['raw_text']).{.$width.=.$this-
d0b80 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 69 6f 6e 2d 3e 67 65 >getColumnWidth($description->ge
d0ba0 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 tCommands());..foreach.($descrip
d0bc0 74 69 6f 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 tion->getCommands().as.$command)
d0be0 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 66 28 22 25 2d 24 .{.$this->writeText(sprintf("%-$
d0c00 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 {width}s.%s",.$command->getName(
d0c20 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 20 ),.$command->getDescription()),.
d0c40 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 $options);.$this->writeText("\n"
d0c60 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 27 27 20 21 3d 20 24 68 65 6c 70 20 3d 20 );.}.}.else.{.if.(''.!=.$help.=.
d0c80 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 $application->getHelp()).{.$this
d0ca0 2d 3e 77 72 69 74 65 54 65 78 74 28 22 24 68 65 6c 70 5c 6e 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e ->writeText("$help\n\n",.$option
d0cc0 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 3c 63 6f 6d 6d 65 6e s);.}..$this->writeText("<commen
d0ce0 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 t>Usage:</comment>\n",.$options)
d0d00 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 20 20 63 6f 6d 6d 61 6e 64 20 5b 6f ;.$this->writeText("..command.[o
d0d20 70 74 69 6f 6e 73 5d 20 5b 61 72 67 75 6d 65 6e 74 73 5d 5c 6e 5c 6e 22 2c 20 24 6f 70 74 69 6f ptions].[arguments]\n\n",.$optio
d0d40 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 ns);..$this->describeInputDefini
d0d60 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 61 70 70 6c 69 63 tion(new.InputDefinition($applic
d0d80 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 4f 70 74 69 6f ation->getDefinition()->getOptio
d0da0 6e 73 28 29 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 ns()),.$options);..$this->writeT
d0dc0 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 22 5c 6e 22 ext("\n");.$this->writeText("\n"
d0de0 29 3b 0a 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 );..$width.=.$this->getColumnWid
d0e00 74 68 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b th($description->getCommands());
d0e20 0a 0a 69 66 20 28 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 74 68 ..if.($describedNamespace).{.$th
d0e40 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e is->writeText(sprintf('<comment>
d0e60 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 22 25 73 22 20 Available.commands.for.the."%s".
d0e80 6e 61 6d 65 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 64 65 73 63 72 69 62 65 namespace:</comment>',.$describe
d0ea0 64 4e 61 6d 65 73 70 61 63 65 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 20 65 6c 73 65 20 7b dNamespace),.$options);.}.else.{
d0ec0 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 .$this->writeText('<comment>Avai
d0ee0 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 lable.commands:</comment>',.$opt
d0f00 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f ions);.}....foreach.($descriptio
d0f20 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 n->getNamespaces().as.$namespace
d0f40 29 20 7b 0a 69 66 20 28 21 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 26 26 20 ).{.if.(!$describedNamespace.&&.
d0f60 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e ApplicationDescription::GLOBAL_N
d0f80 41 4d 45 53 50 41 43 45 20 21 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b AMESPACE.!==.$namespace['id']).{
d0fa0 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 69 73 2d 3e .$this->writeText("\n");.$this->
d0fc0 77 72 69 74 65 54 65 78 74 28 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 6e 61 6d 65 73 70 61 63 writeText('.<comment>'.$namespac
d0fe0 65 5b 27 69 64 27 5d 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b e['id'].'</comment>',.$options);
d1000 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 .}..foreach.($namespace['command
d1020 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 s'].as.$name).{.$this->writeText
d1040 28 22 5c 6e 22 29 3b 0a 24 73 70 61 63 69 6e 67 57 69 64 74 68 20 3d 20 24 77 69 64 74 68 20 2d ("\n");.$spacingWidth.=.$width.-
d1060 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 .strlen($name);.$this->writeText
d1080 28 73 70 72 69 6e 74 66 28 27 20 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 25 73 27 (sprintf('..<info>%s</info>%s%s'
d10a0 2c 20 24 6e 61 6d 65 2c 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 73 70 61 63 69 6e ,.$name,.str_repeat('.',.$spacin
d10c0 67 57 69 64 74 68 29 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e gWidth),.$description->getComman
d10e0 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 20 24 6f 70 d($name)->getDescription()),.$op
d1100 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c tions);.}.}..$this->writeText("\
d1120 6e 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 n");.}.}.....private.function.wr
d1140 69 74 65 54 65 78 74 28 24 63 6f 6e 74 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 iteText($content,.array.$options
d1160 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 69 73 73 65 .=.array()).{.$this->write(.isse
d1180 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 t($options['raw_text']).&&.$opti
d11a0 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 63 6f ons['raw_text'].?.strip_tags($co
d11c0 6e 74 65 6e 74 29 20 3a 20 24 63 6f 6e 74 65 6e 74 2c 0a 69 73 73 65 74 28 24 6f 70 74 69 6f 6e ntent).:.$content,.isset($option
d11e0 73 5b 27 72 61 77 5f 6f 75 74 70 75 74 27 5d 29 20 3f 20 21 24 6f 70 74 69 6f 6e 73 5b 27 72 61 s['raw_output']).?.!$options['ra
d1200 77 5f 6f 75 74 70 75 74 27 5d 20 3a 20 74 72 75 65 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 w_output'].:.true.);.}.........p
d1220 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c rivate.function.formatDefaultVal
d1240 75 65 28 24 64 65 66 61 75 6c 74 29 0a 7b 0a 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 ue($default).{.if.(PHP_VERSION_I
d1260 44 20 3c 20 35 30 34 30 30 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 D.<.50400).{.return.str_replace(
d1280 27 5c 2f 27 2c 20 27 2f 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 29 '\/',.'/',.json_encode($default)
d12a0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c );.}..return.json_encode($defaul
d12c0 74 2c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 7c 20 4a 53 4f 4e t,.JSON_UNESCAPED_SLASHES.|.JSON
d12e0 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 _UNESCAPED_UNICODE);.}.......pri
d1300 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 61 72 72 vate.function.getColumnWidth(arr
d1320 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 77 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 ay.$commands).{.$widths.=.array(
d1340 29 3b 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 63 6f 6d 6d 61 );..foreach.($commands.as.$comma
d1360 6e 64 29 20 7b 0a 24 77 69 64 74 68 73 5b 5d 20 3d 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e nd).{.$widths[].=.strlen($comman
d1380 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 d->getName());.foreach.($command
d13a0 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 77 69 64 ->getAliases().as.$alias).{.$wid
d13c0 74 68 73 5b 5d 20 3d 20 73 74 72 6c 65 6e 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 ths[].=.strlen($alias);.}.}..ret
d13e0 75 72 6e 20 6d 61 78 28 24 77 69 64 74 68 73 29 20 2b 20 32 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 urn.max($widths).+.2;.}.......pr
d1400 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 54 6f 74 61 6c 57 69 64 ivate.function.calculateTotalWid
d1420 74 68 46 6f 72 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 6f 74 61 6c 57 thForOptions($options).{.$totalW
d1440 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 idth.=.0;.foreach.($options.as.$
d1460 6f 70 74 69 6f 6e 29 20 7b 0a 0a 20 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 31 20 2b 20 6d 61 option).{...$nameLength.=.1.+.ma
d1480 78 28 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 x(strlen($option->getShortcut())
d14a0 2c 20 31 29 20 2b 20 34 20 2b 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 ,.1).+.4.+.strlen($option->getNa
d14c0 6d 65 28 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 me());..if.($option->acceptValue
d14e0 28 29 29 20 7b 0a 24 76 61 6c 75 65 4c 65 6e 67 74 68 20 3d 20 31 20 2b 20 73 74 72 6c 65 6e 28 ()).{.$valueLength.=.1.+.strlen(
d1500 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 20 0a 20 24 76 61 6c 75 65 4c 65 6e $option->getName());...$valueLen
d1520 67 74 68 20 2b 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 gth.+=.$option->isValueOptional(
d1540 29 20 3f 20 32 20 3a 20 30 3b 20 0a 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 24 76 61 6c ).?.2.:.0;...$nameLength.+=.$val
d1560 75 65 4c 65 6e 67 74 68 3b 0a 7d 0a 24 74 6f 74 61 6c 57 69 64 74 68 20 3d 20 6d 61 78 28 24 74 ueLength;.}.$totalWidth.=.max($t
d1580 6f 74 61 6c 57 69 64 74 68 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 otalWidth,.$nameLength);.}..retu
d15a0 72 6e 20 24 74 6f 74 61 6c 57 69 64 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a rn.$totalWidth;.}.}.<?php.......
d15c0 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\
d15e0 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Console\Descriptor;..use.Symfony
d1600 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 0a \Component\Console\Application;.
d1620 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f use.Symfony\Component\Console\Co
d1640 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 70 6f mmand\Command;.use.Symfony\Compo
d1660 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 nent\Console\Input\InputArgument
d1680 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\
d16a0 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f Input\InputDefinition;.use.Symfo
d16c0 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
d16e0 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 58 6d 6c 44 65 73 63 72 69 70 Option;.........class.XmlDescrip
d1700 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 tor.extends.Descriptor.{......pu
d1720 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e blic.function.getInputDefinition
d1740 44 6f 63 75 6d 65 6e 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 Document(InputDefinition.$defini
d1760 74 69 6f 6e 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 tion).{.$dom.=.new.\DOMDocument(
d1780 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 69 '1.0',.'UTF-8');.$dom->appendChi
d17a0 6c 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 ld($definitionXML.=.$dom->create
d17c0 45 6c 65 6d 65 6e 74 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 29 3b 0a 0a 24 64 65 66 69 6e 69 Element('definition'));..$defini
d17e0 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 72 67 75 6d 65 6e 74 73 58 tionXML->appendChild($argumentsX
d1800 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 61 72 67 75 6d 65 ML.=.$dom->createElement('argume
d1820 6e 74 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 3e 67 65 nts'));.foreach.($definition->ge
d1840 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 tArguments().as.$argument).{.$th
d1860 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c is->appendDocument($argumentsXML
d1880 2c 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 6f 63 75 6d 65 6e ,.$this->getInputArgumentDocumen
d18a0 74 28 24 61 72 67 75 6d 65 6e 74 29 29 3b 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c t($argument));.}..$definitionXML
d18c0 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d ->appendChild($optionsXML.=.$dom
d18e0 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 73 27 29 29 3b 0a 66 6f 72 ->createElement('options'));.for
d1900 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 each.($definition->getOptions().
d1920 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d as.$option).{.$this->appendDocum
d1940 65 6e 74 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 ent($optionsXML,.$this->getInput
d1960 4f 70 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 OptionDocument($option));.}..ret
d1980 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f urn.$dom;.}.......public.functio
d19a0 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f n.getCommandDocument(Command.$co
d19c0 6d 6d 61 6e 64 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 mmand).{.$dom.=.new.\DOMDocument
d19e0 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
d1a00 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c ild($commandXML.=.$dom->createEl
d1a20 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 ement('command'));..$command->ge
d1a40 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c tSynopsis();.$command->mergeAppl
d1a60 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 63 6f 6d 6d icationDefinition(false);..$comm
d1a80 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 63 6f 6d 6d andXML->setAttribute('id',.$comm
d1aa0 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 and->getName());.$commandXML->se
d1ac0 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 tAttribute('name',.$command->get
d1ae0 4e 61 6d 65 28 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 Name());..$commandXML->appendChi
d1b00 6c 64 28 24 75 73 61 67 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d ld($usagesXML.=.$dom->createElem
d1b20 65 6e 74 28 27 75 73 61 67 65 73 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f ent('usages'));..foreach.(array_
d1b40 6d 65 72 67 65 28 61 72 72 61 79 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 merge(array($command->getSynopsi
d1b60 73 28 29 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 2c 20 24 63 s()),.$command->getAliases(),.$c
d1b80 6f 6d 6d 61 6e 64 2d 3e 67 65 74 55 73 61 67 65 73 28 29 29 20 61 73 20 24 75 73 61 67 65 29 20 ommand->getUsages()).as.$usage).
d1ba0 7b 0a 24 75 73 61 67 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e {.$usagesXML->appendChild($dom->
d1bc0 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 75 73 61 67 65 27 2c 20 24 75 73 61 67 65 29 29 3b createElement('usage',.$usage));
d1be0 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 .}..$commandXML->appendChild($de
d1c00 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 scriptionXML.=.$dom->createEleme
d1c20 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e nt('description'));.$description
d1c40 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 XML->appendChild($dom->createTex
d1c60 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 tNode(str_replace("\n",."\n.",.$
d1c80 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 29 3b 0a 0a 24 command->getDescription())));..$
d1ca0 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 68 65 6c 70 58 4d 4c commandXML->appendChild($helpXML
d1cc0 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 68 65 6c 70 27 29 29 3b .=.$dom->createElement('help'));
d1ce0 0a 24 68 65 6c 70 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 .$helpXML->appendChild($dom->cre
d1d00 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c ateTextNode(str_replace("\n",."\
d1d20 6e 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 n.",.$command->getProcessedHelp(
d1d40 29 29 29 29 3b 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 ))));..$definitionXML.=.$this->g
d1d60 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 etInputDefinitionDocument($comma
d1d80 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 3b 0a 24 74 68 69 nd->getNativeDefinition());.$thi
d1da0 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2c 20 24 s->appendDocument($commandXML,.$
d1dc0 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e definitionXML->getElementsByTagN
d1de0 61 6d 65 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 2d 3e 69 74 65 6d 28 30 29 29 3b 0a 0a 72 65 ame('definition')->item(0));..re
d1e00 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 turn.$dom;.}........public.funct
d1e20 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 41 70 70 6c 69 ion.getApplicationDocument(Appli
d1e40 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 cation.$application,.$namespace.
d1e60 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e =.null).{.$dom.=.new.\DOMDocumen
d1e80 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 t('1.0',.'UTF-8');.$dom->appendC
d1ea0 68 69 6c 64 28 24 72 6f 6f 74 58 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d hild($rootXml.=.$dom->createElem
d1ec0 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 ent('symfony'));..if.($applicati
d1ee0 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 27 55 4e 4b 4e 4f 57 4e 27 29 20 7b 0a 24 on->getName().!==.'UNKNOWN').{.$
d1f00 72 6f 6f 74 58 6d 6c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 61 rootXml->setAttribute('name',.$a
d1f20 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 69 66 20 28 24 61 70 70 pplication->getName());.if.($app
d1f40 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 21 3d 3d 20 27 55 4e 4b 4e lication->getVersion().!==.'UNKN
d1f60 4f 57 4e 27 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 OWN').{.$rootXml->setAttribute('
d1f80 76 65 72 73 69 6f 6e 27 2c 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 version',.$application->getVersi
d1fa0 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c on());.}.}..$rootXml->appendChil
d1fc0 64 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 d($commandsXML.=.$dom->createEle
d1fe0 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e ment('commands'));..$description
d2000 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 .=.new.ApplicationDescription($a
d2020 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 66 20 28 24 6e pplication,.$namespace);..if.($n
d2040 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 amespace).{.$commandsXML->setAtt
d2060 72 69 62 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b ribute('namespace',.$namespace);
d2080 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f .}..foreach.($description->getCo
d20a0 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 mmands().as.$command).{.$this->a
d20c0 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2c 20 24 74 68 69 ppendDocument($commandsXML,.$thi
d20e0 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 29 29 s->getCommandDocument($command))
d2100 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c ;.}..if.(!$namespace).{.$rootXml
d2120 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 20 3d 20 24 ->appendChild($namespacesXML.=.$
d2140 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 73 27 29 dom->createElement('namespaces')
d2160 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 3e 67 65 74 4e 61 );..foreach.($description->getNa
d2180 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 mespaces().as.$namespaceDescript
d21a0 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 ion).{.$namespacesXML->appendChi
d21c0 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 ld($namespaceArrayXML.=.$dom->cr
d21e0 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 29 3b 0a 24 6e 61 6d 65 eateElement('namespace'));.$name
d2200 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 spaceArrayXML->setAttribute('id'
d2220 2c 20 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 69 6f 6e 5b 27 69 64 27 5d 29 3b 0a ,.$namespaceDescription['id']);.
d2240 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 69 6f 6e 5b .foreach.($namespaceDescription[
d2260 27 63 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 'commands'].as.$name).{.$namespa
d2280 63 65 41 72 72 61 79 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 ceArrayXML->appendChild($command
d22a0 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 XML.=.$dom->createElement('comma
d22c0 6e 64 27 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 nd'));.$commandXML->appendChild(
d22e0 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a $dom->createTextNode($name));.}.
d2300 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 }.}..return.$dom;.}.....protecte
d2320 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 d.function.describeInputArgument
d2340 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 (InputArgument.$argument,.array.
d2360 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 $options.=.array()).{.$this->wri
d2380 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 teDocument($this->getInputArgume
d23a0 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 0a 0a 0a 70 72 ntDocument($argument));.}.....pr
d23c0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 otected.function.describeInputOp
d23e0 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 tion(InputOption.$option,.array.
d2400 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 $options.=.array()).{.$this->wri
d2420 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e teDocument($this->getInputOption
d2440 44 6f 63 75 6d 65 6e 74 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 Document($option));.}.....protec
d2460 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 ted.function.describeInputDefini
d2480 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
d24a0 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 74 ,.array.$options.=.array()).{.$t
d24c0 68 69 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 his->writeDocument($this->getInp
d24e0 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 64 65 66 69 6e 69 74 69 6f 6e utDefinitionDocument($definition
d2500 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 ));.}.....protected.function.des
d2520 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
d2540 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 rray.$options.=.array()).{.$this
d2560 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 43 6f 6d 6d 61 6e ->writeDocument($this->getComman
d2580 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 dDocument($command));.}.....prot
d25a0 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 74 69 ected.function.describeApplicati
d25c0 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 72 72 on(Application.$application,.arr
d25e0 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e ay.$options.=.array()).{.$this->
d2600 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 writeDocument($this->getApplicat
d2620 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 69 73 73 65 74 28 ionDocument($application,.isset(
d2640 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e $options['namespace']).?.$option
d2660 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a s['namespace'].:.null));.}......
d2680 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e ..private.function.appendDocumen
d26a0 74 28 5c 44 4f 4d 4e 6f 64 65 20 24 70 61 72 65 6e 74 4e 6f 64 65 2c 20 5c 44 4f 4d 4e 6f 64 65 t(\DOMNode.$parentNode,.\DOMNode
d26c0 20 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 69 6d .$importedParent).{.foreach.($im
d26e0 70 6f 72 74 65 64 50 61 72 65 6e 74 2d 3e 63 68 69 6c 64 4e 6f 64 65 73 20 61 73 20 24 63 68 69 portedParent->childNodes.as.$chi
d2700 6c 64 4e 6f 64 65 29 20 7b 0a 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 61 70 70 65 6e 64 43 68 69 ldNode).{.$parentNode->appendChi
d2720 6c 64 28 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 6f 77 6e 65 72 44 6f 63 75 6d 65 6e 74 2d 3e 69 ld($parentNode->ownerDocument->i
d2740 6d 70 6f 72 74 4e 6f 64 65 28 24 63 68 69 6c 64 4e 6f 64 65 2c 20 74 72 75 65 29 29 3b 0a 7d 0a mportNode($childNode,.true));.}.
d2760 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 77 72 69 74 65 }.........private.function.write
d2780 44 6f 63 75 6d 65 6e 74 28 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 20 24 64 6f 6d 29 0a 7b 0a 24 64 Document(\DOMDocument.$dom).{.$d
d27a0 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e om->formatOutput.=.true;.$this->
d27c0 77 72 69 74 65 28 24 64 6f 6d 2d 3e 73 61 76 65 58 4d 4c 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a write($dom->saveXML());.}.......
d27e0 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 67 75 6d 65 6e private.function.getInputArgumen
d2800 74 44 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e tDocument(InputArgument.$argumen
d2820 74 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e t).{.$dom.=.new.\DOMDocument('1.
d2840 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 0',.'UTF-8');..$dom->appendChild
d2860 28 24 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e ($objectXML.=.$dom->createElemen
d2880 74 28 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 t('argument'));.$objectXML->setA
d28a0 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e ttribute('name',.$argument->getN
d28c0 61 6d 65 28 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 ame());.$objectXML->setAttribute
d28e0 28 27 69 73 5f 72 65 71 75 69 72 65 64 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 ('is_required',.$argument->isReq
d2900 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 uired().?.1.:.0);.$objectXML->se
d2920 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 61 72 72 61 79 27 2c 20 24 61 72 67 75 6d 65 6e 74 tAttribute('is_array',.$argument
d2940 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c ->isArray().?.1.:.0);.$objectXML
d2960 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 ->appendChild($descriptionXML.=.
d2980 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e $dom->createElement('description
d29a0 27 29 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c '));.$descriptionXML->appendChil
d29c0 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 72 67 75 6d 65 6e 74 d($dom->createTextNode($argument
d29e0 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 24 6f 62 6a 65 63 74 58 4d ->getDescription()));..$objectXM
d2a00 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 L->appendChild($defaultsXML.=.$d
d2a20 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a om->createElement('defaults'));.
d2a40 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e $defaults.=.is_array($argument->
d2a60 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 getDefault()).?.$argument->getDe
d2a80 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 fault().:.(is_bool($argument->ge
d2aa0 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($
d2ac0 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 75 65 29 29 20 3a argument->getDefault(),.true)).:
d2ae0 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 .($argument->getDefault().?.arra
d2b00 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 3a 20 61 72 72 y($argument->getDefault()).:.arr
d2b20 61 79 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 ay()));.foreach.($defaults.as.$d
d2b40 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 efault).{.$defaultsXML->appendCh
d2b60 69 6c 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c ild($defaultXML.=.$dom->createEl
d2b80 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e ement('default'));.$defaultXML->
d2ba0 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 appendChild($dom->createTextNode
d2bc0 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a ($default));.}..return.$dom;.}..
d2be0 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 4f 70 .....private.function.getInputOp
d2c00 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e tionDocument(InputOption.$option
d2c20 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
d2c40 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(
d2c60 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
d2c80 28 27 6f 70 74 69 6f 6e 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 ('option'));.$objectXML->setAttr
d2ca0 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e ibute('name',.'--'.$option->getN
d2cc0 61 6d 65 28 29 29 3b 0a 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6f 70 74 69 6f 6e 2d 3e 67 ame());.$pos.=.strpos($option->g
d2ce0 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 27 7c 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d etShortcut(),.'|');.if.(false.!=
d2d00 3d 20 24 70 6f 73 29 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 =.$pos).{.$objectXML->setAttribu
d2d20 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 27 2d 27 2e 73 75 62 73 74 72 28 24 6f 70 74 69 6f te('shortcut',.'-'.substr($optio
d2d40 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 6f 62 n->getShortcut(),.0,.$pos));.$ob
d2d60 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 73 jectXML->setAttribute('shortcuts
d2d80 27 2c 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 ',.'-'.implode('|-',.explode('|'
d2da0 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 29 3b 0a 7d 20 65 ,.$option->getShortcut())));.}.e
d2dc0 6c 73 65 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 lse.{.$objectXML->setAttribute('
d2de0 73 68 6f 72 74 63 75 74 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 shortcut',.$option->getShortcut(
d2e00 29 20 3f 20 27 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3a ).?.'-'.$option->getShortcut().:
d2e20 20 27 27 29 3b 0a 7d 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 .'');.}.$objectXML->setAttribute
d2e40 28 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 ('accept_value',.$option->accept
d2e60 56 61 6c 75 65 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 Value().?.1.:.0);.$objectXML->se
d2e80 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 2c 20 tAttribute('is_value_required',.
d2ea0 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a $option->isValueRequired().?.1.:
d2ec0 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 .0);.$objectXML->setAttribute('i
d2ee0 73 5f 6d 75 6c 74 69 70 6c 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 s_multiple',.$option->isArray().
d2f00 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c ?.1.:.0);.$objectXML->appendChil
d2f20 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 d($descriptionXML.=.$dom->create
d2f40 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 Element('description'));.$descri
d2f60 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 ptionXML->appendChild($dom->crea
d2f80 74 65 54 65 78 74 4e 6f 64 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 teTextNode($option->getDescripti
d2fa0 6f 6e 28 29 29 29 3b 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 on()));..if.($option->acceptValu
d2fc0 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 6f 70 74 e()).{.$defaults.=.is_array($opt
d2fe0 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 ion->getDefault()).?.$option->ge
d3000 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 6f 70 74 69 6f 6e 2d 3e 67 tDefault().:.(is_bool($option->g
d3020 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 etDefault()).?.array(var_export(
d3040 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 $option->getDefault(),.true)).:.
d3060 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 ($option->getDefault().?.array($
d3080 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 option->getDefault()).:.array())
d30a0 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 28 24 64 65 66 61 );.$objectXML->appendChild($defa
d30c0 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 ultsXML.=.$dom->createElement('d
d30e0 65 66 61 75 6c 74 73 27 29 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 65 66 61 75 6c 74 efaults'));..if.(!empty($default
d3100 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 s)).{.foreach.($defaults.as.$def
d3120 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c ault).{.$defaultsXML->appendChil
d3140 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d d($defaultXML.=.$dom->createElem
d3160 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 ent('default'));.$defaultXML->ap
d3180 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 pendChild($dom->createTextNode($
d31a0 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d default));.}.}.}..return.$dom;.}
d31c0 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
d31e0 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 0a 0a 0a fony\Component\Console\Event;...
d3200 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 ....class.ConsoleCommandEvent.ex
d3220 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 52 45 tends.ConsoleEvent.{....const.RE
d3240 54 55 52 4e 5f 43 4f 44 45 5f 44 49 53 41 42 4c 45 44 20 3d 20 31 31 33 3b 0a 0a 0a 0a 0a 0a 0a TURN_CODE_DISABLED.=.113;.......
d3260 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d 20 74 72 75 65 private.$commandShouldRun.=.true
d3280 3b 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 43 ;.......public.function.disableC
d32a0 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 6d 61 6e 64 ommand().{.return.$this->command
d32c0 53 68 6f 75 6c 64 52 75 6e 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ShouldRun.=.false;.}.......publi
d32e0 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 c.function.enableCommand().{.ret
d3300 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 20 74 72 urn.$this->commandShouldRun.=.tr
d3320 75 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 63 6f 6d 6d ue;.}.......public.function.comm
d3340 61 6e 64 53 68 6f 75 6c 64 52 75 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 andShouldRun().{.return.$this->c
d3360 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ommandShouldRun;.}.}.<?php......
d3380 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
d33a0 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \Console\Event;..use.Symfony\Com
d33c0 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;.
d33e0 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
d3400 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
d3420 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
d3440 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\
d3460 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 EventDispatcher\Event;.......cla
d3480 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a ss.ConsoleEvent.extends.Event.{.
d34a0 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 6e protected.$command;..private.$in
d34c0 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 put;.private.$output;..public.fu
d34e0 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 24 63 6f 6d 6d nction.__construct(Command.$comm
d3500 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 20 4f 75 74 70 and,.InputInterface.$input,.Outp
d3520 75 74 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 63 6f utInterface.$output).{.$this->co
d3540 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d mmand.=.$command;.$this->input.=
d3560 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 .$input;.$this->output.=.$output
d3580 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
d35a0 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 6d 61 6e 64 3b 0a mand().{.return.$this->command;.
d35c0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 }.......public.function.getInput
d35e0 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 7d 0a 0a 0a 0a 0a ().{.return.$this->input;.}.....
d3600 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a ..public.function.getOutput().{.
d3620 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a return.$this->output;.}.}.<?php.
d3640 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
d3660 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e onent\Console\Event;..use.Symfon
d3680 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d y\Component\Console\Command\Comm
d36a0 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f and;.use.Symfony\Component\Conso
d36c0 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d le\Input\InputInterface;.use.Sym
d36e0 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
d3700 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f tputInterface;.......class.Conso
d3720 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 leExceptionEvent.extends.Console
d3740 45 76 65 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 70 72 69 76 Event.{.private.$exception;.priv
d3760 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 6f 6e 20 ate.$exitCode;..public.function.
d3780 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 20 49 6e __construct(Command.$command,.In
d37a0 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
d37c0 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 face.$output,.\Exception.$except
d37e0 69 6f 6e 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 ion,.$exitCode).{.parent::__cons
d3800 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 truct($command,.$input,.$output)
d3820 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f ;..$this->setException($exceptio
d3840 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d 20 28 69 6e 74 29 20 24 65 78 69 n);.$this->exitCode.=.(int).$exi
d3860 74 43 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 67 tCode;.}.......public.function.g
d3880 65 74 45 78 63 65 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 etException().{.return.$this->ex
d38a0 63 65 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 74 69 ception;.}.........public.functi
d38c0 6f 6e 20 73 65 74 45 78 63 65 70 74 69 6f 6e 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 on.setException(\Exception.$exce
d38e0 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 20 3d 20 24 65 78 63 ption).{.$this->exception.=.$exc
d3900 65 70 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 20 eption;.}.......public.function.
d3920 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 getExitCode().{.return.$this->ex
d3940 69 74 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 itCode;.}.}.<?php...........name
d3960 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\
d3980 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
d39a0 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
d39c0 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
d39e0 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
d3a00 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;
d3a20 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
d3a40 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
d3a60 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
d3a80 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,
d3aa0 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
d3ac0 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
d3ae0 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
d3b00 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
d3b20 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
d3b40 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).{.$
d3b60 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
d3b80 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
d3ba0 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
d3bc0 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.
d3be0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 Symfony\Component\Console\Format
d3c00 74 65 72 3b 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 ter;.......class.OutputFormatter
d3c20 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 .implements.OutputFormatterInter
d3c40 66 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 face.{.private.$decorated;.priva
d3c60 74 65 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 te.$styles.=.array();.private.$s
d3c80 74 79 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 tyleStack;.........public.static
d3ca0 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e .function.escape($text).{.return
d3cc0 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c 2f 27 2c 20 27 .preg_replace('/([^\\\\]?)</',.'
d3ce0 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 70 75 62 6c 69 63 20 $1\\<',.$text);.}........public.
d3d00 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 65 64 20 function.__construct($decorated.
d3d20 3d 20 66 61 6c 73 65 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 =.false,.array.$styles.=.array()
d3d40 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 20 24 64 ).{.$this->decorated.=.(bool).$d
d3d60 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 72 72 6f ecorated;..$this->setStyle('erro
d3d80 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 27 77 68 r',.new.OutputFormatterStyle('wh
d3da0 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 65 28 27 ite',.'red'));.$this->setStyle('
d3dc0 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 6c 65 28 info',.new.OutputFormatterStyle(
d3de0 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 6f 6d 6d 'green'));.$this->setStyle('comm
d3e00 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 65 28 27 ent',.new.OutputFormatterStyle('
d3e20 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 75 65 73 yellow'));.$this->setStyle('ques
d3e40 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 6c 65 28 tion',.new.OutputFormatterStyle(
d3e60 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 24 73 74 'black',.'cyan'));..foreach.($st
d3e80 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 68 69 73 yles.as.$name.=>.$style).{.$this
d3ea0 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 0a 24 74 ->setStyle($name,.$style);.}..$t
d3ec0 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 6f 72 6d his->styleStack.=.new.OutputForm
d3ee0 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 70 75 62 6c 69 atterStyleStack();.}.......publi
d3f00 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
d3f20 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 6f 6f 6c 29 20 ed).{.$this->decorated.=.(bool).
d3f40 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $decorated;.}.......public.funct
d3f60 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.isDecorated().{.return.$this
d3f80 2d 3e 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ->decorated;.}........public.fun
d3fa0 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
d3fc0 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 0a 7b 0a 24 74 atterStyleInterface.$style).{.$t
d3fe0 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 20 3d his->styles[strtolower($name)].=
d4000 20 24 73 74 79 6c 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 .$style;.}.........public.functi
d4020 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 on.hasStyle($name).{.return.isse
d4040 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 t($this->styles[strtolower($name
d4060 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e )]);.}...........public.function
d4080 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 .getStyle($name).{.if.(!$this->h
d40a0 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 asStyle($name)).{.throw.new.\Inv
d40c0 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 55 alidArgumentException(sprintf('U
d40e0 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 3a 20 25 73 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a ndefined.style:.%s',.$name));.}.
d4100 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 .return.$this->styles[strtolower
d4120 28 24 6e 61 6d 65 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ($name)];.}.........public.funct
d4140 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 ion.format($message).{.$message.
d4160 3d 20 28 73 74 72 69 6e 67 29 20 24 6d 65 73 73 61 67 65 3b 0a 24 6f 66 66 73 65 74 20 3d 20 30 =.(string).$message;.$offset.=.0
d4180 3b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 24 74 61 67 52 65 67 65 78 20 3d 20 27 5b 61 2d ;.$output.=.'';.$tagRegex.=.'[a-
d41a0 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2a 27 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c z][a-z0-9_=;-]*';.preg_match_all
d41c0 28 22 23 3c 28 28 24 74 61 67 52 65 67 65 78 29 20 7c 20 2f 28 24 74 61 67 52 65 67 65 78 29 3f ("#<(($tagRegex).|./($tagRegex)?
d41e0 29 3e 23 69 78 22 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 )>#ix",.$message,.$matches,.PREG
d4200 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 45 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 _OFFSET_CAPTURE);.foreach.($matc
d4220 68 65 73 5b 30 5d 20 61 73 20 24 69 20 3d 3e 20 24 6d 61 74 63 68 29 20 7b 0a 24 70 6f 73 20 3d hes[0].as.$i.=>.$match).{.$pos.=
d4240 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 65 78 74 20 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 0a .$match[1];.$text.=.$match[0];..
d4260 69 66 20 28 30 20 21 3d 20 24 70 6f 73 20 26 26 20 27 5c 5c 27 20 3d 3d 20 24 6d 65 73 73 61 67 if.(0.!=.$pos.&&.'\\'.==.$messag
d4280 65 5b 24 70 6f 73 20 2d 20 31 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6f e[$pos.-.1]).{.continue;.}....$o
d42a0 75 74 70 75 74 20 2e 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c utput..=.$this->applyCurrentStyl
d42c0 65 28 73 75 62 73 74 72 28 24 6d 65 73 73 61 67 65 2c 20 24 6f 66 66 73 65 74 2c 20 24 70 6f 73 e(substr($message,.$offset,.$pos
d42e0 20 2d 20 24 6f 66 66 73 65 74 29 29 3b 0a 24 6f 66 66 73 65 74 20 3d 20 24 70 6f 73 20 2b 20 73 .-.$offset));.$offset.=.$pos.+.s
d4300 74 72 6c 65 6e 28 24 74 65 78 74 29 3b 0a 0a 0a 20 69 66 20 28 24 6f 70 65 6e 20 3d 20 27 2f 27 trlen($text);....if.($open.=.'/'
d4320 20 21 3d 20 24 74 65 78 74 5b 31 5d 29 20 7b 0a 24 74 61 67 20 3d 20 24 6d 61 74 63 68 65 73 5b .!=.$text[1]).{.$tag.=.$matches[
d4340 31 5d 5b 24 69 5d 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 61 67 20 3d 20 69 73 73 65 74 1][$i][0];.}.else.{.$tag.=.isset
d4360 28 24 6d 61 74 63 68 65 73 5b 33 5d 5b 24 69 5d 5b 30 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b ($matches[3][$i][0]).?.$matches[
d4380 33 5d 5b 24 69 5d 5b 30 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 70 65 6e 20 26 26 3][$i][0].:.'';.}..if.(!$open.&&
d43a0 20 21 24 74 61 67 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 .!$tag).{...$this->styleStack->p
d43c0 6f 70 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 op();.}.elseif.(false.===.$style
d43e0 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 .=.$this->createStyleFromString(
d4400 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 67 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 strtolower($tag))).{.$output..=.
d4420 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 74 65 78 74 29 3b $this->applyCurrentStyle($text);
d4440 0a 7d 20 65 6c 73 65 69 66 20 28 24 6f 70 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 .}.elseif.($open).{.$this->style
d4460 53 74 61 63 6b 2d 3e 70 75 73 68 28 24 73 74 79 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 Stack->push($style);.}.else.{.$t
d4480 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 24 73 74 79 6c 65 29 3b 0a 7d 0a his->styleStack->pop($style);.}.
d44a0 7d 0a 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 72 72 65 6e }..$output..=.$this->applyCurren
d44c0 74 53 74 79 6c 65 28 73 75 62 73 74 72 28 24 6d 65 73 73 61 67 65 2c 20 24 6f 66 66 73 65 74 29 tStyle(substr($message,.$offset)
d44e0 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 27 2c 20 27 3c );..return.str_replace('\\<',.'<
d4500 27 2c 20 24 6f 75 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 ',.$output);.}.....public.functi
d4520 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 63 6b 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 on.getStyleStack().{.return.$thi
d4540 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 s->styleStack;.}.........private
d4560 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 .function.createStyleFromString(
d4580 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c $string).{.if.(isset($this->styl
d45a0 65 73 5b 24 73 74 72 69 6e 67 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 es[$string])).{.return.$this->st
d45c0 79 6c 65 73 5b 24 73 74 72 69 6e 67 5d 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 yles[$string];.}..if.(!preg_matc
d45e0 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c 24 29 2f 27 2c 20 h_all('/([^=]+)=([^;]+)(;|$)/',.
d4600 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 69 6e 67 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 strtolower($string),.$matches,.P
d4620 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a REG_SET_ORDER)).{.return.false;.
d4640 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 }..$style.=.new.OutputFormatterS
d4660 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 tyle();.foreach.($matches.as.$ma
d4680 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 6d 61 74 63 68 29 3b 0a 0a 69 66 20 tch).{.array_shift($match);..if.
d46a0 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 ('fg'.==.$match[0]).{.$style->se
d46c0 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 tForeground($match[1]);.}.elseif
d46e0 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 .('bg'.==.$match[0]).{.$style->s
d4700 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 etBackground($match[1]);.}.else.
d4720 7b 0a 74 72 79 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 {.try.{.$style->setOption($match
d4740 5b 31 5d 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 74 45 [1]);.}.catch.(\InvalidArgumentE
d4760 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d xception.$e).{.return.false;.}.}
d4780 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 .}..return.$style;.}.........pri
d47a0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 vate.function.applyCurrentStyle(
d47c0 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 $text).{.return.$this->isDecorat
d47e0 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 20 3e 20 30 20 3f 20 24 74 68 69 ed().&&.strlen($text).>.0.?.$thi
d4800 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 67 65 74 43 75 72 72 65 6e 74 28 29 2d 3e 61 70 70 s->styleStack->getCurrent()->app
d4820 6c 79 28 24 74 65 78 74 29 20 3a 20 24 74 65 78 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ly($text).:.$text;.}.}.<?php....
d4840 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
d4860 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 nt\Console\Formatter;.......inte
d4880 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b rface.OutputFormatterInterface.{
d48a0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 ......public.function.setDecorat
d48c0 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ed($decorated);.......public.fun
d48e0 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ction.isDecorated();........publ
d4900 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 75 74 70 ic.function.setStyle($name,.Outp
d4920 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 79 6c 65 utFormatterStyleInterface.$style
d4940 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 68 61 73 53 74 );.........public.function.hasSt
d4960 79 6c 65 28 24 6e 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 yle($name);.........public.funct
d4980 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ion.getStyle($name);.........pub
d49a0 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);.}
d49c0 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
d49e0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a ny\Component\Console\Formatter;.
d4a00 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 ......class.OutputFormatterStyle
d4a20 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 .implements.OutputFormatterStyle
d4a40 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 Interface.{.private.static.$avai
d4a60 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 28 0a 27 lableForegroundColors.=.array(.'
d4a80 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 33 30 2c 20 27 75 6e black'.=>.array('set'.=>.30,.'un
d4aa0 73 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 set'.=>.39),.'red'.=>.array('set
d4ac0 27 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 '.=>.31,.'unset'.=>.39),.'green'
d4ae0 20 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 .=>.array('set'.=>.32,.'unset'.=
d4b00 3e 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 >.39),.'yellow'.=>.array('set'.=
d4b20 3e 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 >.33,.'unset'.=>.39),.'blue'.=>.
d4b40 61 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 array('set'.=>.34,.'unset'.=>.39
d4b60 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 3d 3e 20 33 ),.'magenta'.=>.array('set'.=>.3
d4b80 35 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 5,.'unset'.=>.39),.'cyan'.=>.arr
d4ba0 61 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 ay('set'.=>.36,.'unset'.=>.39),.
d4bc0 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 33 37 2c 20 27 75 'white'.=>.array('set'.=>.37,.'u
d4be0 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 61 72 72 61 79 nset'.=>.39),.'default'.=>.array
d4c00 28 27 73 65 74 27 20 3d 3e 20 33 39 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 29 3b ('set'.=>.39,.'unset'.=>.39),.);
d4c20 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 42 61 63 6b 67 72 .private.static.$availableBackgr
d4c40 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 61 oundColors.=.array(.'black'.=>.a
d4c60 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 30 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 rray('set'.=>.40,.'unset'.=>.49)
d4c80 2c 0a 27 72 65 64 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 31 2c 20 27 75 ,.'red'.=>.array('set'.=>.41,.'u
d4ca0 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 67 72 65 65 6e 27 20 3d 3e 20 61 72 72 61 79 28 27 nset'.=>.49),.'green'.=>.array('
d4cc0 73 65 74 27 20 3d 3e 20 34 32 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 79 65 6c set'.=>.42,.'unset'.=>.49),.'yel
d4ce0 6c 6f 77 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 33 2c 20 27 75 6e 73 65 low'.=>.array('set'.=>.43,.'unse
d4d00 74 27 20 3d 3e 20 34 39 29 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 t'.=>.49),.'blue'.=>.array('set'
d4d20 20 3d 3e 20 34 34 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 6d 61 67 65 6e 74 61 .=>.44,.'unset'.=>.49),.'magenta
d4d40 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 35 2c 20 27 75 6e 73 65 74 27 20 '.=>.array('set'.=>.45,.'unset'.
d4d60 3d 3e 20 34 39 29 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e =>.49),.'cyan'.=>.array('set'.=>
d4d80 20 34 36 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 .46,.'unset'.=>.49),.'white'.=>.
d4da0 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 37 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 array('set'.=>.47,.'unset'.=>.49
d4dc0 29 2c 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 ),.'default'.=>.array('set'.=>.4
d4de0 39 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 9,.'unset'.=>.49),.);.private.st
d4e00 61 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 atic.$availableOptions.=.array(.
d4e20 27 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 'bold'.=>.array('set'.=>.1,.'uns
d4e40 65 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 et'.=>.22),.'underscore'.=>.arra
d4e60 79 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 y('set'.=>.4,.'unset'.=>.24),.'b
d4e80 6c 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 link'.=>.array('set'.=>.5,.'unse
d4ea0 74 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 t'.=>.25),.'reverse'.=>.array('s
d4ec0 65 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 et'.=>.7,.'unset'.=>.27),.'conce
d4ee0 61 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 al'.=>.array('set'.=>.8,.'unset'
d4f00 20 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 .=>.28),.);..private.$foreground
d4f20 3b 0a 70 72 69 76 61 74 65 20 24 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 ;.private.$background;.private.$
d4f40 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 options.=.array();.........publi
d4f60 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 75 c.function.__construct($foregrou
d4f80 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 61 nd.=.null,.$background.=.null,.a
d4fa0 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 6e rray.$options.=.array()).{.if.(n
d4fc0 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 65 ull.!==.$foreground).{.$this->se
d4fe0 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 28 tForeground($foreground);.}.if.(
d5000 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 73 null.!==.$background).{.$this->s
d5020 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 20 etBackground($background);.}.if.
d5040 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 70 (count($options)).{.$this->setOp
d5060 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 70 75 62 tions($options);.}.}.........pub
d5080 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f lic.function.setForeground($colo
d50a0 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 r.=.null).{.if.(null.===.$color)
d50c0 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 .{.$this->foreground.=.null;..re
d50e0 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 turn;.}..if.(!isset(static::$ava
d5100 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 ilableForegroundColors[$color]))
d5120 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
d5140 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 66 6f 72 65 67 72 6f eption(sprintf(.'Invalid.foregro
d5160 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 und.color.specified:."%s"..Expec
d5180 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 ted.one.of.(%s)',.$color,.implod
d51a0 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 e(',.',.array_keys(static::$avai
d51c0 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 lableForegroundColors)).));.}..$
d51e0 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 this->foreground.=.static::$avai
d5200 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d lableForegroundColors[$color];.}
d5220 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b .........public.function.setBack
d5240 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c ground($color.=.null).{.if.(null
d5260 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 .===.$color).{.$this->background
d5280 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 .=.null;..return;.}..if.(!isset(
d52a0 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f static::$availableBackgroundColo
d52c0 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 rs[$color])).{.throw.new.\Invali
d52e0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 dArgumentException(sprintf(.'Inv
d5300 61 6c 69 64 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a alid.background.color.specified:
d5320 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 ."%s"..Expected.one.of.(%s)',.$c
d5340 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 olor,.implode(',.',.array_keys(s
d5360 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 tatic::$availableBackgroundColor
d5380 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 73 s)).));.}..$this->background.=.s
d53a0 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 tatic::$availableBackgroundColor
d53c0 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s[$color];.}.........public.func
d53e0 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 tion.setOption($option).{.if.(!i
d5400 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 sset(static::$availableOptions[$
d5420 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 option])).{.throw.new.\InvalidAr
d5440 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 gumentException(sprintf(.'Invali
d5460 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 d.option.specified:."%s"..Expect
d5480 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 6c 6f 64 ed.one.of.(%s)',.$option,.implod
d54a0 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 e(',.',.array_keys(static::$avai
d54c0 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 lableOptions)).));.}..if.(!in_ar
d54e0 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 69 6f 6e 73 5b 24 6f ray(static::$availableOptions[$o
d5500 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 7b 0a 24 74 68 69 73 ption],.$this->options)).{.$this
d5520 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 61 69 6c 61 62 6c 65 ->options[].=.static::$available
d5540 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 0a 0a 0a 0a 0a 70 75 Options[$option];.}.}.........pu
d5560 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 6f 70 74 69 6f blic.function.unsetOption($optio
d5580 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 61 76 61 69 6c 61 62 n).{.if.(!isset(static::$availab
d55a0 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 72 6f 77 20 6e 65 77 leOptions[$option])).{.throw.new
d55c0 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
d55e0 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 66 69 65 64 3a 20 22 tf(.'Invalid.option.specified:."
d5600 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 %s"..Expected.one.of.(%s)',.$opt
d5620 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 6b 65 79 73 28 73 74 ion,.implode(',.',.array_keys(st
d5640 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 0a 29 29 3b 0a 7d 0a atic::$availableOptions)).));.}.
d5660 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 69 63 3a 3a 24 61 76 .$pos.=.array_search(static::$av
d5680 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e ailableOptions[$option],.$this->
d56a0 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 70 6f 73 29 20 7b 0a options);.if.(false.!==.$pos).{.
d56c0 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 5d 29 3b 0a 7d 0a 7d unset($this->options[$pos]);.}.}
d56e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e .......public.function.setOption
d5700 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 6f s(array.$options).{.$this->optio
d5720 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 6f 70 74 69 6f 6e 73 ns.=.array();..foreach.($options
d5740 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 4f 70 74 69 6f 6e 28 .as.$option).{.$this->setOption(
d5760 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 6c 69 63 20 66 75 6e $option);.}.}.........public.fun
d5780 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 43 6f 64 65 73 20 3d ction.apply($text).{.$setCodes.=
d57a0 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 72 72 61 79 28 29 3b .array();.$unsetCodes.=.array();
d57c0 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 65 67 72 6f 75 6e 64 ..if.(null.!==.$this->foreground
d57e0 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 66 6f 72 65 67 72 6f ).{.$setCodes[].=.$this->foregro
d5800 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 20 3d 20 24 74 68 69 und['set'];.$unsetCodes[].=.$thi
d5820 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 0a 69 66 20 28 6e 75 s->foreground['unset'];.}.if.(nu
d5840 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 73 65 74 ll.!==.$this->background).{.$set
d5860 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 6e 64 5b 27 73 65 74 Codes[].=.$this->background['set
d5880 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 2d 3e 62 61 63 6b 67 '];.$unsetCodes[].=.$this->backg
d58a0 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 6e 74 28 24 74 68 69 round['unset'];.}.if.(count($thi
d58c0 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 74 68 69 73 2d 3e 6f s->options)).{.foreach.($this->o
d58e0 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 43 6f 64 65 73 5b 5d ptions.as.$option).{.$setCodes[]
d5900 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 43 6f 64 65 73 5b 5d .=.$option['set'];.$unsetCodes[]
d5920 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 0a 69 66 20 28 30 20 .=.$option['unset'];.}.}..if.(0.
d5940 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 65 74 75 72 6e 20 24 ===.count($setCodes)).{.return.$
d5960 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 5c 30 33 33 5b 25 73 text;.}..return.sprintf("\033[%s
d5980 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 2c 20 24 73 65 74 43 m%s\033[%sm",.implode(';',.$setC
d59a0 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 2c 20 24 75 6e 73 65 odes),.$text,.implode(';',.$unse
d59c0 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 0a 0a 0a 0a 0a 6e 61 tCodes));.}.}.<?php...........na
d59e0 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
d5a00 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 e\Formatter;.......interface.Out
d5a20 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 0a 7b 0a 0a 0a 0a putFormatterStyleInterface.{....
d5a40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 ..public.function.setForeground(
d5a60 24 63 6f 6c 6f 72 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 $color.=.null);.......public.fun
d5a80 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c ction.setBackground($color.=.nul
d5aa0 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 l);.......public.function.setOpt
d5ac0 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ion($option);.......public.funct
d5ae0 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a ion.unsetOption($option);.......
d5b00 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 61 72 72 61 79 public.function.setOptions(array
d5b20 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$options);.........public.funct
d5b40 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ion.apply($text);.}.<?php.......
d5b60 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\
d5b80 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 75 74 Console\Formatter;.....class.Out
d5ba0 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 69 76 putFormatterStyleStack.{....priv
d5bc0 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 79 53 ate.$styles;.....private.$emptyS
d5be0 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 63 6f tyle;.......public.function.__co
d5c00 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 74 65 nstruct(OutputFormatterStyleInte
d5c20 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 68 69 rface.$emptyStyle.=.null).{.$thi
d5c40 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 20 6e s->emptyStyle.=.$emptyStyle.?:.n
d5c60 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 69 73 ew.OutputFormatterStyle();.$this
d5c80 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 6f 6e ->reset();.}.....public.function
d5ca0 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 61 79 .reset().{.$this->styles.=.array
d5cc0 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 73 68 ();.}.......public.function.push
d5ce0 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 20 24 (OutputFormatterStyleInterface.$
d5d00 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 79 6c style).{.$this->styles[].=.$styl
d5d20 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 20 70 e;.}...........public.function.p
d5d40 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 63 65 op(OutputFormatterStyleInterface
d5d60 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 68 69 .$style.=.null).{.if.(empty($thi
d5d80 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 s->styles)).{.return.$this->empt
d5da0 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 29 20 yStyle;.}..if.(null.===.$style).
d5dc0 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 65 73 {.return.array_pop($this->styles
d5de0 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 74 68 );.}..foreach.(array_reverse($th
d5e00 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 20 24 is->styles,.true).as.$index.=>.$
d5e20 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 70 6c stackedStyle).{.if.($style->appl
d5e40 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 28 27 y('').===.$stackedStyle->apply('
d5e60 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 69 63 ')).{.$this->styles.=.array_slic
d5e80 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 72 65 e($this->styles,.0,.$index);..re
d5ea0 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 20 6e turn.$stackedStyle;.}.}..throw.n
d5ec0 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 49 6e ew.\InvalidArgumentException('In
d5ee0 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 6e 64 correctly.nested.style.tag.found
d5f00 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 65 74 .');.}.......public.function.get
d5f20 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 74 79 Current().{.if.(empty($this->sty
d5f40 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 6c 65 les)).{.return.$this->emptyStyle
d5f60 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 74 28 ;.}..return.$this->styles[count(
d5f80 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 20 2d 20 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 $this->styles).-.1];.}.......pub
d5fa0 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
d5fc0 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
d5fe0 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
d6000 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
d6020 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().{.
d6040 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;.}.}.<?
d6060 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\
d6080 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a Component\Console\Helper;.......
d60a0 0a 0a 63 6c 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 ..class.DebugFormatterHelper.ext
d60c0 65 6e 64 73 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 ends.Helper.{.private.$colors.=.
d60e0 61 72 72 61 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 array('black',.'red',.'green',.'
d6100 79 65 6c 6c 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 yellow',.'blue',.'magenta',.'cya
d6120 6e 27 2c 20 27 77 68 69 74 65 27 2c 20 27 64 65 66 61 75 6c 74 27 29 3b 0a 70 72 69 76 61 74 65 n',.'white',.'default');.private
d6140 20 24 73 74 61 72 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f .$started.=.array();.private.$co
d6160 75 6e 74 20 3d 20 2d 31 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 unt.=.-1;...........public.funct
d6180 69 6f 6e 20 73 74 61 72 74 28 24 69 64 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 70 72 65 66 69 78 ion.start($id,.$message,.$prefix
d61a0 20 3d 20 27 52 55 4e 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 20 .=.'RUN').{.$this->started[$id].
d61c0 3d 20 61 72 72 61 79 28 27 62 6f 72 64 65 72 27 20 3d 3e 20 2b 2b 24 74 68 69 73 2d 3e 63 6f 75 =.array('border'.=>.++$this->cou
d61e0 6e 74 20 25 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6c 6f 72 73 29 29 3b 0a 0a 72 65 74 nt.%.count($this->colors));..ret
d6200 75 72 6e 20 73 70 72 69 6e 74 66 28 22 25 73 3c 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 74 65 urn.sprintf("%s<bg=blue;fg=white
d6220 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 62 6c 75 65 3e 25 73 3c 2f 3e 5c 6e 22 2c 20 24 74 68 69 >.%s.</>.<fg=blue>%s</>\n",.$thi
d6240 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 2c 20 24 6d 65 73 s->getBorder($id),.$prefix,.$mes
d6260 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 sage);.}.............public.func
d6280 74 69 6f 6e 20 70 72 6f 67 72 65 73 73 28 24 69 64 2c 20 24 62 75 66 66 65 72 2c 20 24 65 72 72 tion.progress($id,.$buffer,.$err
d62a0 6f 72 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 69 78 20 3d 20 27 4f 55 54 27 2c 20 24 65 72 or.=.false,.$prefix.=.'OUT',.$er
d62c0 72 6f 72 50 72 65 66 69 78 20 3d 20 27 45 52 52 27 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 rorPrefix.=.'ERR').{.$message.=.
d62e0 27 27 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 '';..if.($error).{.if.(isset($th
d6300 69 73 2d 3e 73 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 is->started[$id]['out'])).{.$mes
d6320 73 61 67 65 20 2e 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 sage..=."\n";.unset($this->start
d6340 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 ed[$id]['out']);.}.if.(!isset($t
d6360 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 29 20 7b 0a 24 6d 65 his->started[$id]['err'])).{.$me
d6380 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 28 27 25 73 3c 62 67 3d 72 65 64 3b 66 67 3d 77 ssage..=.sprintf('%s<bg=red;fg=w
d63a0 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 hite>.%s.</>.',.$this->getBorder
d63c0 28 24 69 64 29 2c 20 24 65 72 72 6f 72 50 72 65 66 69 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 ($id),.$errorPrefix);.$this->sta
d63e0 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 6d 65 73 rted[$id]['err'].=.true;.}..$mes
d6400 73 61 67 65 20 2e 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 73 70 72 69 6e 74 sage..=.str_replace("\n",.sprint
d6420 66 28 22 5c 6e 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 f("\n%s<bg=red;fg=white>.%s.</>.
d6440 22 2c 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 ",.$this->getBorder($id),.$error
d6460 50 72 65 66 69 78 29 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 Prefix),.$buffer);.}.else.{.if.(
d6480 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']
d64a0 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 75 6e 73 65 74 28 24 74 68 )).{.$message..=."\n";.unset($th
d64c0 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 7d 0a 69 66 20 28 is->started[$id]['err']);.}.if.(
d64e0 21 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 6f 75 74 27 !isset($this->started[$id]['out'
d6500 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 28 27 25 73 3c 62 67 ])).{.$message..=.sprintf('%s<bg
d6520 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 27 2c 20 24 74 68 69 73 =green;fg=white>.%s.</>.',.$this
d6540 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 3b 0a 24 74 68 69 ->getBorder($id),.$prefix);.$thi
d6560 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 20 3d 20 74 72 75 65 3b 0a 7d s->started[$id]['out'].=.true;.}
d6580 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 ..$message..=.str_replace("\n",.
d65a0 73 70 72 69 6e 74 66 28 22 5c 6e 25 73 3c 62 67 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 3e sprintf("\n%s<bg=green;fg=white>
d65c0 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 29 .%s.</>.",.$this->getBorder($id)
d65e0 2c 20 24 70 72 65 66 69 78 29 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ,.$prefix),.$buffer);.}..return.
d6600 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $message;.}............public.fu
d6620 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 69 64 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 75 63 63 nction.stop($id,.$message,.$succ
d6640 65 73 73 66 75 6c 2c 20 24 70 72 65 66 69 78 20 3d 20 27 52 45 53 27 29 0a 7b 0a 24 74 72 61 69 essful,.$prefix.=.'RES').{.$trai
d6660 6c 69 6e 67 45 4f 4c 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 lingEOL.=.isset($this->started[$
d6680 69 64 5d 5b 27 6f 75 74 27 5d 29 20 7c 7c 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 id]['out']).||.isset($this->star
d66a0 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 29 20 3f 20 22 5c 6e 22 20 3a 20 27 27 3b 0a 0a 69 ted[$id]['err']).?."\n".:.'';..i
d66c0 66 20 28 24 73 75 63 63 65 73 73 66 75 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 f.($successful).{.return.sprintf
d66e0 28 22 25 73 25 73 3c 62 67 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e ("%s%s<bg=green;fg=white>.%s.</>
d6700 20 3c 66 67 3d 67 72 65 65 6e 3e 25 73 3c 2f 3e 5c 6e 22 2c 20 24 74 72 61 69 6c 69 6e 67 45 4f .<fg=green>%s</>\n",.$trailingEO
d6720 4c 2c 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 70 72 65 66 69 L,.$this->getBorder($id),.$prefi
d6740 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 x,.$message);.}..$message.=.spri
d6760 6e 74 66 28 22 25 73 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 ntf("%s%s<bg=red;fg=white>.%s.</
d6780 3e 20 3c 66 67 3d 72 65 64 3e 25 73 3c 2f 3e 5c 6e 22 2c 20 24 74 72 61 69 6c 69 6e 67 45 4f 4c >.<fg=red>%s</>\n",.$trailingEOL
d67a0 2c 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 70 72 65 66 69 78 ,.$this->getBorder($id),.$prefix
d67c0 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 ,.$message);..unset($this->start
d67e0 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 2c 20 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 ed[$id]['out'],.$this->started[$
d6800 69 64 5d 5b 27 65 72 72 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6d 65 73 73 61 67 65 3b 0a 7d id]['err']);..return.$message;.}
d6820 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 42 6f 72 64 65 .......private.function.getBorde
d6840 72 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 62 67 3d 25 73 3e r($id).{.return.sprintf('<bg=%s>
d6860 20 3c 2f 3e 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6c 6f 72 73 5b 24 74 68 69 73 2d 3e 73 74 61 72 .</>',.$this->colors[$this->star
d6880 74 65 64 5b 24 69 64 5d 5b 27 62 6f 72 64 65 72 27 5d 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ted[$id]['border']]);.}.....publ
d68a0 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.'
d68c0 64 65 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a debug_formatter';.}.}.<?php.....
d68e0 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
d6900 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Helper;..use.Symfony\C
d6920 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 44 65 73 63 omponent\Console\Descriptor\Desc
d6940 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d riptorInterface;.use.Symfony\Com
d6960 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 4a 73 6f 6e 44 65 ponent\Console\Descriptor\JsonDe
d6980 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c scriptor;.use.Symfony\Component\
d69a0 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 Console\Descriptor\MarkdownDescr
d69c0 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e iptor;.use.Symfony\Component\Con
d69e0 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;.
d6a00 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
d6a20 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
d6a40 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
d6a60 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 73 63 72 69 putInterface;.......class.Descri
d6a80 70 74 6f 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 70 ptorHelper.extends.Helper.{....p
d6aa0 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a rivate.$descriptors.=.array();..
d6ac0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 ...public.function.__construct()
d6ae0 0a 7b 0a 24 74 68 69 73 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 74 78 74 27 2c 20 6e 65 77 20 54 .{.$this.->register('txt',.new.T
d6b00 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 78 6d 6c extDescriptor()).->register('xml
d6b20 27 2c 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 ',.new.XmlDescriptor()).->regist
d6b40 65 72 28 27 6a 73 6f 6e 27 2c 20 6e 65 77 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 28 29 29 er('json',.new.JsonDescriptor())
d6b60 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 6d 64 27 2c 20 6e 65 77 20 4d 61 72 6b 64 6f 77 6e 44 65 .->register('md',.new.MarkdownDe
d6b80 73 63 72 69 70 74 6f 72 28 29 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 scriptor()).;.}...............pu
d6ba0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 blic.function.describe(OutputInt
d6bc0 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 erface.$output,.$object,.array.$
d6be0 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 options.=.array()).{.$options.=.
d6c00 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 0a 27 72 61 77 5f 74 65 78 74 27 20 3d 3e array_merge(array(.'raw_text'.=>
d6c20 20 66 61 6c 73 65 2c 0a 27 66 6f 72 6d 61 74 27 20 3d 3e 20 27 74 78 74 27 2c 0a 29 2c 20 24 6f .false,.'format'.=>.'txt',.),.$o
d6c40 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 73 63 ptions);..if.(!isset($this->desc
d6c60 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 29 29 20 7b 0a riptors[$options['format']])).{.
d6c80 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
d6ca0 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 6d 61 74 20 ion(sprintf('Unsupported.format.
d6cc0 22 25 73 22 2e 27 2c 20 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 29 29 3b 0a 7d 0a "%s".',.$options['format']));.}.
d6ce0 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 .$descriptor.=.$this->descriptor
d6d00 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 5d 3b 0a 24 64 65 73 63 72 69 70 74 s[$options['format']];.$descript
d6d20 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 24 or->describe($output,.$object,.$
d6d40 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 options);.}..........public.func
d6d60 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 66 6f 72 6d 61 74 2c 20 44 65 73 63 72 69 70 74 6f tion.register($format,.Descripto
d6d80 72 49 6e 74 65 72 66 61 63 65 20 24 64 65 73 63 72 69 70 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d rInterface.$descriptor).{.$this-
d6da0 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 66 6f 72 6d 61 74 5d 20 3d 20 24 64 65 73 63 72 69 70 >descriptors[$format].=.$descrip
d6dc0 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 70 75 62 6c 69 63 tor;..return.$this;.}.....public
d6de0 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 64 65 .function.getName().{.return.'de
d6e00 73 63 72 69 70 74 6f 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e scriptor';.}.}.<?php...........n
d6e20 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
d6e40 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
d6e60 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
d6e80 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\
d6ea0 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 53 74 79 6c 65 3b 0a Formatter\OutputFormatterStyle;.
d6ec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 .........class.DialogHelper.exte
d6ee0 6e 64 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 nds.InputAwareHelper.{.private.$
d6f00 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 24 73 68 65 inputStream;.private.static.$she
d6f20 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 70 75 62 6c 69 ll;.private.static.$stty;..publi
d6f40 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 72 69 67 67 65 72 44 c.function.__construct($triggerD
d6f60 65 70 72 65 63 61 74 69 6f 6e 45 72 72 6f 72 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 24 74 eprecationError.=.true).{.if.($t
d6f80 72 69 67 67 65 72 44 65 70 72 65 63 61 74 69 6f 6e 45 72 72 6f 72 29 20 7b 0a 40 74 72 69 67 67 riggerDeprecationError).{.@trigg
d6fa0 65 72 5f 65 72 72 6f 72 28 27 22 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e er_error('"Symfony\Component\Con
d6fc0 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 22 20 69 73 20 64 65 70 sole\Helper\DialogHelper".is.dep
d6fe0 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 recated.since.version.2.5.and.wi
d7000 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 22 53 79 6d 66 6f ll.be.removed.in.3.0..Use."Symfo
d7020 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
d7040 74 69 6f 6e 48 65 6c 70 65 72 22 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 tionHelper".instead.',.E_USER_DE
d7060 50 52 45 43 41 54 45 44 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 PRECATED);.}.}.................p
d7080 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 28 4f 75 74 70 75 74 49 6e 74 65 ublic.function.select(OutputInte
d70a0 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 63 68 6f 69 63 rface.$output,.$question,.$choic
d70c0 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 61 74 74 65 6d 70 74 73 20 3d es,.$default.=.null,.$attempts.=
d70e0 20 66 61 6c 73 65 2c 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 20 22 .false,.$errorMessage.=.'Value."
d7100 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 27 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 %s".is.invalid',.$multiselect.=.
d7120 66 61 6c 73 65 29 0a 7b 0a 24 77 69 64 74 68 20 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 false).{.$width.=.max(array_map(
d7140 27 73 74 72 6c 65 6e 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 63 68 6f 69 63 65 73 29 29 29 'strlen',.array_keys($choices)))
d7160 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 75 65 73 74 69 6f 6e ;..$messages.=.(array).$question
d7180 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 6f 69 63 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 ;.foreach.($choices.as.$key.=>.$
d71a0 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 6e 74 66 28 22 value).{.$messages[].=.sprintf("
d71c0 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 5d 20 25 73 22 ..[<info>%-${width}s</info>].%s"
d71e0 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 2d 3e 77 72 69 ,.$key,.$value);.}..$output->wri
d7200 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 teln($messages);..$result.=.$thi
d7220 73 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 27 3e 20 27 2c s->askAndValidate($output,.'>.',
d7240 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 69 63 6b 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 .function.($picked).use.($choice
d7260 73 2c 20 24 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 s,.$errorMessage,.$multiselect).
d7280 7b 0a 0a 20 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 {...$selectedChoices.=.str_repla
d72a0 63 65 28 27 20 27 2c 20 27 27 2c 20 24 70 69 63 6b 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 ce('.',.'',.$picked);..if.($mult
d72c0 69 73 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 iselect).{...if.(!preg_match('/^
d72e0 5b 61 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 [a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+
d7300 29 2a 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 )*$/',.$selectedChoices,.$matche
d7320 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 s)).{.throw.new.\InvalidArgument
d7340 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 61 67 65 2c Exception(sprintf($errorMessage,
d7360 20 24 70 69 63 6b 65 64 29 29 3b 0a 7d 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d .$picked));.}.$selectedChoices.=
d7380 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);
d73a0 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
d73c0 61 79 28 24 70 69 63 6b 65 64 29 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 ay($picked);.}..$multiselectChoi
d73e0 63 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 73 65 6c 65 63 74 ces.=.array();..foreach.($select
d7400 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 79 edChoices.as.$value).{.if.(empty
d7420 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 20 ($choices[$value])).{.throw.new.
d7440 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
d7460 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 24 6d 75 f($errorMessage,.$value));.}.$mu
d7480 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 5b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a ltiselectChoices[].=.$value;.}..
d74a0 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 if.($multiselect).{.return.$mult
d74c0 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 69 63 6b 65 iselectChoices;.}..return.$picke
d74e0 64 3b 0a 7d 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 d;.},.$attempts,.$default);..ret
d7500 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c urn.$result;.}..............publ
d7520 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 ic.function.ask(OutputInterface.
d7540 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e $output,.$question,.$default.=.n
d7560 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 6e 75 6c 6c 29 ull,.array.$autocomplete.=.null)
d7580 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 .{.if.($this->input.&&.!$this->i
d75a0 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 nput->isInteractive()).{.return.
d75c0 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 $default;.}..$output->write($que
d75e0 73 74 69 6f 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 69 stion);..$inputStream.=.$this->i
d7600 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d nputStream.?:.STDIN;..if.(null.=
d7620 3d 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 53 ==.$autocomplete.||.!$this->hasS
d7640 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 ttyAvailable()).{.$ret.=.fgets($
d7660 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d inputStream,.4096);.if.(false.==
d7680 3d 20 24 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 =.$ret).{.throw.new.\RuntimeExce
d76a0 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 ption('Aborted');.}.$ret.=.trim(
d76c0 24 72 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 27 27 3b 0a 0a 24 69 20 3d $ret);.}.else.{.$ret.=.'';..$i.=
d76e0 20 30 3b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 .0;.$ofs.=.-1;.$matches.=.$autoc
d7700 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 24 6d 61 omplete;.$numMatches.=.count($ma
d7720 74 63 68 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 tches);..$sttyMode.=.shell_exec(
d7740 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 'stty.-g');....shell_exec('stty.
d7760 2d 69 63 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 -icanon.-echo');....$output->get
d7780 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c 65 28 27 68 6c 27 2c 20 6e 65 77 20 Formatter()->setStyle('hl',.new.
d77a0 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 77 OutputFormatterStyle('black',.'w
d77c0 68 69 74 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 21 66 65 6f 66 28 24 69 6e 70 75 74 53 hite'));....while.(!feof($inputS
d77e0 74 72 65 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 tream)).{.$c.=.fread($inputStrea
d7800 6d 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 m,.1);....if.("\177".===.$c).{.i
d7820 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 20 26 26 20 30 20 21 3d 3d 20 24 69 f.(0.===.$numMatches.&&.0.!==.$i
d7840 29 20 7b 0a 2d 2d 24 69 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 ).{.--$i;...$output->write("\033
d7860 5b 31 44 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d 3d 20 30 29 20 7b 0a 24 6f 66 73 20 3d [1D");.}..if.($i.===.0).{.$ofs.=
d7880 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 .-1;.$matches.=.$autocomplete;.$
d78a0 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 7d 20 numMatches.=.count($matches);.}.
d78c0 65 6c 73 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 7d 0a 0a 0a 20 24 72 65 else.{.$numMatches.=.0;.}....$re
d78e0 74 20 3d 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c 20 24 69 29 3b 0a 7d 20 65 6c 73 65 69 t.=.substr($ret,.0,.$i);.}.elsei
d7900 66 20 28 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 f.("\033".===.$c).{...$c..=.frea
d7920 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 d($inputStream,.2);....if.(isset
d7940 28 24 63 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 ($c[2]).&&.('A'.===.$c[2].||.'B'
d7960 20 3d 3d 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 .===.$c[2])).{.if.('A'.===.$c[2]
d7980 20 26 26 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 .&&.-1.===.$ofs).{.$ofs.=.0;.}..
d79a0 69 66 20 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 if.(0.===.$numMatches).{.continu
d79c0 65 3b 0a 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 e;.}..$ofs.+=.('A'.===.$c[2]).?.
d79e0 2d 31 20 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 -1.:.1;.$ofs.=.($numMatches.+.$o
d7a00 66 73 29 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 fs).%.$numMatches;.}.}.elseif.(o
d7a20 72 64 28 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 rd($c).<.32).{.if.("\t".===.$c.|
d7a40 7c 20 22 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 |."\n".===.$c).{.if.($numMatches
d7a60 20 3e 20 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 .>.0.&&.-1.!==.$ofs).{.$ret.=.$m
d7a80 61 74 63 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 atches[$ofs];...$output->write(s
d7aa0 75 62 73 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 ubstr($ret,.$i));.$i.=.strlen($r
d7ac0 65 74 29 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 et);.}..if.("\n".===.$c).{.$outp
d7ae0 75 74 2d 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 ut->write($c);.break;.}..$numMat
d7b00 63 68 65 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 ches.=.0;.}..continue;.}.else.{.
d7b20 24 6f 75 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 $output->write($c);.$ret..=.$c;.
d7b40 2b 2b 24 69 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 ++$i;..$numMatches.=.0;.$ofs.=.0
d7b60 3b 0a 0a 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 ;..foreach.($autocomplete.as.$va
d7b80 6c 75 65 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 lue).{...if.(0.===.strpos($value
d7ba0 2c 20 24 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 ,.$ret).&&.$i.!==.strlen($value)
d7bc0 29 20 7b 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 ).{.$matches[$numMatches++].=.$v
d7be0 61 6c 75 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 alue;.}.}.}....$output->write("\
d7c00 30 33 33 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 033[K");..if.($numMatches.>.0.&&
d7c20 20 2d 31 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 .-1.!==.$ofs).{...$output->write
d7c40 28 22 5c 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 ("\0337");...$output->write('<hl
d7c60 3e 27 2e 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 >'.substr($matches[$ofs],.$i).'<
d7c80 2f 68 6c 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 /hl>');...$output->write("\0338"
d7ca0 29 3b 0a 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 );.}.}....shell_exec(sprintf('st
d7cc0 74 79 20 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 ty.%s',.$sttyMode));.}..return.s
d7ce0 74 72 6c 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 trlen($ret).>.0.?.$ret.:.$defaul
d7d00 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e t;.}.............public.function
d7d20 20 61 73 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 .askConfirmation(OutputInterface
d7d40 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 .$output,.$question,.$default.=.
d7d60 74 72 75 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 true).{.$answer.=.'z';.while.($a
d7d80 6e 73 77 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 nswer.&&.!in_array(strtolower($a
d7da0 6e 73 77 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 nswer[0]),.array('y',.'n'))).{.$
d7dc0 61 6e 73 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 answer.=.$this->ask($output,.$qu
d7de0 65 73 74 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 estion);.}..if.(false.===.$defau
d7e00 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 20 73 lt).{.return.$answer.&&.'y'.==.s
d7e20 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 6e trtolower($answer[0]);.}..return
d7e40 20 21 24 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 .!$answer.||.'y'.==.strtolower($
d7e60 61 6e 73 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 answer[0]);.}.............public
d7e80 20 66 75 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 .function.askHiddenResponse(Outp
d7ea0 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 utInterface.$output,.$question,.
d7ec0 24 66 61 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 $fallback.=.true).{.if.('\\'.===
d7ee0 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 65 78 65 20 3d 20 5f .DIRECTORY_SEPARATOR).{.$exe.=._
d7f00 5f 44 49 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 _DIR__.'/../Resources/bin/hidden
d7f20 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 input.exe';....if.('phar:'.===.s
d7f40 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 ubstr(__FILE__,.0,.5)).{.$tmpExe
d7f60 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e .=.sys_get_temp_dir().'/hiddenin
d7f80 70 75 74 2e 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 put.exe';.copy($exe,.$tmpExe);.$
d7fa0 65 78 65 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 exe.=.$tmpExe;.}..$output->write
d7fc0 28 24 71 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 ($question);.$value.=.rtrim(shel
d7fe0 6c 5f 65 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 l_exec($exe));.$output->writeln(
d8000 27 27 29 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 '');..if.(isset($tmpExe)).{.unli
d8020 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 65 3b 0a 7d nk($tmpExe);.}..return.$value;.}
d8040 0a 0a 69 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 ..if.($this->hasSttyAvailable())
d8060 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 .{.$output->write($question);..$
d8080 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 74 79 20 2d 67 27 29 sttyMode.=.shell_exec('stty.-g')
d80a0 3b 0a 0a 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 ;..shell_exec('stty.-echo');.$va
d80c0 6c 75 65 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 lue.=.fgets($this->inputStream.?
d80e0 3a 20 53 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 :.STDIN,.4096);.shell_exec(sprin
d8100 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 3b 0a 0a 69 66 20 28 tf('stty.%s',.$sttyMode));..if.(
d8120 66 61 6c 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 false.===.$value).{.throw.new.\R
d8140 75 6e 74 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 untimeException('Aborted');.}..$
d8160 76 61 6c 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 value.=.trim($value);.$output->w
d8180 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 69 riteln('');..return.$value;.}..i
d81a0 66 20 28 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 f.(false.!==.$shell.=.$this->get
d81c0 53 68 65 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 Shell()).{.$output->write($quest
d81e0 69 6f 6e 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 ion);.$readCmd.=.$shell.===.'csh
d8200 27 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 '.?.'set.mypassword.=.$<'.:.'rea
d8220 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 d.-r.mypassword';.$command.=.spr
d8240 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d intf("/usr/bin/env.%s.-c.'stty.-
d8260 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 echo;.%s;.stty.echo;.echo.\$mypa
d8280 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 ssword'",.$shell,.$readCmd);.$va
d82a0 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 lue.=.rtrim(shell_exec($command)
d82c0 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 6e );.$output->writeln('');..return
d82e0 20 24 76 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 .$value;.}..if.($fallback).{.ret
d8300 75 72 6e 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 urn.$this->ask($output,.$questio
d8320 6e 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 n);.}..throw.new.\RuntimeExcepti
d8340 6f 6e 28 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 on('Unable.to.hide.the.response'
d8360 29 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 66 );.}....................public.f
d8380 75 6e 63 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 unction.askAndValidate(OutputInt
d83a0 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 76 61 6c 69 erface.$output,.$question,.$vali
d83c0 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 dator,.$attempts.=.false,.$defau
d83e0 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d lt.=.null,.array.$autocomplete.=
d8400 20 6e 75 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 .null).{.$that.=.$this;..$interv
d8420 69 65 77 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 iewer.=.function.().use.($output
d8440 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f 63 6f 6d 70 ,.$question,.$default,.$autocomp
d8460 6c 65 74 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 lete,.$that).{.return.$that->ask
d8480 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 ($output,.$question,.$default,.$
d84a0 61 75 74 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 autocomplete);.};..return.$this-
d84c0 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,.
d84e0 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);
d8500 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 66 75 6e .}....................public.fun
d8520 63 74 69 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 ction.askHiddenResponseAndValida
d8540 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 te(OutputInterface.$output,.$que
d8560 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 20 3d 20 66 stion,.$validator,.$attempts.=.f
d8580 61 6c 73 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 alse,.$fallback.=.true).{.$that.
d85a0 3d 20 24 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 =.$this;..$interviewer.=.functio
d85c0 6e 20 28 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 n.().use.($output,.$question,.$f
d85e0 61 6c 6c 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 allback,.$that).{.return.$that->
d8600 61 73 6b 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 askHiddenResponse($output,.$ques
d8620 74 69 6f 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 tion,.$fallback);.};..return.$th
d8640 69 73 2d 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 is->validateAttempts($interviewe
d8660 72 2c 20 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 r,.$output,.$validator,.$attempt
d8680 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 s);.}.........public.function.se
d86a0 74 49 6e 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 tInputStream($stream).{.$this->i
d86c0 6e 70 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 nputStream.=.$stream;.}.......pu
d86e0 62 6c 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 blic.function.getInputStream().{
d8700 0a 72 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 .return.$this->inputStream;.}...
d8720 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
d8740 74 75 72 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 turn.'dialog';.}.......private.f
d8760 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.!=
d8780 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::$
d87a0 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;.
d87c0 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')
d87e0 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.-
d8800 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
d8820 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',.
d8840 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
d8860 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
d8880 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
d88a0 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;.}
d88c0 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 76 61 69 6c 61 ..private.function.hasSttyAvaila
d88e0 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 24 73 74 74 79 ble().{.if.(null.!==.self::$stty
d8900 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 65 78 65 63 28 ).{.return.self::$stty;.}..exec(
d8920 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 63 6f 64 65 29 'stty.2>&1',.$output,.$exitcode)
d8940 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 74 63 6f 64 ;..return.self::$stty.=.$exitcod
d8960 65 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 e.===.0;.}..............private.
d8980 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 function.validateAttempts($inter
d89a0 76 69 65 77 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c viewer,.OutputInterface.$output,
d89c0 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 20 3d 20 6e .$validator,.$attempts).{.$e.=.n
d89e0 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 ull;.while.(false.===.$attempts.
d8a00 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ||.$attempts--).{.if.(null.!==.$
d8a20 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 e).{.$output->writeln($this->get
d8a40 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 2d 3e 66 HelperSet()->get('formatter')->f
d8a60 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 65 72 ormatBlock($e->getMessage(),.'er
d8a80 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 ror'));.}..try.{.return.call_use
d8aa0 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 69 6e 74 65 72 76 69 65 77 65 72 28 r_func($validator,.$interviewer(
d8ac0 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 0a 7d 0a ));.}.catch.(\Exception.$e).{.}.
d8ae0 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a }..throw.$e;.}.}.<?php..........
d8b00 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
d8b20 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e sole\Helper;..use.Symfony\Compon
d8b40 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 72 6d ent\Console\Formatter\OutputForm
d8b60 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 atter;.......class.FormatterHelp
d8b80 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 er.extends.Helper.{..........pub
d8ba0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 24 73 65 63 74 lic.function.formatSection($sect
d8bc0 69 6f 6e 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e 66 6f 27 29 0a ion,.$message,.$style.=.'info').
d8be0 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c 2f 25 73 3e 20 {.return.sprintf('<%s>[%s]</%s>.
d8c00 25 73 27 2c 20 24 73 74 79 6c 65 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 6c 65 2c 20 24 %s',.$style,.$section,.$style,.$
d8c20 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e message);.}...........public.fun
d8c40 63 74 69 6f 6e 20 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 2c 20 24 73 74 ction.formatBlock($messages,.$st
d8c60 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 28 21 69 73 5f 61 yle,.$large.=.false).{.if.(!is_a
d8c80 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 65 73 20 3d 20 61 rray($messages)).{.$messages.=.a
d8ca0 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 20 30 3b 0a 24 6c rray($messages);.}..$len.=.0;.$l
d8cc0 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 ines.=.array();.foreach.($messag
d8ce0 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 20 3d 20 4f 75 74 es.as.$message).{.$message.=.Out
d8d00 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 61 67 65 29 3b 0a putFormatter::escape($message);.
d8d20 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 3f 20 27 20 20 25 $lines[].=.sprintf($large.?.'..%
d8d40 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 24 6c 65 6e 20 3d s..'.:.'.%s.',.$message);.$len.=
d8d60 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 65 29 20 2b 20 28 .max($this->strlen($message).+.(
d8d80 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 0a 24 6d 65 73 73 $large.?.4.:.2),.$len);.}..$mess
d8da0 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 72 65 70 65 61 74 ages.=.$large.?.array(str_repeat
d8dc0 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 72 20 28 24 69 20 ('.',.$len)).:.array();.for.($i.
d8de0 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 24 69 29 20 7b 0a =.0;.isset($lines[$i]);.++$i).{.
d8e00 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 74 72 5f 72 65 70 $messages[].=.$lines[$i].str_rep
d8e20 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6c eat('.',.$len.-.$this->strlen($l
d8e40 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 7b 0a 24 6d 65 73 ines[$i]));.}.if.($large).{.$mes
d8e60 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 24 6c 65 6e 29 3b sages[].=.str_repeat('.',.$len);
d8e80 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 73 73 61 67 65 73 .}..for.($i.=.0;.isset($messages
d8ea0 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 69 5d 20 3d 20 73 [$i]);.++$i).{.$messages[$i].=.s
d8ec0 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c 65 2c 20 24 6d printf('<%s>%s</%s>',.$style,.$m
d8ee0 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 65 74 75 72 6e 20 essages[$i],.$style);.}..return.
d8f00 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a implode("\n",.$messages);.}.....
d8f20 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
d8f40 72 6e 20 27 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a rn.'formatter';.}.}.<?php.......
d8f60 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\
d8f80 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Console\Helper;..use.Symfony\Com
d8fa0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 ponent\Console\Formatter\OutputF
d8fc0 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 61 62 73 74 72 61 63 ormatterInterface;.......abstrac
d8fe0 74 20 63 6c 61 73 73 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 t.class.Helper.implements.Helper
d9000 49 6e 74 65 72 66 61 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 Interface.{.protected.$helperSet
d9020 20 3d 20 6e 75 6c 6c 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 .=.null;.......public.function.s
d9040 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 etHelperSet(HelperSet.$helperSet
d9060 20 3d 20 6e 75 6c 6c 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 .=.null).{.$this->helperSet.=.$h
d9080 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f elperSet;.}.......public.functio
d90a0 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n.getHelperSet().{.return.$this-
d90c0 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 >helperSet;.}.........public.sta
d90e0 74 69 63 20 66 75 6e 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 tic.function.strlen($string).{.i
d9100 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 f.(!function_exists('mb_strwidth
d9120 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a ')).{.return.strlen($string);.}.
d9140 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 .if.(false.===.$encoding.=.mb_de
d9160 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e tect_encoding($string)).{.return
d9180 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 .strlen($string);.}..return.mb_s
d91a0 74 72 77 69 64 74 68 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 trwidth($string,.$encoding);.}..
d91c0 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 54 69 6d public.static.function.formatTim
d91e0 65 28 24 73 65 63 73 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 e($secs).{.static.$timeFormats.=
d9200 20 61 72 72 61 79 28 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 .array(.array(0,.'<.1.sec'),.arr
d9220 61 79 28 32 2c 20 27 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 ay(2,.'1.sec'),.array(59,.'secs'
d9240 2c 20 31 29 2c 0a 61 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 ,.1),.array(60,.'1.min'),.array(
d9260 33 36 30 30 2c 20 27 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 3600,.'mins',.60),.array(5400,.'
d9280 31 20 68 72 27 29 2c 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 1.hr'),.array(86400,.'hrs',.3600
d92a0 29 2c 0a 61 72 72 61 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 ),.array(129600,.'1.day'),.array
d92c0 28 36 30 34 38 30 30 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 (604800,.'days',.86400),.);..for
d92e0 65 61 63 68 20 28 24 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 each.($timeFormats.as.$format).{
d9300 0a 69 66 20 28 24 73 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 .if.($secs.>=.$format[0]).{.cont
d9320 69 6e 75 65 3b 0a 7d 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 inue;.}..if.(2.==.count($format)
d9340 29 20 7b 0a 72 65 74 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 ).{.return.$format[1];.}..return
d9360 20 63 65 69 6c 28 24 73 65 63 73 20 2f 20 24 66 6f 72 6d 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 .ceil($secs./.$format[2]).'.'.$f
d9380 6f 72 6d 61 74 5b 31 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 ormat[1];.}.}..public.static.fun
d93a0 63 74 69 6f 6e 20 66 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 ction.formatMemory($memory).{.if
d93c0 20 28 24 6d 65 6d 6f 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 .($memory.>=.1024.*.1024.*.1024)
d93e0 20 7b 0a 72 65 74 75 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 .{.return.sprintf('%.1f.GiB',.$m
d9400 65 6d 6f 72 79 20 2f 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 emory./.1024./.1024./.1024);.}..
d9420 69 66 20 28 24 6d 65 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 if.($memory.>=.1024.*.1024).{.re
d9440 74 75 72 6e 20 73 70 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 turn.sprintf('%.1f.MiB',.$memory
d9460 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 6d 6f 72 79 20 ./.1024./.1024);.}..if.($memory.
d9480 3e 3d 20 31 30 32 34 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 >=.1024).{.return.sprintf('%d.Ki
d94a0 42 27 2c 20 24 6d 65 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 B',.$memory./.1024);.}..return.s
d94c0 70 72 69 6e 74 66 28 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 printf('%d.B',.$memory);.}..publ
d94e0 69 63 20 73 74 61 74 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 ic.static.function.strlenWithout
d9500 44 65 63 6f 72 61 74 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 Decoration(OutputFormatterInterf
d9520 61 63 65 20 24 66 6f 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 ace.$formatter,.$string).{.$isDe
d9540 63 6f 72 61 74 65 64 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 corated.=.$formatter->isDecorate
d9560 64 28 29 3b 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 66 61 d();.$formatter->setDecorated(fa
d9580 6c 73 65 29 3b 0a 0a 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 lse);...$string.=.$formatter->fo
d95a0 72 6d 61 74 28 24 73 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 rmat($string);...$string.=.preg_
d95c0 72 65 70 6c 61 63 65 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 replace("/\033\[[^m]*m/",.'',.$s
d95e0 74 72 69 6e 67 29 3b 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 tring);.$formatter->setDecorated
d9600 28 24 69 73 44 65 63 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 ($isDecorated);..return.self::st
d9620 72 6c 65 6e 28 24 73 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 rlen($string);.}.}.<?php........
d9640 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
d9660 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 48 onsole\Helper;.......interface.H
d9680 65 6c 70 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 elperInterface.{......public.fun
d96a0 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 ction.setHelperSet(HelperSet.$he
d96c0 6c 70 65 72 53 65 74 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 lperSet.=.null);.......public.fu
d96e0 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 0a 0a 0a 70 75 62 nction.getHelperSet();.......pub
d9700 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a lic.function.getName();.}.<?php.
d9720 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
d9740 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
d9760 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d ny\Component\Console\Command\Com
d9780 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 65 72 53 65 74 20 69 6d 70 6c mand;.......class.HelperSet.impl
d97a0 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 7b 0a 70 72 69 76 ements.\IteratorAggregate.{.priv
d97c0 61 74 65 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 ate.$helpers.=.array();.private.
d97e0 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 20 $command;.......public.function.
d9800 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 __construct(array.$helpers.=.arr
d9820 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 6c 70 65 72 73 20 61 73 20 24 61 6c ay()).{.foreach.($helpers.as.$al
d9840 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 68 65 ias.=>.$helper).{.$this->set($he
d9860 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 61 lper,.is_int($alias).?.null.:.$a
d9880 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f lias);.}.}........public.functio
d98a0 6e 20 73 65 74 28 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 20 24 68 65 6c 70 65 72 2c 20 24 n.set(HelperInterface.$helper,.$
d98c0 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 alias.=.null).{.$this->helpers[$
d98e0 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 66 helper->getName()].=.$helper;.if
d9900 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 .(null.!==.$alias).{.$this->help
d9920 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 65 ers[$alias].=.$helper;.}..$helpe
d9940 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a r->setHelperSet($this);.}.......
d9960 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
d9980 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 eturn.isset($this->helpers[$name
d99a0 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ]);.}...........public.function.
d99c0 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 28 24 6e 61 get($name).{.if.(!$this->has($na
d99e0 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e me)).{.throw.new.\InvalidArgumen
d9a00 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 68 65 6c 70 65 72 20 22 tException(sprintf('The.helper."
d9a20 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d %s".is.not.defined.',.$name));.}
d9a40 0a 0a 69 66 20 28 27 64 69 61 6c 6f 67 27 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 74 68 69 ..if.('dialog'.===.$name.&&.$thi
d9a60 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 44 69 61 s->helpers[$name].instanceof.Dia
d9a80 6c 6f 67 48 65 6c 70 65 72 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 22 53 79 logHelper).{.@trigger_error('"Sy
d9aa0 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 44 mfony\Component\Console\Helper\D
d9ac0 69 61 6c 6f 67 48 65 6c 70 65 72 22 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 ialogHelper".is.deprecated.since
d9ae0 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 .version.2.5.and.will.be.removed
d9b00 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 22 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c .in.3.0..Use."Symfony\Component\
d9b20 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 22 20 69 Console\Helper\QuestionHelper".i
d9b40 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 7d 20 nstead.',.E_USER_DEPRECATED);.}.
d9b60 65 6c 73 65 69 66 20 28 27 70 72 6f 67 72 65 73 73 27 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 elseif.('progress'.===.$name.&&.
d9b80 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 20 69 6e 73 74 61 6e 63 65 6f 66 $this->helpers[$name].instanceof
d9ba0 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f .ProgressHelper).{.@trigger_erro
d9bc0 72 28 27 22 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 r('"Symfony\Component\Console\He
d9be0 6c 70 65 72 5c 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 22 20 69 73 20 64 65 70 72 65 63 61 74 lper\ProgressHelper".is.deprecat
d9c00 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 6c 6c 20 62 65 ed.since.version.2.5.and.will.be
d9c20 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 22 53 79 6d 66 6f 6e 79 5c 43 6f .removed.in.3.0..Use."Symfony\Co
d9c40 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 50 72 6f 67 72 65 73 73 42 mponent\Console\Helper\ProgressB
d9c60 61 72 22 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 ar".instead.',.E_USER_DEPRECATED
d9c80 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 74 61 62 6c 65 27 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 );.}.elseif.('table'.===.$name.&
d9ca0 26 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 20 69 6e 73 74 61 6e 63 65 &.$this->helpers[$name].instance
d9cc0 6f 66 20 54 61 62 6c 65 48 65 6c 70 65 72 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 of.TableHelper).{.@trigger_error
d9ce0 28 27 22 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 ('"Symfony\Component\Console\Hel
d9d00 70 65 72 5c 54 61 62 6c 65 48 65 6c 70 65 72 22 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 73 per\TableHelper".is.deprecated.s
d9d20 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d ince.version.2.5.and.will.be.rem
d9d40 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 22 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e oved.in.3.0..Use."Symfony\Compon
d9d60 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 22 20 69 6e 73 74 65 61 ent\Console\Helper\Table".instea
d9d80 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 7d 0a 0a 72 65 74 75 d.',.E_USER_DEPRECATED);.}..retu
d9da0 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a rn.$this->helpers[$name];.}.....
d9dc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d ..public.function.setCommand(Com
d9de0 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 mand.$command.=.null).{.$this->c
d9e00 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ommand.=.$command;.}.......publi
d9e20 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getCommand().{.return
d9e40 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this->command;.}..public.funct
d9e60 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c ion.getIterator().{.return.new.\
d9e80 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 29 3b 0a 7d ArrayIterator($this->helpers);.}
d9ea0 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
d9ec0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a fony\Component\Console\Helper;..
d9ee0 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
d9f00 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
d9f20 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 77 61 Component\Console\Input\InputAwa
d9f40 72 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 reInterface;.......abstract.clas
d9f60 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 s.InputAwareHelper.extends.Helpe
d9f80 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 r.implements.InputAwareInterface
d9fa0 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .{.protected.$input;.....public.
d9fc0 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 function.setInput(InputInterface
d9fe0 20 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 .$input).{.$this->input.=.$input
da000 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.
da020 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 Symfony\Component\Console\Helper
da040 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
da060 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a \Output\ConsoleOutputInterface;.
da080 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
da0a0 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
da0c0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 50 72 y\Component\Process\Exception\Pr
da0e0 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 6d 66 6f 6e ocessFailedException;.use.Symfon
da100 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
da120 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 .Symfony\Component\Process\Proce
da140 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 73 73 48 65 ssBuilder;.......class.ProcessHe
da160 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lper.extends.Helper.{...........
da180 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 49 6e 74 65 ..public.function.run(OutputInte
da1a0 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 3d 20 6e 75 rface.$output,.$cmd,.$error.=.nu
da1c0 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 73 69 74 79 ll,.$callback.=.null,.$verbosity
da1e0 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 59 5f 56 45 .=.OutputInterface::VERBOSITY_VE
da200 52 59 5f 56 45 52 42 4f 53 45 29 0a 7b 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e RY_VERBOSE).{.if.($output.instan
da220 63 65 6f 66 20 43 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 ceof.ConsoleOutputInterface).{.$
da240 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 output.=.$output->getErrorOutput
da260 28 29 3b 0a 7d 0a 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 ();.}..$formatter.=.$this->getHe
da280 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 65 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 27 lperSet()->get('debug_formatter'
da2a0 29 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 6d 64 29 29 20 7b 0a 24 70 72 6f 63 65 );..if.(is_array($cmd)).{.$proce
da2c0 73 73 20 3d 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3a 3a 63 72 65 61 74 65 28 24 63 6d 64 ss.=.ProcessBuilder::create($cmd
da2e0 29 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 6d 64 20 )->getProcess();.}.elseif.($cmd.
da300 69 6e 73 74 61 6e 63 65 6f 66 20 50 72 6f 63 65 73 73 29 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d instanceof.Process).{.$process.=
da320 20 24 63 6d 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 .$cmd;.}.else.{.$process.=.new.P
da340 72 6f 63 65 73 73 28 24 63 6d 64 29 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 69 74 79 20 rocess($cmd);.}..if.($verbosity.
da360 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 6f <=.$output->getVerbosity()).{.$o
da380 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 74 65 72 2d 3e 73 74 61 72 74 28 73 utput->write($formatter->start(s
da3a0 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 69 73 2d pl_object_hash($process),.$this-
da3c0 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 >escapeString($process->getComma
da3e0 6e 64 4c 69 6e 65 28 29 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 2d 3e 69 73 44 ndLine())));.}..if.($output->isD
da400 65 62 75 67 28 29 29 20 7b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 77 72 61 ebug()).{.$callback.=.$this->wra
da420 70 43 61 6c 6c 62 61 63 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 63 61 pCallback($output,.$process,.$ca
da440 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 llback);.}..$process->run($callb
da460 61 63 6b 29 3b 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 69 74 79 20 3c 3d 20 24 6f 75 74 70 75 74 ack);..if.($verbosity.<=.$output
da480 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 ->getVerbosity()).{.$message.=.$
da4a0 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 20 3f 20 27 43 6f 6d 6d 61 process->isSuccessful().?.'Comma
da4c0 6e 64 20 72 61 6e 20 73 75 63 63 65 73 73 66 75 6c 6c 79 27 20 3a 20 73 70 72 69 6e 74 66 28 27 nd.ran.successfully'.:.sprintf('
da4e0 25 73 20 43 6f 6d 6d 61 6e 64 20 64 69 64 20 6e 6f 74 20 72 75 6e 20 73 75 63 63 65 73 73 66 75 %s.Command.did.not.run.successfu
da500 6c 6c 79 27 2c 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 29 3b 0a lly',.$process->getExitCode());.
da520 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 74 65 72 2d 3e 73 74 6f 70 28 $output->write($formatter->stop(
da540 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 6d 65 73 73 spl_object_hash($process),.$mess
da560 61 67 65 2c 20 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 29 3b age,.$process->isSuccessful()));
da580 0a 7d 0a 0a 69 66 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 .}..if.(!$process->isSuccessful(
da5a0 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d ).&&.null.!==.$error).{.$output-
da5c0 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 25 73 3c 2f 65 72 72 >writeln(sprintf('<error>%s</err
da5e0 6f 72 3e 27 2c 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 65 72 72 6f 72 or>',.$this->escapeString($error
da600 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a )));.}..return.$process;.}......
da620 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 6d 75 ..............public.function.mu
da640 73 74 52 75 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 stRun(OutputInterface.$output,.$
da660 63 6d 64 2c 20 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 cmd,.$error.=.null,.$callback.=.
da680 6e 75 6c 6c 29 0a 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6e 28 24 6f null).{.$process.=.$this->run($o
da6a0 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 2c 20 24 63 61 6c 6c 62 61 63 6b 29 3b utput,.$cmd,.$error,.$callback);
da6c0 0a 0a 69 66 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 ..if.(!$process->isSuccessful())
da6e0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 .{.throw.new.ProcessFailedExcept
da700 69 6f 6e 28 24 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 ion($process);.}..return.$proces
da720 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 6e 20 77 s;.}...........public.function.w
da740 72 61 70 43 61 6c 6c 62 61 63 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 rapCallback(OutputInterface.$out
da760 70 75 74 2c 20 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 2c 20 24 63 61 6c 6c 62 61 63 6b put,.Process.$process,.$callback
da780 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f .=.null).{.if.($output.instanceo
da7a0 66 20 43 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 f.ConsoleOutputInterface).{.$out
da7c0 70 75 74 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b put.=.$output->getErrorOutput();
da7e0 0a 7d 0a 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 .}..$formatter.=.$this->getHelpe
da800 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 65 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a rSet()->get('debug_formatter');.
da820 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e .$that.=.$this;..return.function
da840 20 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 .($type,.$buffer).use.($output,.
da860 24 70 72 6f 63 65 73 73 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 66 6f 72 6d 61 74 74 65 72 2c $process,.$callback,.$formatter,
da880 20 24 74 68 61 74 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 .$that).{.$output->write($format
da8a0 74 65 72 2d 3e 70 72 6f 67 72 65 73 73 28 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 ter->progress(spl_object_hash($p
da8c0 72 6f 63 65 73 73 29 2c 20 24 74 68 61 74 2d 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 62 75 rocess),.$that->escapeString($bu
da8e0 66 66 65 72 29 2c 20 50 72 6f 63 65 73 73 3a 3a 45 52 52 20 3d 3d 3d 20 24 74 79 70 65 29 29 3b ffer),.Process::ERR.===.$type));
da900 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c ..if.(null.!==.$callback).{.call
da920 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 62 75 _user_func($callback,.$type,.$bu
da940 66 66 65 72 29 3b 0a 7d 0a 7d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ffer);.}.};.}.......public.funct
da960 69 6f 6e 20 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 ion.escapeString($str).{.return.
da980 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3c 27 2c 20 27 5c 5c 3c 27 2c 20 24 73 74 72 29 3b 0a 7d str_replace('<',.'\\<',.$str);.}
da9a0 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 7b .....public.function.getName().{
da9c0 0a 72 65 74 75 72 6e 20 27 70 72 6f 63 65 73 73 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a .return.'process';.}.}.<?php....
da9e0 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
daa00 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\
daa20 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 Component\Console\Output\Console
daa40 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d OutputInterface;.use.Symfony\Com
daa60 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
daa80 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 67 72 65 73 73 42 61 72 0a rface;........class.ProgressBar.
daaa0 7b 0a 0a 20 70 72 69 76 61 74 65 20 24 62 61 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 {...private.$barWidth.=.28;.priv
daac0 61 74 65 20 24 62 61 72 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 ate.$barChar;.private.$emptyBarC
daae0 68 61 72 20 3d 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 har.=.'-';.private.$progressChar
dab00 20 3d 20 27 3e 27 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 .=.'>';.private.$format;.private
dab20 20 24 69 6e 74 65 72 6e 61 6c 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 72 65 64 72 61 .$internalFormat;.private.$redra
dab40 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 74 3b 0a wFreq.=.1;.....private.$output;.
dab60 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 61 78 3b private.$step.=.0;.private.$max;
dab80 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 24 73 74 .private.$startTime;.private.$st
daba0 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 2e 30 3b epWidth;.private.$percent.=.0.0;
dabc0 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 3d 20 30 .private.$lastMessagesLength.=.0
dabe0 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 72 69 76 ;.private.$formatLineCount;.priv
dac00 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 72 69 74 ate.$messages;.private.$overwrit
dac20 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 72 6d 61 e.=.true;..private.static.$forma
dac40 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 73 3b 0a tters;.private.static.$formats;.
dac60 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
dac80 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 6d 61 78 ct(OutputInterface.$output,.$max
daca0 20 3d 20 30 29 0a 7b 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 .=.0).{.if.($output.instanceof.C
dacc0 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
dace0 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a .=.$output->getErrorOutput();.}.
dad00 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d .$this->output.=.$output;.$this-
dad20 3e 73 65 74 4d 61 78 53 74 65 70 73 28 24 6d 61 78 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d >setMaxSteps($max);..if.(!$this-
dad40 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 29 20 7b 0a 0a 20 24 74 68 69 >output->isDecorated()).{...$thi
dad60 73 2d 3e 6f 76 65 72 77 72 69 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 24 74 68 69 73 s->overwrite.=.false;..if.($this
dad80 2d 3e 6d 61 78 20 3e 20 31 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 65 74 52 65 64 72 61 77 ->max.>.10).{...$this->setRedraw
dada0 46 72 65 71 75 65 6e 63 79 28 24 6d 61 78 20 2f 20 31 30 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 Frequency($max./.10);.}.}..$this
dadc0 2d 3e 73 74 61 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 ->startTime.=.time();.}.........
dade0 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 65 74 50 6c 61 63 65 .public.static.function.setPlace
dae00 68 6f 6c 64 65 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 holderFormatterDefinition($name,
dae20 20 24 63 61 6c 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 .$callable).{.if.(!self::$format
dae40 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 66 ters).{.self::$formatters.=.self
dae60 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 7d ::initPlaceholderFormatters();.}
dae80 0a 0a 73 65 6c 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 ..self::$formatters[$name].=.$ca
daea0 6c 6c 61 62 6c 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 llable;.}.........public.static.
daec0 66 75 6e 63 74 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 function.getPlaceholderFormatter
daee0 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::$
daf00 66 6f 72 6d 61 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 formatters).{.self::$formatters.
daf20 3d 20 73 65 6c 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 =.self::initPlaceholderFormatter
daf40 73 28 29 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 66 6f 72 6d s();.}..return.isset(self::$form
daf60 61 74 74 65 72 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 atters[$name]).?.self::$formatte
daf80 72 73 5b 24 6e 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 rs[$name].:.null;.}..........pub
dafa0 6c 69 63 20 73 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 lic.static.function.setFormatDef
dafc0 69 6e 69 74 69 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 inition($name,.$format).{.if.(!s
dafe0 65 6c 66 3a 3a 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 elf::$formats).{.self::$formats.
db000 3d 20 73 65 6c 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 =.self::initFormats();.}..self::
db020 24 66 6f 72 6d 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 $formats[$name].=.$format;.}....
db040 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 67 65 74 46 .....public.static.function.getF
db060 6f 72 6d 61 74 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 ormatDefinition($name).{.if.(!se
db080 6c 66 3a 3a 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 lf::$formats).{.self::$formats.=
db0a0 20 73 65 6c 66 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 .self::initFormats();.}..return.
db0c0 69 73 73 65 74 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 isset(self::$formats[$name]).?.s
db0e0 65 6c 66 3a 3a 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 elf::$formats[$name].:.null;.}..
db100 70 75 62 6c 69 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 public.function.setMessage($mess
db120 61 67 65 2c 20 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 age,.$name.=.'message').{.$this-
db140 3e 6d 65 73 73 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 >messages[$name].=.$message;.}..
db160 70 75 62 6c 69 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 public.function.getMessage($name
db180 20 3d 20 27 6d 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 .=.'message').{.return.$this->me
db1a0 73 73 61 67 65 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 ssages[$name];.}.......public.fu
db1c0 6e 63 74 69 6f 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 nction.getStartTime().{.return.$
db1e0 74 68 69 73 2d 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 this->startTime;.}.......public.
db200 66 75 6e 63 74 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 function.getMaxSteps().{.return.
db220 24 74 68 69 73 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 $this->max;.}.........public.fun
db240 63 74 69 6f 6e 20 67 65 74 53 74 65 70 28 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 ction.getStep().{.@trigger_error
db260 28 27 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 ('The.'.__METHOD__.'.method.is.d
db280 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 36 20 61 6e 64 20 eprecated.since.version.2.6.and.
db2a0 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 74 68 65 20 will.be.removed.in.3.0..Use.the.
db2c0 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 6d 65 74 68 6f 64 20 69 6e 73 74 65 61 64 2e 27 2c 20 getProgress().method.instead.',.
db2e0 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 E_USER_DEPRECATED);..return.$thi
db300 73 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 s->getProgress();.}.......public
db320 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 67 72 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getProgress().{.return
db340 20 24 74 68 69 73 2d 3e 73 74 65 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$this->step;.}.........public.f
db360 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 65 70 57 69 64 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.getStepWidth().{.return.
db380 24 74 68 69 73 2d 3e 73 74 65 70 57 69 64 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $this->stepWidth;.}.......public
db3a0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 29 0a 7b .function.getProgressPercent().{
db3c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .return.$this->percent;.}.......
db3e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a public.function.setBarWidth($siz
db400 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 e).{.$this->barWidth.=.(int).$si
db420 7a 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 42 ze;.}.......public.function.getB
db440 61 72 57 69 64 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 arWidth().{.return.$this->barWid
db460 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 th;.}.......public.function.setB
db480 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 62 61 72 43 arCharacter($char).{.$this->barC
db4a0 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 20 66 75 6e 63 har.=.$char;.}.......public.func
db4c0 74 69 6f 6e 20 67 65 74 42 61 72 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c tion.getBarCharacter().{.if.(nul
db4e0 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 l.===.$this->barChar).{.return.$
db500 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 3d 27 20 3a 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 this->max.?.'='.:.$this->emptyBa
db520 72 43 68 61 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 3b rChar;.}..return.$this->barChar;
db540 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 .}.......public.function.setEmpt
db560 79 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d yBarCharacter($char).{.$this->em
db580 70 74 79 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ptyBarChar.=.$char;.}.......publ
db5a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 ic.function.getEmptyBarCharacter
db5c0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b ().{.return.$this->emptyBarChar;
db5e0 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 6f 67 .}.......public.function.setProg
db600 72 65 73 73 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 70 72 ressCharacter($char).{.$this->pr
db620 6f 67 72 65 73 73 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 ogressChar.=.$char;.}.......publ
db640 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 ic.function.getProgressCharacter
db660 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b ().{.return.$this->progressChar;
db680 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 46 6f 72 6d .}.......public.function.setForm
db6a0 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 3d 20 6e 75 at($format).{.$this->format.=.nu
db6c0 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 6e 61 6c 46 6f 72 6d 61 74 20 3d 20 24 66 6f 72 ll;.$this->internalFormat.=.$for
db6e0 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 6f 6e 20 73 65 74 mat;.}.......public.function.set
db700 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 74 68 69 73 2d 3e RedrawFrequency($freq).{.$this->
db720 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 7d 0a 0a 0a 0a 0a redrawFreq.=.(int).$freq;.}.....
db740 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 6d 61 78 20 3d 20 6e ..public.function.start($max.=.n
db760 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()
db780 3b 0a 24 74 68 69 73 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 ;.$this->step.=.0;.$this->percen
db7a0 74 20 3d 20 30 2e 30 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 t.=.0.0;..if.(null.!==.$max).{.$
db7c0 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 7d 0a 0a 24 74 68 69 this->setMaxSteps($max);.}..$thi
db7e0 73 2d 3e 64 69 73 70 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 s->display();.}.........public.f
db800 75 6e 63 74 69 6f 6e 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 unction.advance($step.=.1).{.$th
db820 69 73 2d 3e 73 65 74 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 is->setProgress($this->step.+.$s
db840 74 65 70 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 tep);.}...........public.functio
db860 6e 20 73 65 74 43 75 72 72 65 6e 74 28 24 73 74 65 70 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 n.setCurrent($step).{.@trigger_e
db880 72 72 6f 72 28 27 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 rror('The.'.__METHOD__.'.method.
db8a0 69 73 20 64 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 36 20 is.deprecated.since.version.2.6.
db8c0 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 and.will.be.removed.in.3.0..Use.
db8e0 74 68 65 20 73 65 74 50 72 6f 67 72 65 73 73 28 29 20 6d 65 74 68 6f 64 20 69 6e 73 74 65 61 64 the.setProgress().method.instead
db900 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e .',.E_USER_DEPRECATED);..$this->
db920 73 65 74 50 72 6f 67 72 65 73 73 28 24 73 74 65 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c setProgress($step);.}.......publ
db940 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 76 65 72 77 72 69 74 65 28 24 6f 76 65 72 77 72 ic.function.setOverwrite($overwr
db960 69 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 20 3d 20 28 62 6f 6f 6c 29 ite).{.$this->overwrite.=.(bool)
db980 20 24 6f 76 65 72 77 72 69 74 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$overwrite;.}.........public.fu
db9a0 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 73 28 24 73 74 65 70 29 0a 7b 0a 24 73 74 65 nction.setProgress($step).{.$ste
db9c0 70 20 3d 20 28 69 6e 74 29 20 24 73 74 65 70 3b 0a 69 66 20 28 24 73 74 65 70 20 3c 20 24 74 68 p.=.(int).$step;.if.($step.<.$th
db9e0 69 73 2d 3e 73 74 65 70 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 is->step).{.throw.new.\LogicExce
dba00 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 5c 27 74 20 72 65 67 72 65 73 73 20 74 68 65 20 70 72 ption('You.can\'t.regress.the.pr
dba20 6f 67 72 65 73 73 20 62 61 72 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 ogress.bar.');.}..if.($this->max
dba40 20 26 26 20 24 73 74 65 70 20 3e 20 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d .&&.$step.>.$this->max).{.$this-
dba60 3e 6d 61 78 20 3d 20 24 73 74 65 70 3b 0a 7d 0a 0a 24 70 72 65 76 50 65 72 69 6f 64 20 3d 20 28 >max.=.$step;.}..$prevPeriod.=.(
dba80 69 6e 74 29 20 28 24 74 68 69 73 2d 3e 73 74 65 70 20 2f 20 24 74 68 69 73 2d 3e 72 65 64 72 61 int).($this->step./.$this->redra
dbaa0 77 46 72 65 71 29 3b 0a 24 63 75 72 72 50 65 72 69 6f 64 20 3d 20 28 69 6e 74 29 20 28 24 73 74 wFreq);.$currPeriod.=.(int).($st
dbac0 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 74 68 69 73 2d 3e ep./.$this->redrawFreq);.$this->
dbae0 73 74 65 70 20 3d 20 24 73 74 65 70 3b 0a 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 20 3d 20 24 step.=.$step;.$this->percent.=.$
dbb00 74 68 69 73 2d 3e 6d 61 78 20 3f 20 28 66 6c 6f 61 74 29 20 24 74 68 69 73 2d 3e 73 74 65 70 20 this->max.?.(float).$this->step.
dbb20 2f 20 24 74 68 69 73 2d 3e 6d 61 78 20 3a 20 30 3b 0a 69 66 20 28 24 70 72 65 76 50 65 72 69 6f /.$this->max.:.0;.if.($prevPerio
dbb40 64 20 21 3d 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 d.!==.$currPeriod.||.$this->max.
dbb60 3d 3d 3d 20 24 73 74 65 70 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d ===.$step).{.$this->display();.}
dbb80 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a .}.....public.function.finish().
dbba0 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 {.if.(!$this->max).{.$this->max.
dbbc0 3d 20 24 74 68 69 73 2d 3e 73 74 65 70 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 65 =.$this->step;.}..if.($this->ste
dbbe0 70 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 61 78 20 26 26 20 21 24 74 68 69 73 2d 3e 6f 76 65 72 p.===.$this->max.&&.!$this->over
dbc00 77 72 69 74 65 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 write).{...return;.}..$this->set
dbc20 50 72 6f 67 72 65 73 73 28 24 74 68 69 73 2d 3e 6d 61 78 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c Progress($this->max);.}.....publ
dbc40 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 28 29 0a 7b 0a 69 66 20 28 4f 75 74 70 ic.function.display().{.if.(Outp
dbc60 75 74 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 20 3d 3d 3d utInterface::VERBOSITY_QUIET.===
dbc80 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 29 20 .$this->output->getVerbosity()).
dbca0 7b 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 74 68 69 73 2d {.return;.}..if.(null.===.$this-
dbcc0 3e 66 6f 72 6d 61 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 52 65 61 6c 46 6f 72 6d 61 74 28 >format).{.$this->setRealFormat(
dbce0 24 74 68 69 73 2d 3e 69 6e 74 65 72 6e 61 6c 46 6f 72 6d 61 74 20 3f 3a 20 24 74 68 69 73 2d 3e $this->internalFormat.?:.$this->
dbd00 64 65 74 65 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 28 29 29 3b 0a 7d 0a 0a 0a 20 24 73 65 determineBestFormat());.}....$se
dbd20 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 lf.=.$this;.$output.=.$this->out
dbd40 70 75 74 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 73 put;.$messages.=.$this->messages
dbd60 3b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 70 72 65 67 5f 72 65 70 6c 61 63 65 5f ;.$this->overwrite(preg_replace_
dbd80 63 61 6c 6c 62 61 63 6b 28 22 7b 25 28 5b 61 2d 7a 5c 2d 5f 5d 2b 29 28 3f 3a 5c 3a 28 5b 5e 25 callback("{%([a-z\-_]+)(?:\:([^%
dbda0 5d 2b 29 29 3f 25 7d 69 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 ]+))?%}i",.function.($matches).u
dbdc0 73 65 20 28 24 73 65 6c 66 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 73 29 20 7b se.($self,.$output,.$messages).{
dbde0 0a 69 66 20 28 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 73 65 6c 66 3a 3a 67 65 74 50 6c 61 63 .if.($formatter.=.$self::getPlac
dbe00 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e 69 74 69 6f 6e 28 24 6d 61 74 63 eholderFormatterDefinition($matc
dbe20 68 65 73 5b 31 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e hes[1])).{.$text.=.call_user_fun
dbe40 63 28 24 66 6f 72 6d 61 74 74 65 72 2c 20 24 73 65 6c 66 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d c($formatter,.$self,.$output);.}
dbe60 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 65 73 73 61 67 65 73 5b 24 6d 61 74 63 68 65 .elseif.(isset($messages[$matche
dbe80 73 5b 31 5d 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 24 6d 65 73 73 61 67 65 73 5b 24 6d 61 74 s[1]])).{.$text.=.$messages[$mat
dbea0 63 68 65 73 5b 31 5d 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 ches[1]];.}.else.{.return.$match
dbec0 65 73 5b 30 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 es[0];.}..if.(isset($matches[2])
dbee0 29 20 7b 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 66 28 27 25 27 2e 24 6d 61 74 63 68 65 73 ).{.$text.=.sprintf('%'.$matches
dbf00 5b 32 5d 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 2c [2],.$text);.}..return.$text;.},
dbf20 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$this->format));.}.........publ
dbf40 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 ic.function.clear().{.if.(!$this
dbf60 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 ->overwrite).{.return;.}..if.(nu
dbf80 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 ll.===.$this->format).{.$this->s
dbfa0 65 74 52 65 61 6c 46 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 69 6e 74 65 72 6e 61 6c 46 6f 72 6d etRealFormat($this->internalForm
dbfc0 61 74 20 3f 3a 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 at.?:.$this->determineBestFormat
dbfe0 28 29 29 3b 0a 7d 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 ());.}..$this->overwrite(str_rep
dc000 65 61 74 28 22 5c 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 eat("\n",.$this->formatLineCount
dc020 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ));.}.......private.function.set
dc040 52 65 61 6c 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 68 RealFormat($format).{...if.(!$th
dc060 69 73 2d 3e 6d 61 78 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 is->max.&&.null.!==.self::getFor
dc080 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 6d 61 74 2e 27 5f 6e 6f 6d 61 78 27 29 29 matDefinition($format.'_nomax'))
dc0a0 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 65 74 46 6f 72 6d .{.$this->format.=.self::getForm
dc0c0 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 6d 61 74 2e 27 5f 6e 6f 6d 61 78 27 29 3b 0a atDefinition($format.'_nomax');.
dc0e0 7d 20 65 6c 73 65 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d }.elseif.(null.!==.self::getForm
dc100 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 6d 61 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e atDefinition($format)).{.$this->
dc120 66 6f 72 6d 61 74 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 format.=.self::getFormatDefiniti
dc140 6f 6e 28 24 66 6f 72 6d 61 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 on($format);.}.else.{.$this->for
dc160 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c mat.=.$format;.}..$this->formatL
dc180 69 6e 65 43 6f 75 6e 74 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 ineCount.=.substr_count($this->f
dc1a0 6f 72 6d 61 74 2c 20 22 5c 6e 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ormat,."\n");.}.......private.fu
dc1c0 6e 63 74 69 6f 6e 20 73 65 74 4d 61 78 53 74 65 70 73 28 24 6d 61 78 29 0a 7b 0a 24 74 68 69 73 nction.setMaxSteps($max).{.$this
dc1e0 2d 3e 6d 61 78 20 3d 20 6d 61 78 28 30 2c 20 28 69 6e 74 29 20 24 6d 61 78 29 3b 0a 24 74 68 69 ->max.=.max(0,.(int).$max);.$thi
dc200 73 2d 3e 73 74 65 70 57 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 48 65 6c 70 s->stepWidth.=.$this->max.?.Help
dc220 65 72 3a 3a 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 78 29 20 3a 20 34 3b 0a 7d 0a 0a 0a er::strlen($this->max).:.4;.}...
dc240 0a 0a 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 24 ....private.function.overwrite($
dc260 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6c 69 6e 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 message).{.$lines.=.explode("\n"
dc280 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 ,.$message);....if.(null.!==.$th
dc2a0 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 29 20 7b 0a 66 6f 72 65 61 63 is->lastMessagesLength).{.foreac
dc2c0 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 h.($lines.as.$i.=>.$line).{.if.(
dc2e0 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 3e 20 48 65 6c 70 $this->lastMessagesLength.>.Help
dc300 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 er::strlenWithoutDecoration($thi
dc320 73 2d 3e 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 6c 69 6e 65 s->output->getFormatter(),.$line
dc340 29 29 20 7b 0a 24 6c 69 6e 65 73 5b 24 69 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 6c 69 6e 65 2c )).{.$lines[$i].=.str_pad($line,
dc360 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 2c 20 22 5c 78 32 .$this->lastMessagesLength,."\x2
dc380 30 22 2c 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 0",.STR_PAD_RIGHT);.}.}.}..if.($
dc3a0 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 this->overwrite).{...$this->outp
dc3c0 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 30 44 22 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 ut->write("\x0D");.}.elseif.($th
dc3e0 69 73 2d 3e 73 74 65 70 20 3e 20 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d is->step.>.0).{...$this->output-
dc400 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 72 6d >writeln('');.}..if.($this->form
dc420 61 74 4c 69 6e 65 43 6f 75 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 atLineCount).{.$this->output->wr
dc440 69 74 65 28 73 70 72 69 6e 74 66 28 22 5c 30 33 33 5b 25 64 41 22 2c 20 24 74 68 69 73 2d 3e 66 ite(sprintf("\033[%dA",.$this->f
dc460 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 ormatLineCount));.}.$this->outpu
dc480 74 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6c 69 6e 65 73 29 29 3b t->write(implode("\n",.$lines));
dc4a0 0a 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 30 3b ..$this->lastMessagesLength.=.0;
dc4c0 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 65 .foreach.($lines.as.$line).{.$le
dc4e0 6e 20 3d 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 n.=.Helper::strlenWithoutDecorat
dc500 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 65 72 28 ion($this->output->getFormatter(
dc520 29 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 65 6e 20 3e 20 24 74 68 69 73 2d 3e 6c 61 73 ),.$line);.if.($len.>.$this->las
dc540 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 tMessagesLength).{.$this->lastMe
dc560 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 6c 65 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 ssagesLength.=.$len;.}.}.}..priv
dc580 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 ate.function.determineBestFormat
dc5a0 28 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 ().{.switch.($this->output->getV
dc5c0 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 0a 20 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 erbosity()).{...case.OutputInter
dc5e0 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3a 0a 72 65 74 75 72 6e 20 face::VERBOSITY_VERBOSE:.return.
dc600 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 76 65 72 62 6f 73 65 27 20 3a 20 27 76 65 72 62 6f 73 $this->max.?.'verbose'.:.'verbos
dc620 65 5f 6e 6f 6d 61 78 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 e_nomax';.case.OutputInterface::
dc640 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 3a 0a 72 65 74 75 72 6e 20 24 VERBOSITY_VERY_VERBOSE:.return.$
dc660 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 76 65 72 79 5f 76 65 72 62 6f 73 65 27 20 3a 20 27 76 65 this->max.?.'very_verbose'.:.'ve
dc680 72 79 5f 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e ry_verbose_nomax';.case.OutputIn
dc6a0 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 3a 0a 72 65 74 75 72 6e terface::VERBOSITY_DEBUG:.return
dc6c0 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 64 65 62 75 67 27 20 3a 20 27 64 65 62 75 67 5f 6e .$this->max.?.'debug'.:.'debug_n
dc6e0 6f 6d 61 78 27 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 omax';.default:.return.$this->ma
dc700 78 20 3f 20 27 6e 6f 72 6d 61 6c 27 20 3a 20 27 6e 6f 72 6d 61 6c 5f 6e 6f 6d 61 78 27 3b 0a 7d x.?.'normal'.:.'normal_nomax';.}
dc720 0a 7d 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 69 74 .}..private.static.function.init
dc740 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e PlaceholderFormatters().{.return
dc760 20 61 72 72 61 79 28 0a 27 62 61 72 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 .array(.'bar'.=>.function.(Progr
dc780 65 73 73 42 61 72 20 24 62 61 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 essBar.$bar,.OutputInterface.$ou
dc7a0 74 70 75 74 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 28 24 62 tput).{.$completeBars.=.floor($b
dc7c0 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 20 3e 20 30 20 3f 20 24 62 61 72 2d 3e 67 65 ar->getMaxSteps().>.0.?.$bar->ge
dc7e0 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 29 20 2a 20 24 62 61 72 2d 3e 67 65 74 42 61 tProgressPercent().*.$bar->getBa
dc800 72 57 69 64 74 68 28 29 20 3a 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 25 rWidth().:.$bar->getProgress().%
dc820 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 29 29 3b 0a 24 64 69 73 70 6c 61 79 20 .$bar->getBarWidth());.$display.
dc840 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 62 61 72 2d 3e 67 65 74 42 61 72 43 68 61 72 61 63 74 =.str_repeat($bar->getBarCharact
dc860 65 72 28 29 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6c er(),.$completeBars);.if.($compl
dc880 65 74 65 42 61 72 73 20 3c 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 29 29 20 7b eteBars.<.$bar->getBarWidth()).{
dc8a0 0a 24 65 6d 70 74 79 42 61 72 73 20 3d 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 .$emptyBars.=.$bar->getBarWidth(
dc8c0 29 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 2d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c ).-.$completeBars.-.Helper::strl
dc8e0 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 enWithoutDecoration($output->get
dc900 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 43 68 Formatter(),.$bar->getProgressCh
dc920 61 72 61 63 74 65 72 28 29 29 3b 0a 24 64 69 73 70 6c 61 79 20 2e 3d 20 24 62 61 72 2d 3e 67 65 aracter());.$display..=.$bar->ge
dc940 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 29 2e 73 74 72 5f 72 65 70 65 61 74 28 tProgressCharacter().str_repeat(
dc960 24 62 61 72 2d 3e 67 65 74 45 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 29 2c 20 24 65 $bar->getEmptyBarCharacter(),.$e
dc980 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d mptyBars);.}..return.$display;.}
dc9a0 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 ,.'elapsed'.=>.function.(Progres
dc9c0 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d sBar.$bar).{.return.Helper::form
dc9e0 61 74 54 69 6d 65 28 74 69 6d 65 28 29 20 2d 20 24 62 61 72 2d 3e 67 65 74 53 74 61 72 74 54 69 atTime(time().-.$bar->getStartTi
dca00 6d 65 28 29 29 3b 0a 7d 2c 0a 27 72 65 6d 61 69 6e 69 6e 67 27 20 3d 3e 20 66 75 6e 63 74 69 6f me());.},.'remaining'.=>.functio
dca20 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 21 24 62 61 72 n.(ProgressBar.$bar).{.if.(!$bar
dca40 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 77 20 5c 4c 6f ->getMaxSteps()).{.throw.new.\Lo
dca60 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 70 6c 61 79 20 gicException('Unable.to.display.
dca80 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 74 69 6d 65 20 69 66 20 74 68 65 20 6d 61 78 69 6d 75 the.remaining.time.if.the.maximu
dcaa0 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 74 2e 27 29 3b m.number.of.steps.is.not.set.');
dcac0 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 29 29 20 7b 0a .}..if.(!$bar->getProgress()).{.
dcae0 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 30 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 6d 61 69 6e $remaining.=.0;.}.else.{.$remain
dcb00 69 6e 67 20 3d 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 20 2d 20 24 62 61 72 2d 3e 67 65 74 53 ing.=.round((time().-.$bar->getS
dcb20 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 72 65 73 73 28 tartTime())./.$bar->getProgress(
dcb40 29 20 2a 20 28 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 20 2d 20 24 62 61 72 2d ).*.($bar->getMaxSteps().-.$bar-
dcb60 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 48 65 6c 70 >getProgress()));.}..return.Help
dcb80 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 24 72 65 6d 61 69 6e 69 6e 67 29 3b 0a 7d 2c 0a 27 er::formatTime($remaining);.},.'
dcba0 65 73 74 69 6d 61 74 65 64 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 estimated'.=>.function.(Progress
dcbc0 42 61 72 20 24 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 Bar.$bar).{.if.(!$bar->getMaxSte
dcbe0 70 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 69 6f ps()).{.throw.new.\LogicExceptio
dcc00 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 65 73 74 69 6d 61 74 n('Unable.to.display.the.estimat
dcc20 65 64 20 74 69 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 ed.time.if.the.maximum.number.of
dcc40 20 73 74 65 70 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 .steps.is.not.set.');.}..if.(!$b
dcc60 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 29 20 7b 0a 24 65 73 74 69 6d 61 74 65 64 20 ar->getProgress()).{.$estimated.
dcc80 3d 20 30 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 74 69 6d 61 74 65 64 20 3d 20 72 6f 75 6e 64 =.0;.}.else.{.$estimated.=.round
dcca0 28 28 74 69 6d 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 ((time().-.$bar->getStartTime())
dccc0 20 2f 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 2a 20 24 62 61 72 2d 3e 67 ./.$bar->getProgress().*.$bar->g
dcce0 65 74 4d 61 78 53 74 65 70 73 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a etMaxSteps());.}..return.Helper:
dcd00 3a 66 6f 72 6d 61 74 54 69 6d 65 28 24 65 73 74 69 6d 61 74 65 64 29 3b 0a 7d 2c 0a 27 6d 65 6d :formatTime($estimated);.},.'mem
dcd20 6f 72 79 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 62 ory'.=>.function.(ProgressBar.$b
dcd40 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 4d 65 6d 6f 72 ar).{.return.Helper::formatMemor
dcd60 79 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 65 28 74 72 75 65 29 29 3b 0a 7d 2c 0a 27 63 y(memory_get_usage(true));.},.'c
dcd80 75 72 72 65 6e 74 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 urrent'.=>.function.(ProgressBar
dcda0 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 70 61 64 28 24 62 61 72 2d 3e 67 65 .$bar).{.return.str_pad($bar->ge
dcdc0 74 50 72 6f 67 72 65 73 73 28 29 2c 20 24 62 61 72 2d 3e 67 65 74 53 74 65 70 57 69 64 74 68 28 tProgress(),.$bar->getStepWidth(
dcde0 29 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 2c 0a 27 6d 61 78 27 20 ),.'.',.STR_PAD_LEFT);.},.'max'.
dce00 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 62 61 72 29 20 7b =>.function.(ProgressBar.$bar).{
dce20 0a 72 65 74 75 72 6e 20 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 3b 0a 7d 2c 0a .return.$bar->getMaxSteps();.},.
dce40 27 70 65 72 63 65 6e 74 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 'percent'.=>.function.(ProgressB
dce60 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 66 6c 6f 6f 72 28 24 62 61 72 2d 3e 67 65 ar.$bar).{.return.floor($bar->ge
dce80 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 29 20 2a 20 31 30 30 29 3b 0a 7d 2c 0a 29 3b tProgressPercent().*.100);.},.);
dcea0 0a 7d 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 69 74 .}..private.static.function.init
dcec0 46 6f 72 6d 61 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 6f 72 6d 61 Formats().{.return.array(.'norma
dcee0 6c 27 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 l'.=>.'.%current%/%max%.[%bar%].
dcf00 25 70 65 72 63 65 6e 74 3a 33 73 25 25 27 2c 0a 27 6e 6f 72 6d 61 6c 5f 6e 6f 6d 61 78 27 20 3d %percent:3s%%',.'normal_nomax'.=
dcf20 3e 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 27 2c 0a 0a 27 76 65 72 62 6f 73 >.'.%current%.[%bar%]',..'verbos
dcf40 65 27 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 e'.=>.'.%current%/%max%.[%bar%].
dcf60 25 70 65 72 63 65 6e 74 3a 33 73 25 25 20 25 65 6c 61 70 73 65 64 3a 36 73 25 27 2c 0a 27 76 65 %percent:3s%%.%elapsed:6s%',.'ve
dcf80 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 20 5b 25 62 61 rbose_nomax'.=>.'.%current%.[%ba
dcfa0 72 25 5d 20 25 65 6c 61 70 73 65 64 3a 36 73 25 27 2c 0a 0a 27 76 65 72 79 5f 76 65 72 62 6f 73 r%].%elapsed:6s%',..'very_verbos
dcfc0 65 27 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 e'.=>.'.%current%/%max%.[%bar%].
dcfe0 25 70 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 %percent:3s%%.%elapsed:6s%/%esti
dd000 6d 61 74 65 64 3a 2d 36 73 25 27 2c 0a 27 76 65 72 79 5f 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 mated:-6s%',.'very_verbose_nomax
dd020 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 70 73 65 '.=>.'.%current%.[%bar%].%elapse
dd040 64 3a 36 73 25 27 2c 0a 0a 27 64 65 62 75 67 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 2f d:6s%',..'debug'.=>.'.%current%/
dd060 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 6c 61 %max%.[%bar%].%percent:3s%%.%ela
dd080 70 73 65 64 3a 36 73 25 2f 25 65 73 74 69 6d 61 74 65 64 3a 2d 36 73 25 20 25 6d 65 6d 6f 72 79 psed:6s%/%estimated:-6s%.%memory
dd0a0 3a 36 73 25 27 2c 0a 27 64 65 62 75 67 5f 6e 6f 6d 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 :6s%',.'debug_nomax'.=>.'.%curre
dd0c0 6e 74 25 20 5b 25 62 61 72 25 5d 20 25 65 6c 61 70 73 65 64 3a 36 73 25 20 25 6d 65 6d 6f 72 79 nt%.[%bar%].%elapsed:6s%.%memory
dd0e0 3a 36 73 25 27 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 :6s%',.);.}.}.<?php...........na
dd100 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
dd120 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 e\Helper;..use.Symfony\Component
dd140 5c 43 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 \Console\Output\NullOutput;.use.
dd160 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
dd180 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 0a 0a 0a 63 6c 61 73 \OutputInterface;...........clas
dd1a0 73 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a s.ProgressHelper.extends.Helper.
dd1c0 7b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 27 20 25 70 65 72 63 65 6e {.const.FORMAT_QUIET.=.'.%percen
dd1e0 74 25 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 20 3d 20 27 20 25 63 t%%';.const.FORMAT_NORMAL.=.'.%c
dd200 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 urrent%/%max%.[%bar%].%percent%%
dd220 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 20 3d 20 27 20 25 63 75 72 ';.const.FORMAT_VERBOSE.=.'.%cur
dd240 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 20 45 rent%/%max%.[%bar%].%percent%%.E
dd260 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 lapsed:.%elapsed%';.const.FORMAT
dd280 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 27 3b 0a 63 6f 6e _QUIET_NOMAX.=.'.%current%';.con
dd2a0 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 st.FORMAT_NORMAL_NOMAX.=.'.%curr
dd2c0 65 6e 74 25 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 ent%.[%bar%]';.const.FORMAT_VERB
dd2e0 4f 53 45 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 OSE_NOMAX.=.'.%current%.[%bar%].
dd300 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 Elapsed:.%elapsed%';....private.
dd320 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 72 $barWidth.=.28;.private.$barChar
dd340 20 3d 20 27 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 .=.'=';.private.$emptyBarChar.=.
dd360 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e 27 '-';.private.$progressChar.=.'>'
dd380 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 74 ;.private.$format.=.null;.privat
dd3a0 65 20 24 72 65 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 73 e.$redrawFreq.=.1;..private.$las
dd3c0 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 tMessagesLength;.private.$barCha
dd3e0 72 4f 72 69 67 69 6e 61 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a rOriginal;.....private.$output;.
dd400 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 70 72 ......private.$current;.......pr
dd420 69 76 61 74 65 20 24 6d 61 78 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 ivate.$max;.......private.$start
dd440 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 46 6f 72 6d Time;.......private.$defaultForm
dd460 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e 74 27 2c 0a 27 6d 61 78 27 atVars.=.array(.'current',.'max'
dd480 2c 0a 27 62 61 72 27 2c 0a 27 70 65 72 63 65 6e 74 27 2c 0a 27 65 6c 61 70 73 65 64 27 2c 0a 29 ,.'bar',.'percent',.'elapsed',.)
dd4a0 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 56 61 72 73 3b 0a 0a 0a 0a ;.......private.$formatVars;....
dd4c0 0a 0a 0a 70 72 69 76 61 74 65 20 24 77 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 ...private.$widths.=.array(.'cur
dd4e0 72 65 6e 74 27 20 3d 3e 20 34 2c 0a 27 6d 61 78 27 20 3d 3e 20 34 2c 0a 27 70 65 72 63 65 6e 74 rent'.=>.4,.'max'.=>.4,.'percent
dd500 27 20 3d 3e 20 33 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 36 2c 0a 29 3b 0a 0a 0a 0a 0a 0a '.=>.3,.'elapsed'.=>.6,.);......
dd520 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 61 .private.$timeFormats.=.array(.a
dd540 72 72 61 79 28 30 2c 20 27 3f 3f 3f 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 31 20 73 65 63 27 rray(0,.'???'),.array(2,.'1.sec'
dd560 29 2c 0a 61 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 2c 0a 61 72 72 61 79 28 36 ),.array(59,.'secs',.1),.array(6
dd580 30 2c 20 27 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 2c 20 27 6d 69 6e 73 27 2c 0,.'1.min'),.array(3600,.'mins',
dd5a0 20 36 30 29 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 27 29 2c 0a 61 72 72 61 79 .60),.array(5400,.'1.hr'),.array
dd5c0 28 38 36 34 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 72 72 61 79 28 31 32 39 36 (86400,.'hrs',.3600),.array(1296
dd5e0 30 30 2c 20 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 38 30 30 2c 20 27 64 61 79 00,.'1.day'),.array(604800,.'day
dd600 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s',.86400),.);..public.function.
dd620 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 72 69 67 67 65 72 44 65 70 72 65 63 61 74 69 6f 6e 45 __construct($triggerDeprecationE
dd640 72 72 6f 72 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 24 74 72 69 67 67 65 72 44 65 70 72 65 rror.=.true).{.if.($triggerDepre
dd660 63 61 74 69 6f 6e 45 72 72 6f 72 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 cationError).{.@trigger_error('T
dd680 68 65 20 27 2e 5f 5f 43 4c 41 53 53 5f 5f 2e 27 20 63 6c 61 73 73 20 69 73 20 64 65 70 72 65 63 he.'.__CLASS__.'.class.is.deprec
dd6a0 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 6c 6c 20 ated.since.version.2.5.and.will.
dd6c0 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 74 68 65 20 53 79 6d 66 6f be.removed.in.3.0..Use.the.Symfo
dd6e0 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 50 72 6f 67 ny\Component\Console\Helper\Prog
dd700 72 65 73 73 42 61 72 20 63 6c 61 73 73 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f ressBar.class.instead.',.E_USER_
dd720 44 45 50 52 45 43 41 54 45 44 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 DEPRECATED);.}.}.......public.fu
dd740 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 69 nction.setBarWidth($size).{.$thi
dd760 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 0a s->barWidth.=.(int).$size;.}....
dd780 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 74 ...public.function.setBarCharact
dd7a0 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 68 er($char).{.$this->barChar.=.$ch
dd7c0 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 45 ar;.}.......public.function.setE
dd7e0 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d mptyBarCharacter($char).{.$this-
dd800 3e 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 >emptyBarChar.=.$char;.}.......p
dd820 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 61 63 ublic.function.setProgressCharac
dd840 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 61 72 ter($char).{.$this->progressChar
dd860 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 69 6f .=.$char;.}.......public.functio
dd880 6e 20 73 65 74 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f n.setFormat($format).{.$this->fo
dd8a0 72 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rmat.=.$format;.}.......public.f
dd8c0 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 66 72 65 71 unction.setRedrawFrequency($freq
dd8e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 20 3d 20 28 69 6e 74 29 20 24 66 ).{.$this->redrawFreq.=.(int).$f
dd900 72 65 71 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 req;.}........public.function.st
dd920 61 72 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 art(OutputInterface.$output,.$ma
dd940 78 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 74 x.=.null).{.$this->startTime.=.t
dd960 69 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 ime();.$this->current.=.0;.$this
dd980 2d 3e 6d 61 78 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 ->max.=.(int).$max;....$this->ou
dd9a0 74 70 75 74 20 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 tput.=.$output->isDecorated().?.
dd9c0 24 6f 75 74 70 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 $output.:.new.NullOutput();.$thi
dd9e0 73 2d 3e 6c 61 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 s->lastMessagesLength.=.0;.$this
dda00 2d 3e 62 61 72 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 ->barCharOriginal.=.'';..if.(nul
dda20 6c 20 3d 3d 3d 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 l.===.$this->format).{.switch.($
dda40 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 63 61 73 65 20 4f output->getVerbosity()).{.case.O
dda60 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 51 55 49 45 54 3a utputInterface::VERBOSITY_QUIET:
dda80 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 51 55 .$this->format.=.self::FORMAT_QU
ddaa0 49 45 54 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b IET_NOMAX;.if.($this->max.>.0).{
ddac0 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 51 55 .$this->format.=.self::FORMAT_QU
ddae0 49 45 54 3b 0a 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 IET;.}.break;.case.OutputInterfa
ddb00 63 65 3a 3a 56 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 ce::VERBOSITY_VERBOSE:.case.Outp
ddb20 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 utInterface::VERBOSITY_VERY_VERB
ddb40 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f OSE:.case.OutputInterface::VERBO
ddb60 53 49 54 59 5f 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 SITY_DEBUG:.$this->format.=.self
ddb80 3a 3a 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 ::FORMAT_VERBOSE_NOMAX;.if.($thi
ddba0 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 s->max.>.0).{.$this->format.=.se
ddbc0 6c 66 3a 3a 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 lf::FORMAT_VERBOSE;.}.break;.def
ddbe0 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d ault:.$this->format.=.self::FORM
ddc00 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 AT_NORMAL_NOMAX;.if.($this->max.
ddc20 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 4f 52 >.0).{.$this->format.=.self::FOR
ddc40 4d 41 54 5f 4e 4f 52 4d 41 4c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d MAT_NORMAL;.}.break;.}.}..$this-
ddc60 3e 69 6e 69 74 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 >initialize();.}..........public
ddc80 20 66 75 6e 63 74 69 6f 6e 20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 .function.advance($step.=.1,.$re
ddca0 64 72 61 77 20 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 draw.=.false).{.$this->setCurren
ddcc0 74 28 24 74 68 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 t($this->current.+.$step,.$redra
ddce0 77 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 w);.}..........public.function.s
ddd00 65 74 43 75 72 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 etCurrent($current,.$redraw.=.fa
ddd20 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 73 74 61 72 74 lse).{.if.(null.===.$this->start
ddd40 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f Time).{.throw.new.\LogicExceptio
ddd60 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 n('You.must.start.the.progress.b
ddd80 61 72 20 62 65 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 ar.before.calling.setCurrent().'
ddda0 29 3b 0a 7d 0a 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 );.}..$current.=.(int).$current;
dddc0 0a 0a 69 66 20 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 ..if.($current.<.$this->current)
ddde0 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
dde00 75 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 u.can\'t.regress.the.progress.ba
dde20 72 27 29 3b 0a 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 r');.}..if.(0.===.$this->current
dde40 29 20 7b 0a 24 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 ).{.$redraw.=.true;.}..$prevPeri
dde60 6f 64 20 3d 20 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 od.=.(int).($this->current./.$th
dde80 69 73 2d 3e 72 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 is->redrawFreq);..$this->current
ddea0 20 3d 20 24 63 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 .=.$current;..$currPeriod.=.(int
ddec0 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 65 64 72 61 ).($this->current./.$this->redra
ddee0 77 46 72 65 71 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 wFreq);.if.($redraw.||.$prevPeri
ddf00 6f 64 20 21 3d 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 od.!==.$currPeriod.||.$this->max
ddf20 20 3d 3d 3d 20 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 .===.$this->current).{.$this->di
ddf40 73 70 6c 61 79 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 splay();.}.}.........public.func
ddf60 74 69 6f 6e 20 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 tion.display($finish.=.false).{.
ddf80 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 20 7b if.(null.===.$this->startTime).{
ddfa0 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 20 .throw.new.\LogicException('You.
ddfc0 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 66 6f must.start.the.progress.bar.befo
ddfe0 72 65 20 63 61 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 re.calling.display().');.}..$mes
de000 73 61 67 65 20 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 sage.=.$this->format;.foreach.($
de020 74 68 69 73 2d 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 this->generate($finish).as.$name
de040 20 3d 3e 20 24 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 .=>.$value).{.$message.=.str_rep
de060 6c 61 63 65 28 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 lace("%{$name}%",.$value,.$messa
de080 67 65 29 3b 0a 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 ge);.}.$this->overwrite($this->o
de0a0 75 74 70 75 74 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 utput,.$message);.}.........publ
de0c0 69 63 20 66 75 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 ic.function.clear().{.$this->ove
de0e0 72 77 72 69 74 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 rwrite($this->output,.'');.}....
de100 0a 70 75 62 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 .public.function.finish().{.if.(
de120 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 20 7b 0a 74 68 72 null.===.$this->startTime).{.thr
de140 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 6d 75 73 74 ow.new.\LogicException('You.must
de160 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 66 6f 72 65 20 63 .start.the.progress.bar.before.c
de180 61 6c 6c 69 6e 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 alling.finish().');.}..if.(null.
de1a0 21 3d 3d 20 24 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 !==.$this->startTime).{.if.(!$th
de1c0 69 73 2d 3e 6d 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 is->max).{.$this->barChar.=.$thi
de1e0 73 2d 3e 62 61 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 s->barCharOriginal;.$this->displ
de200 61 79 28 74 72 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 ay(true);.}.$this->startTime.=.n
de220 75 6c 6c 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 27 27 29 3b ull;.$this->output->writeln('');
de240 0a 24 74 68 69 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 .$this->output.=.null;.}.}.....p
de260 72 69 76 61 74 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 rivate.function.initialize().{.$
de280 74 68 69 73 2d 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 this->formatVars.=.array();.fore
de2a0 61 63 68 20 28 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 ach.($this->defaultFormatVars.as
de2c0 20 24 76 61 72 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 .$var).{.if.(false.!==.strpos($t
de2e0 68 69 73 2d 3e 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 his->format,."%{$var}%")).{.$thi
de300 73 2d 3e 66 6f 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 s->formatVars[$var].=.true;.}.}.
de320 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 77 69 .if.($this->max.>.0).{.$this->wi
de340 64 74 68 73 5b 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 dths['max'].=.$this->strlen($thi
de360 73 2d 3e 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 s->max);.$this->widths['current'
de380 5d 20 3d 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 65 6c 73 65 ].=.$this->widths['max'];.}.else
de3a0 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 24 74 68 69 .{.$this->barCharOriginal.=.$thi
de3c0 73 2d 3e 62 61 72 43 68 61 72 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 s->barChar;.$this->barChar.=.$th
de3e0 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 is->emptyBarChar;.}.}.........pr
de400 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 68 20 ivate.function.generate($finish.
de420 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 65 72 =.false).{.$vars.=.array();.$per
de440 63 65 6e 74 20 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a cent.=.0;.if.($this->max.>.0).{.
de460 24 70 65 72 63 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 $percent.=.(float).$this->curren
de480 74 20 2f 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 t./.$this->max;.}..if.(isset($th
de4a0 69 73 2d 3e 66 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 is->formatVars['bar'])).{.$compl
de4c0 65 74 65 42 61 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 eteBars.=.0;..if.($this->max.>.0
de4e0 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 28 24 70 65 72 63 65 ).{.$completeBars.=.floor($perce
de500 6e 74 20 2a 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a nt.*.$this->barWidth);.}.else.{.
de520 69 66 20 28 21 24 66 69 6e 69 73 68 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 if.(!$finish).{.$completeBars.=.
de540 66 6c 6f 6f 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 62 61 floor($this->current.%.$this->ba
de560 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 rWidth);.}.else.{.$completeBars.
de580 3d 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d 70 74 79 42 61 =.$this->barWidth;.}.}..$emptyBa
de5a0 72 73 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 2d 20 24 63 6f 6d 70 6c 65 74 65 rs.=.$this->barWidth.-.$complete
de5c0 42 61 72 73 20 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 Bars.-.$this->strlen($this->prog
de5e0 72 65 73 73 43 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 ressChar);.$bar.=.str_repeat($th
de600 69 73 2d 3e 62 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 is->barChar,.$completeBars);.if.
de620 28 24 63 6f 6d 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 ($completeBars.<.$this->barWidth
de640 29 20 7b 0a 24 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 ).{.$bar..=.$this->progressChar;
de660 0a 24 62 61 72 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 .$bar..=.str_repeat($this->empty
de680 42 61 72 43 68 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 BarChar,.$emptyBars);.}..$vars['
de6a0 62 61 72 27 5d 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 bar'].=.$bar;.}..if.(isset($this
de6c0 2d 3e 66 6f 72 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 ->formatVars['elapsed'])).{.$ela
de6e0 70 73 65 64 20 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 psed.=.time().-.$this->startTime
de700 3b 0a 24 76 61 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 ;.$vars['elapsed'].=.str_pad($th
de720 69 73 2d 3e 68 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 is->humaneTime($elapsed),.$this-
de740 3e 77 69 64 74 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 >widths['elapsed'],.'.',.STR_PAD
de760 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 72 6d _LEFT);.}..if.(isset($this->form
de780 61 74 56 61 72 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 atVars['current'])).{.$vars['cur
de7a0 72 65 6e 74 27 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 rent'].=.str_pad($this->current,
de7c0 20 24 74 68 69 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 .$this->widths['current'],.'.',.
de7e0 53 54 52 5f 50 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 STR_PAD_LEFT);.}..if.(isset($thi
de800 73 2d 3e 66 6f 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 s->formatVars['max'])).{.$vars['
de820 6d 61 78 27 5d 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 max'].=.$this->max;.}..if.(isset
de840 28 24 74 68 69 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 ($this->formatVars['percent'])).
de860 7b 0a 24 76 61 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 {.$vars['percent'].=.str_pad(flo
de880 6f 72 28 24 70 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 or($percent.*.100),.$this->width
de8a0 73 5b 27 70 65 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 s['percent'],.'.',.STR_PAD_LEFT)
de8c0 3b 0a 7d 0a 0a 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 ;.}..return.$vars;.}.........pri
de8e0 76 61 74 65 20 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 vate.function.humaneTime($secs).
de900 7b 0a 24 74 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 3e 74 69 {.$text.=.'';.foreach.($this->ti
de920 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 65 63 meFormats.as.$format).{.if.($sec
de940 73 20 3c 20 24 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 s.<.$format[0]).{.if.(count($for
de960 6d 61 74 29 20 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 mat).==.2).{.$text.=.$format[1];
de980 0a 62 72 65 61 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 .break;.}.else.{.$text.=.ceil($s
de9a0 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 5d ecs./.$format[2]).'.'.$format[1]
de9c0 3b 0a 62 72 65 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 ;.break;.}.}.}..return.$text;.}.
de9e0 0a 0a 0a 0a 0a 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 .......private.function.overwrit
dea00 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 e(OutputInterface.$output,.$mess
dea20 61 67 65 29 0a 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 age).{.$length.=.$this->strlen($
dea40 6d 65 73 73 61 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 message);....if.(null.!==.$this-
dea60 3e 6c 61 73 74 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 >lastMessagesLength.&&.$this->la
dea80 73 74 4d 65 73 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 stMessagesLength.>.$length).{.$m
deaa0 65 73 73 61 67 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 essage.=.str_pad($message,.$this
deac0 2d 3e 6c 61 73 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 ->lastMessagesLength,."\x20",.ST
deae0 52 5f 50 41 44 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 R_PAD_RIGHT);.}....$output->writ
deb00 65 28 22 5c 78 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 e("\x0D");.$output->write($messa
deb20 67 65 29 3b 0a 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 ge);..$this->lastMessagesLength.
deb40 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a =.$this->strlen($message);.}....
deb60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 .public.function.getName().{.ret
deb80 75 72 6e 20 27 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 urn.'progress';.}.}.<?php.......
deba0 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\
debc0 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Console\Helper;..use.Symfony\Com
debe0 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
dec00 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
dec20 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 le\Output\ConsoleOutputInterface
dec40 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\
dec60 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 Output\OutputInterface;.use.Symf
dec80 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 5c ony\Component\Console\Formatter\
deca0 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e OutputFormatterStyle;.use.Symfon
decc0 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 51 75 65 y\Component\Console\Question\Que
dece0 73 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e stion;.use.Symfony\Component\Con
ded00 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a sole\Question\ChoiceQuestion;...
ded20 0a 0a 0a 0a 63 6c 61 73 73 20 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 ....class.QuestionHelper.extends
ded40 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a .Helper.{.private.$inputStream;.
ded60 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 private.static.$shell;.private.s
ded80 74 61 74 69 63 20 24 73 74 74 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tatic.$stty;.............public.
deda0 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 function.ask(InputInterface.$inp
dedc0 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 ut,.OutputInterface.$output,.Que
dede0 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 stion.$question).{.if.($output.i
dee00 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 61 63 65 nstanceof.ConsoleOutputInterface
dee20 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 6f 72 4f ).{.$output.=.$output->getErrorO
dee40 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 utput();.}..if.(!$input->isInter
dee60 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 active()).{.return.$question->ge
dee80 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 71 75 65 73 74 69 6f 6e 2d 3e 67 tDefault();.}..if.(!$question->g
deea0 65 74 56 61 6c 69 64 61 74 6f 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 etValidator()).{.return.$this->d
deec0 6f 41 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 oAsk($output,.$question);.}..$th
deee0 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 at.=.$this;..$interviewer.=.func
def00 74 69 6f 6e 20 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c tion.().use.($output,.$question,
def20 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 64 6f 41 73 6b 28 24 6f .$that).{.return.$that->doAsk($o
def40 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 utput,.$question);.};..return.$t
def60 68 69 73 2d 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 his->validateAttempts($interview
def80 65 72 2c 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a er,.$output,.$question);.}......
defa0 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 53 74 72 .....public.function.setInputStr
defc0 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 eam($stream).{.if.(!is_resource(
defe0 24 73 74 72 65 61 6d 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 $stream)).{.throw.new.\InvalidAr
df000 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 70 75 74 20 73 74 72 65 61 6d 20 6d 75 gumentException('Input.stream.mu
df020 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 72 65 73 6f 75 72 63 65 2e 27 29 3b 0a 7d 0a 0a 24 74 st.be.a.valid.resource.');.}..$t
df040 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a his->inputStream.=.$stream;.}...
df060 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 ....public.function.getInputStre
df080 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d am().{.return.$this->inputStream
df0a0 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 28 ;.}.....public.function.getName(
df0c0 29 0a 7b 0a 72 65 74 75 72 6e 20 27 71 75 65 73 74 69 6f 6e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ).{.return.'question';.}........
df0e0 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 41 73 6b 28 4f 75 74 .......public.function.doAsk(Out
df100 70 75 74 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 putInterface.$output,.Question.$
df120 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 50 72 6f 6d 70 74 28 24 question).{.$this->writePrompt($
df140 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 72 65 61 output,.$question);..$inputStrea
df160 6d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b m.=.$this->inputStream.?:.STDIN;
df180 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 6e 2d 3e 67 65 74 41 .$autocomplete.=.$question->getA
df1a0 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 utocompleterValues();..if.(null.
df1c0 3d 3d 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 ===.$autocomplete.||.!$this->has
df1e0 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 61 6c 73 65 3b SttyAvailable()).{.$ret.=.false;
df200 0a 69 66 20 28 24 71 75 65 73 74 69 6f 6e 2d 3e 69 73 48 69 64 64 65 6e 28 29 29 20 7b 0a 74 72 .if.($question->isHidden()).{.tr
df220 79 20 7b 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 67 65 74 48 69 64 64 65 6e y.{.$ret.=.trim($this->getHidden
df240 52 65 73 70 6f 6e 73 65 28 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 Response($output,.$inputStream))
df260 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 ;.}.catch.(\RuntimeException.$e)
df280 20 7b 0a 69 66 20 28 21 24 71 75 65 73 74 69 6f 6e 2d 3e 69 73 48 69 64 64 65 6e 46 61 6c 6c 62 .{.if.(!$question->isHiddenFallb
df2a0 61 63 6b 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 66 61 ack()).{.throw.$e;.}.}.}..if.(fa
df2c0 6c 73 65 20 3d 3d 3d 20 24 72 65 74 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 69 6e lse.===.$ret).{.$ret.=.fgets($in
df2e0 70 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 putStream,.4096);.if.(false.===.
df300 24 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 $ret).{.throw.new.\RuntimeExcept
df320 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 ion('Aborted');.}.$ret.=.trim($r
df340 65 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 74 68 69 et);.}.}.else.{.$ret.=.trim($thi
df360 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 s->autocomplete($output,.$questi
df380 6f 6e 2c 20 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 3b 0a 7d 0a 0a 24 72 65 74 20 3d 20 73 74 on,.$inputStream));.}..$ret.=.st
df3a0 72 6c 65 6e 28 24 72 65 74 29 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 71 75 65 73 74 69 6f rlen($ret).>.0.?.$ret.:.$questio
df3c0 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 n->getDefault();..if.($normalize
df3e0 72 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 29 20 r.=.$question->getNormalizer()).
df400 7b 0a 72 65 74 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 72 65 74 29 3b 0a 7d 0a 0a 72 {.return.$normalizer($ret);.}..r
df420 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 eturn.$ret;.}........protected.f
df440 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 50 72 6f 6d 70 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 unction.writePrompt(OutputInterf
df460 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 29 ace.$output,.Question.$question)
df480 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 51 75 65 73 .{.$message.=.$question->getQues
df4a0 74 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 71 75 65 73 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f tion();..if.($question.instanceo
df4c0 66 20 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 6d 61 78 f.ChoiceQuestion).{.$width.=.max
df4e0 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 6c 65 6e 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 (array_map('strlen',.array_keys(
df500 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 43 68 6f 69 63 65 73 28 29 29 29 29 3b 0a 0a 24 6d 65 $question->getChoices())));..$me
df520 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 51 ssages.=.(array).$question->getQ
df540 75 65 73 74 69 6f 6e 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 71 75 65 73 74 69 6f 6e 2d 3e 67 uestion();.foreach.($question->g
df560 65 74 43 68 6f 69 63 65 73 28 29 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b etChoices().as.$key.=>.$value).{
df580 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 5b 3c 69 6e 66 6f .$messages[].=.sprintf("..[<info
df5a0 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 >%-${width}s</info>].%s",.$key,.
df5c0 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 $value);.}..$output->writeln($me
df5e0 73 73 61 67 65 73 29 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e ssages);..$message.=.$question->
df600 67 65 74 50 72 6f 6d 70 74 28 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 getPrompt();.}..$output->write($
df620 6d 65 73 73 61 67 65 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 message);.}........protected.fun
df640 63 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f 72 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 ction.writeError(OutputInterface
df660 20 24 6f 75 74 70 75 74 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 72 72 6f 72 29 0a 7b 0a 69 .$output,.\Exception.$error).{.i
df680 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 72 53 65 74 28 f.(null.!==.$this->getHelperSet(
df6a0 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 3e 68 61 73 28 ).&&.$this->getHelperSet()->has(
df6c0 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 24 74 68 69 73 'formatter')).{.$message.=.$this
df6e0 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
df700 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
df720 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 65 73 73 61 67 ge(),.'error');.}.else.{.$messag
df740 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 73 73 61 67 65 e.=.'<error>'.$error->getMessage
df760 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 77 72 69 74 65 ().'</error>';.}..$output->write
df780 6c 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ln($message);.}..........private
df7a0 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 28 4f 75 74 70 75 74 49 6e 74 .function.autocomplete(OutputInt
df7c0 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 73 74 69 erface.$output,.Question.$questi
df7e0 6f 6e 2c 20 24 69 6e 70 75 74 53 74 72 65 61 6d 29 0a 7b 0a 24 61 75 74 6f 63 6f 6d 70 6c 65 74 on,.$inputStream).{.$autocomplet
df800 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 74 65 72 56 e.=.$question->getAutocompleterV
df820 61 6c 75 65 73 28 29 3b 0a 24 72 65 74 20 3d 20 27 27 3b 0a 0a 24 69 20 3d 20 30 3b 0a 24 6f 66 alues();.$ret.=.'';..$i.=.0;.$of
df840 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 s.=.-1;.$matches.=.$autocomplete
df860 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b ;.$numMatches.=.count($matches);
df880 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 74 79 20 2d ..$sttyMode.=.shell_exec('stty.-
df8a0 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 61 6e 6f 6e g');....shell_exec('stty.-icanon
df8c0 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 6d 61 74 74 .-echo');....$output->getFormatt
df8e0 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 70 75 74 46 er()->setStyle('hl',.new.OutputF
df900 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 65 27 29 29 ormatterStyle('black',.'white'))
df920 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 61 6d 29 29 ;....while.(!feof($inputStream))
df940 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 31 29 3b 0a .{.$c.=.fread($inputStream,.1);.
df960 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 30 20 3d 3d ...if.("\177".===.$c).{.if.(0.==
df980 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 0a 2d 2d 24 =.$numMatches.&&.0.!==.$i).{.--$
df9a0 69 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 22 29 3b 0a i;...$output->write("\033[1D");.
df9c0 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 3b 0a 24 6d }..if.($i.===.0).{.$ofs.=.-1;.$m
df9e0 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 4d 61 74 63 atches.=.$autocomplete;.$numMatc
dfa00 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 65 20 7b 0a hes.=.count($matches);.}.else.{.
dfa20 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 20 73 75 62 $numMatches.=.0;.}....$ret.=.sub
dfa40 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 22 5c 30 33 str($ret,.0,.$i);.}.elseif.("\03
dfa60 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 69 6e 70 75 3".===.$c).{...$c..=.fread($inpu
dfa80 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 5b 32 5d 29 tStream,.2);....if.(isset($c[2])
dfaa0 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 3d 20 24 63 .&&.('A'.===.$c[2].||.'B'.===.$c
dfac0 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 20 2d 31 20 [2])).{.if.('A'.===.$c[2].&&.-1.
dfae0 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 28 30 20 3d ===.$ofs).{.$ofs.=.0;.}..if.(0.=
dfb00 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 7d 0a 0a 24 ==.$numMatches).{.continue;.}..$
dfb20 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 3a 20 31 3b ofs.+=.('A'.===.$c[2]).?.-1.:.1;
dfb40 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 20 25 20 24 .$ofs.=.($numMatches.+.$ofs).%.$
dfb60 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 24 63 29 20 numMatches;.}.}.elseif.(ord($c).
dfb80 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 5c 6e 22 20 <.32).{.if.("\t".===.$c.||."\n".
dfba0 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 30 20 26 26 ===.$c).{.if.($numMatches.>.0.&&
dfbc0 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 68 65 73 5b .-1.!==.$ofs).{.$ret.=.$matches[
dfbe0 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 74 72 28 24 $ofs];...$output->write(substr($
dfc00 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 3b 0a 7d 0a ret,.$i));.$i.=.strlen($ret);.}.
dfc20 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 3e 77 72 69 .if.("\n".===.$c).{.$output->wri
dfc40 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 73 20 3d 20 te($c);.break;.}..$numMatches.=.
dfc60 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 74 70 75 74 0;.}..continue;.}.else.{.$output
dfc80 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 2b 2b 24 69 3b 0a 0a ->write($c);.$ret..=.$c;.++$i;..
dfca0 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 66 6f 72 65 $numMatches.=.0;.$ofs.=.0;..fore
dfcc0 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 29 20 7b 0a ach.($autocomplete.as.$value).{.
dfce0 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 72 65 74 29 ..if.(0.===.strpos($value,.$ret)
dfd00 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 0a 24 6d 61 .&&.$i.!==.strlen($value)).{.$ma
dfd20 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 65 3b 0a 7d tches[$numMatches++].=.$value;.}
dfd40 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 5b 4b 22 29 .}.}....$output->write("\033[K")
dfd60 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 20 21 3d 3d ;..if.($numMatches.>.0.&&.-1.!==
dfd80 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 30 33 33 37 .$ofs).{...$output->write("\0337
dfda0 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 73 75 62 73 ");...$output->write('<hl>'.subs
dfdc0 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 3e 27 29 3b tr($matches[$ofs],.$i).'</hl>');
dfde0 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 7d 0a 7d 0a ...$output->write("\0338");.}.}.
dfe00 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 25 73 27 2c ...shell_exec(sprintf('stty.%s',
dfe20 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a .$sttyMode));..return.$ret;.}...
dfe40 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 69 64 64 ........private.function.getHidd
dfe60 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 enResponse(OutputInterface.$outp
dfe80 75 74 2c 20 24 69 6e 70 75 74 53 74 72 65 61 6d 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d ut,.$inputStream).{.if.('\\'.===
dfea0 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 65 78 65 20 3d 20 5f .DIRECTORY_SEPARATOR).{.$exe.=._
dfec0 5f 44 49 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 _DIR__.'/../Resources/bin/hidden
dfee0 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 input.exe';....if.('phar:'.===.s
dff00 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 ubstr(__FILE__,.0,.5)).{.$tmpExe
dff20 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e .=.sys_get_temp_dir().'/hiddenin
dff40 70 75 74 2e 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 put.exe';.copy($exe,.$tmpExe);.$
dff60 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d exe.=.$tmpExe;.}..$value.=.rtrim
dff80 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 (shell_exec($exe));.$output->wri
dffa0 74 65 6c 6e 28 27 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b teln('');..if.(isset($tmpExe)).{
dffc0 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c .unlink($tmpExe);.}..return.$val
dffe0 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 ue;.}..if.($this->hasSttyAvailab
e0000 6c 65 28 29 29 20 7b 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 le()).{.$sttyMode.=.shell_exec('
e0020 73 74 74 79 20 2d 67 27 29 3b 0a 0a 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 65 63 stty.-g');..shell_exec('stty.-ec
e0040 68 6f 27 29 3b 0a 24 76 61 6c 75 65 20 3d 20 66 67 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 ho');.$value.=.fgets($inputStrea
e0060 6d 2c 20 34 30 39 36 29 3b 0a 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 m,.4096);.shell_exec(sprintf('st
e0080 74 79 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 ty.%s',.$sttyMode));..if.(false.
e00a0 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 ===.$value).{.throw.new.\Runtime
e00c0 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 Exception('Aborted');.}..$value.
e00e0 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e =.trim($value);.$output->writeln
e0100 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c ('');..return.$value;.}..if.(fal
e0120 73 65 20 21 3d 3d 20 24 73 68 65 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 65 6c 6c 28 se.!==.$shell.=.$this->getShell(
e0140 29 29 20 7b 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 )).{.$readCmd.=.$shell.===.'csh'
e0160 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 .?.'set.mypassword.=.$<'.:.'read
e0180 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 .-r.mypassword';.$command.=.spri
e01a0 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 ntf("/usr/bin/env.%s.-c.'stty.-e
e01c0 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 cho;.%s;.stty.echo;.echo.\$mypas
e01e0 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c sword'",.$shell,.$readCmd);.$val
e0200 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 ue.=.rtrim(shell_exec($command))
e0220 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 6e 20 ;.$output->writeln('');..return.
e0240 24 76 61 6c 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 $value;.}..throw.new.\RuntimeExc
e0260 65 70 74 69 6f 6e 28 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 eption('Unable.to.hide.the.respo
e0280 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 nse.');.}.............private.fu
e02a0 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 nction.validateAttempts($intervi
e02c0 65 77 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 ewer,.OutputInterface.$output,.Q
e02e0 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e 75 uestion.$question).{.$error.=.nu
e0300 6c 6c 3b 0a 24 61 74 74 65 6d 70 74 73 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 4d 61 ll;.$attempts.=.$question->getMa
e0320 78 41 74 74 65 6d 70 74 73 28 29 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 74 xAttempts();.while.(null.===.$at
e0340 74 65 6d 70 74 73 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c tempts.||.$attempts--).{.if.(nul
e0360 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f l.!==.$error).{.$this->writeErro
e0380 72 28 24 6f 75 74 70 75 74 2c 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 r($output,.$error);.}..try.{.ret
e03a0 75 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 urn.call_user_func($question->ge
e03c0 74 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 tValidator(),.$interviewer());.}
e03e0 20 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 .catch.(\Exception.$error).{.}.}
e0400 0a 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 ..throw.$error;.}.......private.
e0420 66 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 function.getShell().{.if.(null.!
e0440 3d 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 ==.self::$shell).{.return.self::
e0460 24 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 $shell;.}..self::$shell.=.false;
e0480 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 65 6e 76 27 ..if.(file_exists('/usr/bin/env'
e04a0 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 20 25 73 20 )).{...$test.=."/usr/bin/env.%s.
e04c0 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 66 6f 72 65 -c.'echo.OK'.2>./dev/null";.fore
e04e0 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 73 68 27 2c ach.(array('bash',.'zsh',.'ksh',
e0500 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 3d 3d 20 72 .'csh').as.$sh).{.if.('OK'.===.r
e0520 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 74 2c 20 24 trim(shell_exec(sprintf($test,.$
e0540 73 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 sh)))).{.self::$shell.=.$sh;.bre
e0560 61 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 ak;.}.}.}..return.self::$shell;.
e0580 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 68 61 73 53 74 74 79 }.......private.function.hasStty
e05a0 41 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 Available().{.if.(null.!==.self:
e05c0 3a 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 :$stty).{.return.self::$stty;.}.
e05e0 0a 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 .exec('stty.2>&1',.$output,.$exi
e0600 74 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 tcode);..return.self::$stty.=.$e
e0620 78 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 xitcode.===.0;.}.}.<?php........
e0640 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
e0660 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 onsole\Helper;..use.Symfony\Comp
e0680 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
e06a0 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
e06c0 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
e06e0 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
e0700 5c 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \ChoiceQuestion;.use.Symfony\Com
e0720 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 6f 6e 66 69 72 6d 61 ponent\Console\Question\Confirma
e0740 74 69 6f 6e 51 75 65 73 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e tionQuestion;.use.Symfony\Compon
e0760 65 6e 74 5c 43 6f 6e 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 ent\Console\Question\Question;.u
e0780 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 53 74 79 se.Symfony\Component\Console\Sty
e07a0 6c 65 5c 53 79 6d 66 6f 6e 79 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 79 6d le\SymfonyStyle;.......class.Sym
e07c0 66 6f 6e 79 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 51 75 65 73 74 fonyQuestionHelper.extends.Quest
e07e0 69 6f 6e 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 ionHelper.{....public.function.a
e0800 73 6b 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 sk(InputInterface.$input,.Output
e0820 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
e0840 73 74 69 6f 6e 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d stion).{.$validator.=.$question-
e0860 3e 67 65 74 56 61 6c 69 64 61 74 6f 72 28 29 3b 0a 24 71 75 65 73 74 69 6f 6e 2d 3e 73 65 74 56 >getValidator();.$question->setV
e0880 61 6c 69 64 61 74 6f 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 alidator(function.($value).use.(
e08a0 24 76 61 6c 69 64 61 74 6f 72 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 69 $validator).{.if.(null.!==.$vali
e08c0 64 61 74 6f 72 20 26 26 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 76 61 6c 69 64 61 74 6f 72 29 dator.&&.is_callable($validator)
e08e0 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 29 3b ).{.$value.=.$validator($value);
e0900 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 21 .}....if.(!is_array($value).&&.!
e0920 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 6c 65 6e 28 is_bool($value).&&.0.===.strlen(
e0940 24 76 61 6c 75 65 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 $value)).{.throw.new.\Exception(
e0960 27 41 20 76 61 6c 75 65 20 69 73 20 72 65 71 75 69 72 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 'A.value.is.required.');.}..retu
e0980 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 61 rn.$value;.});..return.parent::a
e09a0 73 6b 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a sk($input,.$output,.$question);.
e09c0 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 77 72 69 74 65 50 72 }.....protected.function.writePr
e09e0 6f 6d 70 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 51 75 ompt(OutputInterface.$output,.Qu
e0a00 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 24 74 65 78 74 20 3d 20 24 71 75 65 estion.$question).{.$text.=.$que
e0a20 73 74 69 6f 6e 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 29 3b 0a 24 64 65 66 61 75 6c 74 20 3d stion->getQuestion();.$default.=
e0a40 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 0a 73 77 69 74 63 .$question->getDefault();..switc
e0a60 68 20 28 74 72 75 65 29 20 7b 0a 63 61 73 65 20 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c h.(true).{.case.null.===.$defaul
e0a80 74 3a 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 t:.$text.=.sprintf('.<info>%s</i
e0aa0 6e 66 6f 3e 3a 27 2c 20 24 74 65 78 74 29 3b 0a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 24 71 nfo>:',.$text);..break;..case.$q
e0ac0 75 65 73 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 51 uestion.instanceof.ConfirmationQ
e0ae0 75 65 73 74 69 6f 6e 3a 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f uestion:.$text.=.sprintf('.<info
e0b00 3e 25 73 20 28 79 65 73 2f 6e 6f 29 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 >%s.(yes/no)</info>.[<comment>%s
e0b20 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 27 2c 20 24 74 65 78 74 2c 20 24 64 65 66 61 75 6c 74 20 3f </comment>]:',.$text,.$default.?
e0b40 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 3b 0a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 24 71 .'yes'.:.'no');..break;..case.$q
e0b60 75 65 73 74 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 uestion.instanceof.ChoiceQuestio
e0b80 6e 3a 0a 24 63 68 6f 69 63 65 73 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 43 68 6f 69 n:.$choices.=.$question->getChoi
e0ba0 63 65 73 28 29 3b 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 ces();.$text.=.sprintf('.<info>%
e0bc0 73 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d s</info>.[<comment>%s</comment>]
e0be0 3a 27 2c 20 24 74 65 78 74 2c 20 24 63 68 6f 69 63 65 73 5b 24 64 65 66 61 75 6c 74 5d 29 3b 0a :',.$text,.$choices[$default]);.
e0c00 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 .break;..default:.$text.=.sprint
e0c20 66 28 27 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 f('.<info>%s</info>.[<comment>%s
e0c40 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3a 27 2c 20 24 74 65 78 74 2c 20 24 64 65 66 61 75 6c 74 29 3b </comment>]:',.$text,.$default);
e0c60 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 65 78 74 29 3b 0a 0a 69 66 .}..$output->writeln($text);..if
e0c80 20 28 24 71 75 65 73 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 68 6f 69 63 65 51 75 65 .($question.instanceof.ChoiceQue
e0ca0 73 74 69 6f 6e 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 stion).{.$width.=.max(array_map(
e0cc0 27 73 74 72 6c 65 6e 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 71 75 65 73 74 69 6f 6e 2d 3e 'strlen',.array_keys($question->
e0ce0 67 65 74 43 68 6f 69 63 65 73 28 29 29 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 71 75 65 73 getChoices())));..foreach.($ques
e0d00 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 20 3d 3e 20 24 76 tion->getChoices().as.$key.=>.$v
e0d20 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 alue).{.$output->writeln(sprintf
e0d40 28 22 20 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 63 6f 6d 6d 65 ("..[<comment>%-${width}s</comme
e0d60 6e 74 3e 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 7d 0a 0a 24 nt>].%s",.$key,.$value));.}.}..$
e0d80 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 3e 20 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 output->write('.>.');.}.....prot
e0da0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f 72 28 4f 75 74 70 75 74 ected.function.writeError(Output
e0dc0 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 74 69 6f 6e 20 24 65 Interface.$output,.\Exception.$e
e0de0 72 72 6f 72 29 0a 7b 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 53 rror).{.if.($output.instanceof.S
e0e00 79 6d 66 6f 6e 79 53 74 79 6c 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 6e 65 77 4c 69 6e 65 28 ymfonyStyle).{.$output->newLine(
e0e20 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 65 72 72 6f 72 28 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 );.$output->error($error->getMes
e0e40 73 61 67 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 77 72 69 sage());..return;.}..parent::wri
e0e60 74 65 45 72 72 6f 72 28 24 6f 75 74 70 75 74 2c 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 7d 0a 3c 3f teError($output,.$error);.}.}.<?
e0e80 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\
e0ea0 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
e0ec0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
e0ee0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 OutputInterface;.........class.T
e0f00 61 62 6c 65 0a 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 able.{......private.$headers.=.a
e0f20 72 72 61 79 28 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 rray();.......private.$rows.=.ar
e0f40 72 61 79 28 29 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 ray();.......private.$columnWidt
e0f60 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 75 6d hs.=.array();.......private.$num
e0f80 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 berOfColumns;.....private.$outpu
e0fa0 74 3b 0a 0a 0a 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 t;.....private.$style;..private.
e0fc0 73 74 61 74 69 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 static.$styles;..public.function
e0fe0 20 5f 5f 63 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 .__construct(OutputInterface.$ou
e1000 74 70 75 74 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 3b tput).{.$this->output.=.$output;
e1020 0a 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 3a 24 73 ..if.(!self::$styles).{.self::$s
e1040 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 0a 0a 24 tyles.=.self::initStyles();.}..$
e1060 74 68 69 73 2d 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 this->setStyle('default');.}....
e1080 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 65 74 53 74 ....public.static.function.setSt
e10a0 79 6c 65 44 65 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 yleDefinition($name,.TableStyle.
e10c0 24 73 74 79 6c 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 $style).{.if.(!self::$styles).{.
e10e0 73 65 6c 66 3a 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 self::$styles.=.self::initStyles
e1100 28 29 3b 0a 7d 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 ();.}..self::$styles[$name].=.$s
e1120 74 79 6c 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 tyle;.}.........public.static.fu
e1140 6e 63 74 69 6f 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 nction.getStyleDefinition($name)
e1160 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 3a 24 .{.if.(!self::$styles).{.self::$
e1180 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 0a 0a styles.=.self::initStyles();.}..
e11a0 69 66 20 28 21 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 if.(!self::$styles[$name]).{.thr
e11c0 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
e11e0 28 73 70 72 69 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 (sprintf('Style."%s".is.not.defi
e1200 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a ned.',.$name));.}..return.self::
e1220 24 73 74 79 6c 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 $styles[$name];.}.........public
e1240 20 66 75 6e 63 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 .function.setStyle($name).{.if.(
e1260 24 6e 61 6d 65 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 $name.instanceof.TableStyle).{.$
e1280 74 68 69 73 2d 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 this->style.=.$name;.}.elseif.(i
e12a0 73 73 65 74 28 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 sset(self::$styles[$name])).{.$t
e12c0 68 69 73 2d 3e 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 his->style.=.self::$styles[$name
e12e0 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 ];.}.else.{.throw.new.\InvalidAr
e1300 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 74 79 6c 65 20 22 gumentException(sprintf('Style."
e1320 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d %s".is.not.defined.',.$name));.}
e1340 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 66 ..return.$this;.}.......public.f
e1360 75 6e 63 74 69 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 unction.getStyle().{.return.$thi
e1380 73 2d 3e 73 74 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 s->style;.}..public.function.set
e13a0 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 24 68 65 61 64 65 Headers(array.$headers).{.$heade
e13c0 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 69 66 20 rs.=.array_values($headers);.if.
e13e0 28 21 65 6d 70 74 79 28 24 68 65 61 64 65 72 73 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 (!empty($headers).&&.!is_array($
e1400 68 65 61 64 65 72 73 5b 30 5d 29 29 20 7b 0a 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 headers[0])).{.$headers.=.array(
e1420 24 68 65 61 64 65 72 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 24 $headers);.}..$this->headers.=.$
e1440 68 65 61 64 65 72 73 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 headers;..return.$this;.}..publi
e1460 63 20 66 75 6e 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 c.function.setRows(array.$rows).
e1480 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e {.$this->rows.=.array();..return
e14a0 20 24 74 68 69 73 2d 3e 61 64 64 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 .$this->addRows($rows);.}..publi
e14c0 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a c.function.addRows(array.$rows).
e14e0 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 69 {.foreach.($rows.as.$row).{.$thi
e1500 73 2d 3e 61 64 64 52 6f 77 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->addRow($row);.}..return.$this
e1520 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 24 72 6f 77 ;.}..public.function.addRow($row
e1540 29 0a 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 6c 65 53 65 70 ).{.if.($row.instanceof.TableSep
e1560 61 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 24 72 6f 77 3b 0a arator).{.$this->rows[].=.$row;.
e1580 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 .return.$this;.}..if.(!is_array(
e15a0 24 72 6f 77 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 $row)).{.throw.new.\InvalidArgum
e15c0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 20 72 6f 77 20 6d 75 73 74 20 62 65 20 61 6e 20 61 entException('A.row.must.be.an.a
e15e0 72 72 61 79 20 6f 72 20 61 20 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 rray.or.a.TableSeparator.instanc
e1600 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 61 72 72 61 79 5f 76 e.');.}..$this->rows[].=.array_v
e1620 61 6c 75 65 73 28 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 70 alues($row);..return.$this;.}..p
e1640 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 6d 6e 2c 20 61 ublic.function.setRow($column,.a
e1660 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 6f 6c 75 6d 6e rray.$row).{.$this->rows[$column
e1680 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 0a 0a 0a 0a 0a ].=.$row;..return.$this;.}......
e16a0 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 64 65 72 28 29 ........public.function.render()
e16c0 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 6c 63 75 6c 61 74 65 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d .{.$this->calculateNumberOfColum
e16e0 6e 73 28 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 ns();.$this->rows.=.$this->build
e1700 54 61 62 6c 65 52 6f 77 73 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 3b 0a 24 74 68 69 73 2d 3e 68 TableRows($this->rows);.$this->h
e1720 65 61 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 54 61 62 6c 65 52 6f 77 73 28 24 eaders.=.$this->buildTableRows($
e1740 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f this->headers);..$this->renderRo
e1760 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e wSeparator();.if.(!empty($this->
e1780 68 65 61 64 65 72 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 68 65 61 64 headers)).{.foreach.($this->head
e17a0 65 72 73 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 ers.as.$header).{.$this->renderR
e17c0 6f 77 28 24 68 65 61 64 65 72 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c ow($header,.$this->style->getCel
e17e0 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 29 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 lHeaderFormat());.$this->renderR
e1800 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 owSeparator();.}.}.foreach.($thi
e1820 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 69 6e 73 74 s->rows.as.$row).{.if.($row.inst
e1840 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 74 68 69 73 2d 3e anceof.TableSeparator).{.$this->
e1860 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 renderRowSeparator();.}.else.{.$
e1880 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 28 24 72 6f 77 2c 20 24 74 68 69 73 2d 3e 73 74 79 this->renderRow($row,.$this->sty
e18a0 6c 65 2d 3e 67 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 29 29 3b 0a 7d 0a 7d 0a 69 66 20 le->getCellRowFormat());.}.}.if.
e18c0 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 (!empty($this->rows)).{.$this->r
e18e0 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 enderRowSeparator();.}..$this->c
e1900 6c 65 61 6e 75 70 28 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 leanup();.}.......private.functi
e1920 6f 6e 20 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 on.renderRowSeparator().{.if.(0.
e1940 3d 3d 3d 20 24 63 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 ===.$count.=.$this->numberOfColu
e1960 6d 6e 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 73 74 mns).{.return;.}..if.(!$this->st
e1980 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 68 61 72 28 29 20 26 yle->getHorizontalBorderChar().&
e19a0 26 20 21 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 43 68 61 72 &.!$this->style->getCrossingChar
e19c0 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 61 72 6b 75 70 20 3d 20 24 74 68 69 73 ()).{.return;.}..$markup.=.$this
e19e0 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 3b 0a 66 6f 72 20 ->style->getCrossingChar();.for.
e1a00 28 24 63 6f 6c 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 ($column.=.0;.$column.<.$count;.
e1a20 2b 2b 24 63 6f 6c 75 6d 6e 29 20 7b 0a 24 6d 61 72 6b 75 70 20 2e 3d 20 73 74 72 5f 72 65 70 65 ++$column).{.$markup..=.str_repe
e1a40 61 74 28 24 74 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 at($this->style->getHorizontalBo
e1a60 72 64 65 72 43 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 rderChar(),.$this->getColumnWidt
e1a80 68 28 24 63 6f 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 h($column)).$this->style->getCro
e1aa0 73 73 69 6e 67 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 ssingChar();.}..$this->output->w
e1ac0 72 69 74 65 6c 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 riteln(sprintf($this->style->get
e1ae0 42 6f 72 64 65 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 BorderFormat(),.$markup));.}....
e1b00 0a 70 72 69 76 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 .private.function.renderColumnSe
e1b20 70 61 72 61 74 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 parator().{.$this->output->write
e1b40 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 72 (sprintf($this->style->getBorder
e1b60 46 6f 72 6d 61 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 Format(),.$this->style->getVerti
e1b80 63 61 6c 42 6f 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 calBorderChar()));.}..........pr
e1ba0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f 77 28 61 72 72 61 79 20 24 ivate.function.renderRow(array.$
e1bc0 72 6f 77 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 72 row,.$cellFormat).{.if.(empty($r
e1be0 6f 77 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 ow)).{.return;.}..$this->renderC
e1c00 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 olumnSeparator();.foreach.($this
e1c20 2d 3e 67 65 74 52 6f 77 43 6f 6c 75 6d 6e 73 28 24 72 6f 77 29 20 61 73 20 24 63 6f 6c 75 6d 6e ->getRowColumns($row).as.$column
e1c40 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
e1c60 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
e1c80 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
e1ca0 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
e1cc0 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
e1ce0 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
e1d00 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[$
e1d20 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
e1d40 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 3b 0a 69 66 20 28 24 63 65 6c 6c tColumnWidth($column);.if.($cell
e1d60 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 6c 6c 20 26 26 20 24 63 65 6c 6c 2d 3e .instanceof.TableCell.&&.$cell->
e1d80 67 65 74 43 6f 6c 73 70 61 6e 28 29 20 3e 20 31 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 72 getColspan().>.1).{...foreach.(r
e1da0 61 6e 67 65 28 24 63 6f 6c 75 6d 6e 20 2b 20 31 2c 20 24 63 6f 6c 75 6d 6e 20 2b 20 24 63 65 6c ange($column.+.1,.$column.+.$cel
e1dc0 6c 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 20 2d 20 31 29 20 61 73 20 24 6e 65 78 74 43 6f 6c l->getColspan().-.1).as.$nextCol
e1de0 75 6d 6e 29 20 7b 0a 24 77 69 64 74 68 20 2b 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d umn).{.$width.+=.$this->getColum
e1e00 6e 53 65 70 61 72 61 74 6f 72 57 69 64 74 68 28 29 20 2b 20 24 74 68 69 73 2d 3e 67 65 74 43 6f nSeparatorWidth().+.$this->getCo
e1e20 6c 75 6d 6e 57 69 64 74 68 28 24 6e 65 78 74 43 6f 6c 75 6d 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 lumnWidth($nextColumn);.}.}....i
e1e40 66 20 28 66 75 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 f.(function_exists('mb_strwidth'
e1e60 29 20 26 26 20 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 ).&&.false.!==.$encoding.=.mb_de
e1e80 74 65 63 74 5f 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 tect_encoding($cell)).{.$width.+
e1ea0 3d 20 73 74 72 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 =.strlen($cell).-.mb_strwidth($c
e1ec0 65 6c 6c 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 65 6c 6c 20 69 6e ell,.$encoding);.}..if.($cell.in
e1ee0 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 74 68 69 73 stanceof.TableSeparator).{.$this
e1f00 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 73 ->output->write(sprintf($this->s
e1f20 74 79 6c 65 2d 3e 67 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 29 2c 20 73 74 72 5f 72 65 70 tyle->getBorderFormat(),.str_rep
e1f40 65 61 74 28 24 74 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 eat($this->style->getHorizontalB
e1f60 6f 72 64 65 72 43 68 61 72 28 29 2c 20 24 77 69 64 74 68 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b orderChar(),.$width)));.}.else.{
e1f80 0a 24 77 69 64 74 68 20 2b 3d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 28 24 63 65 6c 6c 29 .$width.+=.Helper::strlen($cell)
e1fa0 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 69 .-.Helper::strlenWithoutDecorati
e1fc0 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 65 72 28 29 on($this->output->getFormatter()
e1fe0 2c 20 24 63 65 6c 6c 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 73 70 72 69 6e 74 66 28 24 74 68 ,.$cell);.$content.=.sprintf($th
e2000 69 73 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 is->style->getCellRowContentForm
e2020 61 74 28 29 2c 20 24 63 65 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 at(),.$cell);.$this->output->wri
e2040 74 65 28 73 70 72 69 6e 74 66 28 24 63 65 6c 6c 46 6f 72 6d 61 74 2c 20 73 74 72 5f 70 61 64 28 te(sprintf($cellFormat,.str_pad(
e2060 24 63 6f 6e 74 65 6e 74 2c 20 24 77 69 64 74 68 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e $content,.$width,.$this->style->
e2080 67 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 29 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e getPaddingChar(),.$this->style->
e20a0 67 65 74 50 61 64 54 79 70 65 28 29 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 getPadType())));.}.}.....private
e20c0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d .function.calculateNumberOfColum
e20e0 6e 73 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 6e 75 6d 62 65 ns().{.if.(null.!==.$this->numbe
e2100 72 4f 66 43 6f 6c 75 6d 6e 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6c 75 6d 6e rOfColumns).{.return;.}..$column
e2120 73 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6d 65 72 s.=.array(0);.foreach.(array_mer
e2140 67 65 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 74 68 69 73 2d 3e 72 6f 77 73 29 20 ge($this->headers,.$this->rows).
e2160 61 73 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 as.$row).{.if.($row.instanceof.T
e2180 61 62 6c 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 ableSeparator).{.continue;.}..$c
e21a0 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c olumns[].=.$this->getNumberOfCol
e21c0 75 6d 6e 73 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 75 6d umns($row);.}..return.$this->num
e21e0 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6d 61 78 28 24 63 6f 6c 75 6d 6e 73 29 3b 0a 7d 0a berOfColumns.=.max($columns);.}.
e2200 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 54 61 62 6c 65 52 6f 77 73 .private.function.buildTableRows
e2220 28 24 72 6f 77 73 29 0a 7b 0a 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 20 3d 20 61 72 72 61 79 28 ($rows).{.$unmergedRows.=.array(
e2240 29 3b 0a 66 6f 72 20 28 24 72 6f 77 4b 65 79 20 3d 20 30 3b 20 24 72 6f 77 4b 65 79 20 3c 20 63 );.for.($rowKey.=.0;.$rowKey.<.c
e2260 6f 75 6e 74 28 24 72 6f 77 73 29 3b 20 2b 2b 24 72 6f 77 4b 65 79 29 20 7b 0a 24 72 6f 77 73 20 ount($rows);.++$rowKey).{.$rows.
e2280 3d 20 24 74 68 69 73 2d 3e 66 69 6c 6c 4e 65 78 74 52 6f 77 73 28 24 72 6f 77 73 2c 20 24 72 6f =.$this->fillNextRows($rows,.$ro
e22a0 77 4b 65 79 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 72 6f 77 73 5b 24 72 6f 77 4b 65 79 wKey);....foreach.($rows[$rowKey
e22c0 5d 20 61 73 20 24 63 6f 6c 75 6d 6e 20 3d 3e 20 24 63 65 6c 6c 29 20 7b 0a 24 72 6f 77 73 5b 24 ].as.$column.=>.$cell).{.$rows[$
e22e0 72 6f 77 4b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 6c 43 65 6c 6c 73 28 24 72 6f 77 73 rowKey].=.$this->fillCells($rows
e2300 5b 24 72 6f 77 4b 65 79 5d 2c 20 24 63 6f 6c 75 6d 6e 29 3b 0a 69 66 20 28 21 73 74 72 73 74 72 [$rowKey],.$column);.if.(!strstr
e2320 28 24 63 65 6c 6c 2c 20 22 5c 6e 22 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 6c 69 ($cell,."\n")).{.continue;.}.$li
e2340 6e 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 63 65 6c 6c 29 3b 0a 66 6f 72 65 nes.=.explode("\n",.$cell);.fore
e2360 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 4b 65 79 20 3d 3e 20 24 6c 69 6e 65 ach.($lines.as.$lineKey.=>.$line
e2380 29 20 7b 0a 69 66 20 28 24 63 65 6c 6c 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 ).{.if.($cell.instanceof.TableCe
e23a0 6c 6c 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 6e 65 77 20 54 61 62 6c 65 43 65 6c 6c 28 24 6c 69 6e ll).{.$line.=.new.TableCell($lin
e23c0 65 2c 20 61 72 72 61 79 28 27 63 6f 6c 73 70 61 6e 27 20 3d 3e 20 24 63 65 6c 6c 2d 3e 67 65 74 e,.array('colspan'.=>.$cell->get
e23e0 43 6f 6c 73 70 61 6e 28 29 29 29 3b 0a 7d 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 69 6e 65 4b 65 Colspan()));.}.if.(0.===.$lineKe
e2400 79 29 20 7b 0a 24 72 6f 77 73 5b 24 72 6f 77 4b 65 79 5d 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 24 y).{.$rows[$rowKey][$column].=.$
e2420 6c 69 6e 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 5b 24 72 6f line;.}.else.{.$unmergedRows[$ro
e2440 77 4b 65 79 5d 5b 24 6c 69 6e 65 4b 65 79 5d 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 24 6c 69 6e 65 wKey][$lineKey][$column].=.$line
e2460 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 74 61 62 6c 65 52 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b ;.}.}.}.}..$tableRows.=.array();
e2480 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 77 73 20 61 73 20 24 72 6f 77 4b 65 79 20 3d 3e 20 24 72 .foreach.($rows.as.$rowKey.=>.$r
e24a0 6f 77 29 20 7b 0a 24 74 61 62 6c 65 52 6f 77 73 5b 5d 20 3d 20 24 72 6f 77 3b 0a 69 66 20 28 69 ow).{.$tableRows[].=.$row;.if.(i
e24c0 73 73 65 74 28 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 5b 24 72 6f 77 4b 65 79 5d 29 29 20 7b 0a sset($unmergedRows[$rowKey])).{.
e24e0 24 74 61 62 6c 65 52 6f 77 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 61 62 6c 65 52 $tableRows.=.array_merge($tableR
e2500 6f 77 73 2c 20 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 5b 24 72 6f 77 4b 65 79 5d 29 3b 0a 7d 0a ows,.$unmergedRows[$rowKey]);.}.
e2520 7d 0a 0a 72 65 74 75 72 6e 20 24 74 61 62 6c 65 52 6f 77 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a }..return.$tableRows;.}.........
e2540 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 6c 4e 65 78 74 52 6f 77 73 28 24 .private.function.fillNextRows($
e2560 72 6f 77 73 2c 20 24 6c 69 6e 65 29 0a 7b 0a 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 20 3d 20 61 rows,.$line).{.$unmergedRows.=.a
e2580 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 77 73 5b 24 6c 69 6e 65 5d 20 61 73 rray();.foreach.($rows[$line].as
e25a0 20 24 63 6f 6c 75 6d 6e 20 3d 3e 20 24 63 65 6c 6c 29 20 7b 0a 69 66 20 28 24 63 65 6c 6c 20 69 .$column.=>.$cell).{.if.($cell.i
e25c0 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 6c 6c 20 26 26 20 24 63 65 6c 6c 2d 3e 67 65 nstanceof.TableCell.&&.$cell->ge
e25e0 74 52 6f 77 73 70 61 6e 28 29 20 3e 20 31 29 20 7b 0a 24 6e 62 4c 69 6e 65 73 20 3d 20 24 63 65 tRowspan().>.1).{.$nbLines.=.$ce
e2600 6c 6c 2d 3e 67 65 74 52 6f 77 73 70 61 6e 28 29 20 2d 20 31 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 ll->getRowspan().-.1;.$lines.=.a
e2620 72 72 61 79 28 24 63 65 6c 6c 29 3b 0a 69 66 20 28 73 74 72 73 74 72 28 24 63 65 6c 6c 2c 20 22 rray($cell);.if.(strstr($cell,."
e2640 5c 6e 22 29 29 20 7b 0a 24 6c 69 6e 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 \n")).{.$lines.=.explode("\n",.$
e2660 63 65 6c 6c 29 3b 0a 24 6e 62 4c 69 6e 65 73 20 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 cell);.$nbLines.=.count($lines).
e2680 3e 20 24 6e 62 4c 69 6e 65 73 20 3f 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 63 65 6c 6c 2c >.$nbLines.?.substr_count($cell,
e26a0 20 22 5c 6e 22 29 20 3a 20 24 6e 62 4c 69 6e 65 73 3b 0a 0a 24 72 6f 77 73 5b 24 6c 69 6e 65 5d ."\n").:.$nbLines;..$rows[$line]
e26c0 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 6e 65 77 20 54 61 62 6c 65 43 65 6c 6c 28 24 6c 69 6e 65 73 [$column].=.new.TableCell($lines
e26e0 5b 30 5d 2c 20 61 72 72 61 79 28 27 63 6f 6c 73 70 61 6e 27 20 3d 3e 20 24 63 65 6c 6c 2d 3e 67 [0],.array('colspan'.=>.$cell->g
e2700 65 74 43 6f 6c 73 70 61 6e 28 29 29 29 3b 0a 75 6e 73 65 74 28 24 6c 69 6e 65 73 5b 30 5d 29 3b etColspan()));.unset($lines[0]);
e2720 0a 7d 0a 0a 0a 20 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c .}....$unmergedRows.=.array_repl
e2740 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 61 72 72 61 79 5f 66 69 6c 6c 28 24 6c 69 6e 65 20 2b ace_recursive(array_fill($line.+
e2760 20 31 2c 20 24 6e 62 4c 69 6e 65 73 2c 20 27 27 29 2c 20 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 .1,.$nbLines,.''),.$unmergedRows
e2780 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 20 61 73 20 24 75 6e );.foreach.($unmergedRows.as.$un
e27a0 6d 65 72 67 65 64 52 6f 77 4b 65 79 20 3d 3e 20 24 75 6e 6d 65 72 67 65 64 52 6f 77 29 20 7b 0a mergedRowKey.=>.$unmergedRow).{.
e27c0 24 76 61 6c 75 65 20 3d 20 69 73 73 65 74 28 24 6c 69 6e 65 73 5b 24 75 6e 6d 65 72 67 65 64 52 $value.=.isset($lines[$unmergedR
e27e0 6f 77 4b 65 79 20 2d 20 24 6c 69 6e 65 5d 29 20 3f 20 24 6c 69 6e 65 73 5b 24 75 6e 6d 65 72 67 owKey.-.$line]).?.$lines[$unmerg
e2800 65 64 52 6f 77 4b 65 79 20 2d 20 24 6c 69 6e 65 5d 20 3a 20 27 27 3b 0a 24 75 6e 6d 65 72 67 65 edRowKey.-.$line].:.'';.$unmerge
e2820 64 52 6f 77 73 5b 24 75 6e 6d 65 72 67 65 64 52 6f 77 4b 65 79 5d 5b 24 63 6f 6c 75 6d 6e 5d 20 dRows[$unmergedRowKey][$column].
e2840 3d 20 6e 65 77 20 54 61 62 6c 65 43 65 6c 6c 28 24 76 61 6c 75 65 2c 20 61 72 72 61 79 28 27 63 =.new.TableCell($value,.array('c
e2860 6f 6c 73 70 61 6e 27 20 3d 3e 20 24 63 65 6c 6c 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 29 29 olspan'.=>.$cell->getColspan()))
e2880 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 20 ;.}.}.}..foreach.($unmergedRows.
e28a0 61 73 20 24 75 6e 6d 65 72 67 65 64 52 6f 77 4b 65 79 20 3d 3e 20 24 75 6e 6d 65 72 67 65 64 52 as.$unmergedRowKey.=>.$unmergedR
e28c0 6f 77 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 72 6f 77 73 5b 24 75 6e 6d 65 72 67 65 ow).{...if.(isset($rows[$unmerge
e28e0 64 52 6f 77 4b 65 79 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 72 6f 77 73 5b 24 75 6e 6d dRowKey]).&&.is_array($rows[$unm
e2900 65 72 67 65 64 52 6f 77 4b 65 79 5d 29 20 26 26 20 28 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d 62 ergedRowKey]).&&.($this->getNumb
e2920 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 24 72 6f 77 73 5b 24 75 6e 6d 65 72 67 65 64 52 6f 77 4b 65 erOfColumns($rows[$unmergedRowKe
e2940 79 5d 29 20 2b 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 y]).+.$this->getNumberOfColumns(
e2960 24 75 6e 6d 65 72 67 65 64 52 6f 77 73 5b 24 75 6e 6d 65 72 67 65 64 52 6f 77 4b 65 79 5d 29 20 $unmergedRows[$unmergedRowKey]).
e2980 3c 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 29 29 20 7b 0a 66 6f <=.$this->numberOfColumns)).{.fo
e29a0 72 65 61 63 68 20 28 24 75 6e 6d 65 72 67 65 64 52 6f 77 20 61 73 20 24 63 65 6c 6c 4b 65 79 20 reach.($unmergedRow.as.$cellKey.
e29c0 3d 3e 20 24 63 65 6c 6c 29 20 7b 0a 0a 20 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 72 6f 77 73 =>.$cell).{...array_splice($rows
e29e0 5b 24 75 6e 6d 65 72 67 65 64 52 6f 77 4b 65 79 5d 2c 20 24 63 65 6c 6c 4b 65 79 2c 20 30 2c 20 [$unmergedRowKey],.$cellKey,.0,.
e2a00 61 72 72 61 79 28 24 63 65 6c 6c 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 6f 77 20 3d array($cell));.}.}.else.{.$row.=
e2a20 20 24 74 68 69 73 2d 3e 63 6f 70 79 52 6f 77 28 24 72 6f 77 73 2c 20 24 75 6e 6d 65 72 67 65 64 .$this->copyRow($rows,.$unmerged
e2a40 52 6f 77 4b 65 79 20 2d 20 31 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 6d 65 72 67 65 64 52 RowKey.-.1);.foreach.($unmergedR
e2a60 6f 77 20 61 73 20 24 63 6f 6c 75 6d 6e 20 3d 3e 20 24 63 65 6c 6c 29 20 7b 0a 69 66 20 28 21 65 ow.as.$column.=>.$cell).{.if.(!e
e2a80 6d 70 74 79 28 24 63 65 6c 6c 29 29 20 7b 0a 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 24 mpty($cell)).{.$row[$column].=.$
e2aa0 75 6e 6d 65 72 67 65 64 52 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 7d 0a 7d 0a 61 72 72 61 79 5f unmergedRow[$column];.}.}.array_
e2ac0 73 70 6c 69 63 65 28 24 72 6f 77 73 2c 20 24 75 6e 6d 65 72 67 65 64 52 6f 77 4b 65 79 2c 20 30 splice($rows,.$unmergedRowKey,.0
e2ae0 2c 20 61 72 72 61 79 28 24 72 6f 77 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 77 ,.array($row));.}.}..return.$row
e2b00 73 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 66 s;.}..........private.function.f
e2b20 69 6c 6c 43 65 6c 6c 73 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 29 0a 7b 0a 24 63 65 6c 6c 20 illCells($row,.$column).{.$cell.
e2b40 3d 20 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 69 66 20 28 24 63 65 6c 6c 20 69 6e 73 74 61 =.$row[$column];.if.($cell.insta
e2b60 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 6c 6c 20 26 26 20 24 63 65 6c 6c 2d 3e 67 65 74 43 6f 6c nceof.TableCell.&&.$cell->getCol
e2b80 73 70 61 6e 28 29 20 3e 20 31 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 72 61 6e 67 65 28 24 63 6f span().>.1).{.foreach.(range($co
e2ba0 6c 75 6d 6e 20 2b 20 31 2c 20 24 63 6f 6c 75 6d 6e 20 2b 20 24 63 65 6c 6c 2d 3e 67 65 74 43 6f lumn.+.1,.$column.+.$cell->getCo
e2bc0 6c 73 70 61 6e 28 29 20 2d 20 31 29 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 0a 20 61 lspan().-.1).as.$position).{...a
e2be0 72 72 61 79 5f 73 70 6c 69 63 65 28 24 72 6f 77 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 30 2c 20 rray_splice($row,.$position,.0,.
e2c00 27 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 77 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a '');.}.}..return.$row;.}........
e2c20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 52 6f 77 28 24 72 6f 77 73 2c 20 private.function.copyRow($rows,.
e2c40 24 6c 69 6e 65 29 0a 7b 0a 24 72 6f 77 20 3d 20 24 72 6f 77 73 5b 24 6c 69 6e 65 5d 3b 0a 66 6f $line).{.$row.=.$rows[$line];.fo
e2c60 72 65 61 63 68 20 28 24 72 6f 77 20 61 73 20 24 63 65 6c 6c 4b 65 79 20 3d 3e 20 24 63 65 6c 6c reach.($row.as.$cellKey.=>.$cell
e2c80 56 61 6c 75 65 29 20 7b 0a 24 72 6f 77 5b 24 63 65 6c 6c 4b 65 79 5d 20 3d 20 27 27 3b 0a 69 66 Value).{.$row[$cellKey].=.'';.if
e2ca0 20 28 24 63 65 6c 6c 56 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 6c .($cellValue.instanceof.TableCel
e2cc0 6c 29 20 7b 0a 24 72 6f 77 5b 24 63 65 6c 6c 4b 65 79 5d 20 3d 20 6e 65 77 20 54 61 62 6c 65 43 l).{.$row[$cellKey].=.new.TableC
e2ce0 65 6c 6c 28 27 27 2c 20 61 72 72 61 79 28 27 63 6f 6c 73 70 61 6e 27 20 3d 3e 20 24 63 65 6c 6c ell('',.array('colspan'.=>.$cell
e2d00 56 61 6c 75 65 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 Value->getColspan()));.}.}..retu
e2d20 72 6e 20 24 72 6f 77 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 rn.$row;.}.........private.funct
e2d40 69 6f 6e 20 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 61 72 72 61 79 20 24 72 6f ion.getNumberOfColumns(array.$ro
e2d60 77 29 0a 7b 0a 24 63 6f 6c 75 6d 6e 73 20 3d 20 63 6f 75 6e 74 28 24 72 6f 77 29 3b 0a 66 6f 72 w).{.$columns.=.count($row);.for
e2d80 65 61 63 68 20 28 24 72 6f 77 20 61 73 20 24 63 6f 6c 75 6d 6e 29 20 7b 0a 24 63 6f 6c 75 6d 6e each.($row.as.$column).{.$column
e2da0 73 20 2b 3d 20 24 63 6f 6c 75 6d 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 6c s.+=.$column.instanceof.TableCel
e2dc0 6c 20 3f 20 28 24 63 6f 6c 75 6d 6e 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 20 2d 20 31 29 20 l.?.($column->getColspan().-.1).
e2de0 3a 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6c 75 6d 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a :.0;.}..return.$columns;.}......
e2e00 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 77 43 6f 6c 75 6d 6e ...private.function.getRowColumn
e2e20 73 28 24 72 6f 77 29 0a 7b 0a 24 63 6f 6c 75 6d 6e 73 20 3d 20 72 61 6e 67 65 28 30 2c 20 24 74 s($row).{.$columns.=.range(0,.$t
e2e40 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 2d 20 31 29 3b 0a 66 6f 72 65 61 his->numberOfColumns.-.1);.forea
e2e60 63 68 20 28 24 72 6f 77 20 61 73 20 24 63 65 6c 6c 4b 65 79 20 3d 3e 20 24 63 65 6c 6c 29 20 7b ch.($row.as.$cellKey.=>.$cell).{
e2e80 0a 69 66 20 28 24 63 65 6c 6c 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 65 6c 6c 20 .if.($cell.instanceof.TableCell.
e2ea0 26 26 20 24 63 65 6c 6c 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 20 3e 20 31 29 20 7b 0a 0a 20 &&.$cell->getColspan().>.1).{...
e2ec0 24 63 6f 6c 75 6d 6e 73 20 3d 20 61 72 72 61 79 5f 64 69 66 66 28 24 63 6f 6c 75 6d 6e 73 2c 20 $columns.=.array_diff($columns,.
e2ee0 72 61 6e 67 65 28 24 63 65 6c 6c 4b 65 79 20 2b 20 31 2c 20 24 63 65 6c 6c 4b 65 79 20 2b 20 24 range($cellKey.+.1,.$cellKey.+.$
e2f00 63 65 6c 6c 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 20 2d 20 31 29 29 3b 0a 7d 0a 7d 0a 0a 72 cell->getColspan().-.1));.}.}..r
e2f20 65 74 75 72 6e 20 24 63 6f 6c 75 6d 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 eturn.$columns;.}.........privat
e2f40 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d e.function.getColumnWidth($colum
e2f60 6e 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 n).{.if.(isset($this->columnWidt
e2f80 68 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 hs[$column])).{.return.$this->co
e2fa0 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 lumnWidths[$column];.}..foreach.
e2fc0 28 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 74 68 (array_merge($this->headers,.$th
e2fe0 69 73 2d 3e 72 6f 77 73 29 20 61 73 20 24 72 6f 77 29 20 7b 0a 69 66 20 28 24 72 6f 77 20 69 6e is->rows).as.$row).{.if.($row.in
e3000 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 74 69 stanceof.TableSeparator).{.conti
e3020 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 74 43 nue;.}..$lengths[].=.$this->getC
e3040 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 74 75 ellWidth($row,.$column);.}..retu
e3060 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 5d 20 rn.$this->columnWidths[$column].
e3080 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 2d 3e =.max($lengths).+.strlen($this->
e30a0 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 28 29 style->getCellRowContentFormat()
e30c0 29 20 2d 20 32 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 ).-.2;.}.........private.functio
e30e0 6e 20 67 65 74 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 57 69 64 74 68 28 29 0a 7b 0a 72 65 n.getColumnSeparatorWidth().{.re
e3100 74 75 72 6e 20 73 74 72 6c 65 6e 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 turn.strlen(sprintf($this->style
e3120 2d 3e 67 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 29 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c ->getBorderFormat(),.$this->styl
e3140 65 2d 3e 67 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 29 29 29 3b 0a 7d 0a e->getVerticalBorderChar()));.}.
e3160 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c .........private.function.getCel
e3180 6c 57 69 64 74 68 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 29 0a 7b 0a 69 66 lWidth(array.$row,.$column).{.if
e31a0 20 28 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 29 20 7b 0a 24 63 65 6c 6c 20 .(isset($row[$column])).{.$cell.
e31c0 3d 20 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 24 63 65 6c 6c 57 69 64 74 68 20 3d 20 48 65 =.$row[$column];.$cellWidth.=.He
e31e0 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 69 6f 6e 28 24 74 lper::strlenWithoutDecoration($t
e3200 68 69 73 2d 3e 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 63 65 his->output->getFormatter(),.$ce
e3220 6c 6c 29 3b 0a 69 66 20 28 24 63 65 6c 6c 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 43 ll);.if.($cell.instanceof.TableC
e3240 65 6c 6c 20 26 26 20 24 63 65 6c 6c 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 20 3e 20 31 29 20 ell.&&.$cell->getColspan().>.1).
e3260 7b 0a 0a 20 24 63 65 6c 6c 57 69 64 74 68 20 3d 20 24 63 65 6c 6c 57 69 64 74 68 20 2f 20 24 63 {...$cellWidth.=.$cellWidth./.$c
e3280 65 6c 6c 2d 3e 67 65 74 43 6f 6c 73 70 61 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 65 ell->getColspan();.}..return.$ce
e32a0 6c 6c 57 69 64 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 llWidth;.}..return.0;.}.....priv
e32c0 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 69 73 2d 3e ate.function.cleanup().{.$this->
e32e0 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 73 2d 3e 6e columnWidths.=.array();.$this->n
e3300 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 69 76 61 74 umberOfColumns.=.null;.}..privat
e3320 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 28 29 0a 7b e.static.function.initStyles().{
e3340 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 65 28 29 3b .$borderless.=.new.TableStyle();
e3360 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 42 6f 72 64 .$borderless.->setHorizontalBord
e3380 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 64 65 72 43 erChar('=').->setVerticalBorderC
e33a0 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 20 27 29 0a har('.').->setCrossingChar('.').
e33c0 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 28 29 3b 0a ;..$compact.=.new.TableStyle();.
e33e0 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 65 72 43 68 $compact.->setHorizontalBorderCh
e3400 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 61 72 28 27 ar('').->setVerticalBorderChar('
e3420 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 73 65 74 43 .').->setCrossingChar('').->setC
e3440 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 0a 24 73 74 ellRowContentFormat('%s').;..$st
e3460 79 6c 65 47 75 69 64 65 20 3d 20 6e 65 77 20 54 61 62 6c 65 53 74 79 6c 65 28 29 3b 0a 24 73 74 yleGuide.=.new.TableStyle();.$st
e3480 79 6c 65 47 75 69 64 65 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 yleGuide.->setHorizontalBorderCh
e34a0 61 72 28 27 2d 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 ar('-').->setVerticalBorderChar(
e34c0 27 20 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 '.').->setCrossingChar('.').->se
e34e0 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 3b 0a 0a 72 65 74 75 72 tCellHeaderFormat('%s').;..retur
e3500 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 54 61 62 6c 65 53 n.array(.'default'.=>.new.TableS
e3520 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 6f 72 64 65 72 6c tyle(),.'borderless'.=>.$borderl
e3540 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 2c 0a 27 73 79 6d ess,.'compact'.=>.$compact,.'sym
e3560 66 6f 6e 79 2d 73 74 79 6c 65 2d 67 75 69 64 65 27 20 3d 3e 20 24 73 74 79 6c 65 47 75 69 64 65 fony-style-guide'.=>.$styleGuide
e3580 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
e35a0 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
e35c0 70 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 43 65 6c 6c 0a 7b 0a 0a 0a 0a 70 72 per;.....class.TableCell.{....pr
e35e0 69 76 61 74 65 20 24 76 61 6c 75 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f ivate.$value;.....private.$optio
e3600 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 72 6f 77 73 70 61 6e 27 20 3d 3e 20 31 2c 0a 27 63 6f 6c ns.=.array(.'rowspan'.=>.1,.'col
e3620 73 70 61 6e 27 20 3d 3e 20 31 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 span'.=>.1,.);......public.funct
e3640 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 61 6c 75 65 20 3d 20 27 27 2c 20 61 72 72 ion.__construct($value.=.'',.arr
e3660 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e ay.$options.=.array()).{.$this->
e3680 76 61 6c 75 65 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 0a 20 69 66 20 28 24 64 69 66 66 20 3d 20 61 value.=.$value;....if.($diff.=.a
e36a0 72 72 61 79 5f 64 69 66 66 28 61 72 72 61 79 5f 6b 65 79 73 28 24 6f 70 74 69 6f 6e 73 29 2c 20 rray_diff(array_keys($options),.
e36c0 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 29 20 7b 0a 74 array_keys($this->options))).{.t
e36e0 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
e3700 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 54 61 62 6c 65 43 65 6c 6c 20 64 6f 65 73 20 6e on(sprintf('The.TableCell.does.n
e3720 6f 74 20 73 75 70 70 6f 72 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 70 74 69 6f 6e 73 ot.support.the.following.options
e3740 3a 20 5c 27 25 73 5c 27 2e 27 2c 20 69 6d 70 6c 6f 64 65 28 27 5c 27 2c 20 5c 27 27 2c 20 24 64 :.\'%s\'.',.implode('\',.\'',.$d
e3760 69 66 66 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 iff)));.}..$this->options.=.arra
e3780 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 6f 70 74 69 6f 6e 73 y_merge($this->options,.$options
e37a0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 );.}.......public.function.__toS
e37c0 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 3b 0a 7d tring().{.return.$this->value;.}
e37e0 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 6c 73 70 61 .......public.function.getColspa
e3800 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e n().{.return.(int).$this->option
e3820 73 5b 27 63 6f 6c 73 70 61 6e 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e s['colspan'];.}.......public.fun
e3840 63 74 69 6f 6e 20 67 65 74 52 6f 77 73 70 61 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 69 6e 74 ction.getRowspan().{.return.(int
e3860 29 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 72 6f 77 73 70 61 6e 27 5d 3b 0a 7d 0a 7d ).$this->options['rowspan'];.}.}
e3880 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
e38a0 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 73 ny\Component\Console\Helper;..us
e38c0 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
e38e0 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\
e3900 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 74 Component\Console\Output\NullOut
e3920 70 75 74 3b 0a 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 put;...........class.TableHelper
e3940 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
e3960 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
e3980 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.=.
e39a0 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
e39c0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 72 69 67 67 65 72 44 65 70 72 unction.__construct($triggerDepr
e39e0 65 63 61 74 69 6f 6e 45 72 72 6f 72 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 24 74 72 69 67 ecationError.=.true).{.if.($trig
e3a00 67 65 72 44 65 70 72 65 63 61 74 69 6f 6e 45 72 72 6f 72 29 20 7b 0a 40 74 72 69 67 67 65 72 5f gerDeprecationError).{.@trigger_
e3a20 65 72 72 6f 72 28 27 54 68 65 20 27 2e 5f 5f 43 4c 41 53 53 5f 5f 2e 27 20 63 6c 61 73 73 20 69 error('The.'.__CLASS__.'.class.i
e3a40 73 20 64 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 s.deprecated.since.version.2.5.a
e3a60 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 74 nd.will.be.removed.in.3.0..Use.t
e3a80 68 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 he.Symfony\Component\Console\Hel
e3aa0 70 65 72 5c 54 61 62 6c 65 20 63 6c 61 73 73 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 per\Table.class.instead.',.E_USE
e3ac0 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 20 3d R_DEPRECATED);.}..$this->table.=
e3ae0 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 29 29 3b 0a 7d 0a .new.Table(new.NullOutput());.}.
e3b00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 61 79 ..........public.function.setLay
e3b20 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 79 6f 75 74 29 20 out($layout).{.switch.($layout).
e3b40 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 4c 45 53 53 3a 0a {.case.self::LAYOUT_BORDERLESS:.
e3b60 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 72 64 65 72 6c 65 $this->table->setStyle('borderle
e3b80 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 41 59 4f 55 54 5f ss');.break;..case.self::LAYOUT_
e3ba0 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 53 74 79 6c 65 28 COMPACT:.$this->table->setStyle(
e3bc0 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 65 6c 66 3a 3a 4c 'compact');.break;..case.self::L
e3be0 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 65 2d 3e 73 65 74 AYOUT_DEFAULT:.$this->table->set
e3c00 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 64 65 66 61 75 6c Style('default');.break;..defaul
e3c20 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 45 78 63 t:.throw.new.\InvalidArgumentExc
e3c40 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 62 6c 65 20 6c 61 eption(sprintf('Invalid.table.la
e3c60 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 0a 0a 72 65 74 75 yout."%s".',.$layout));.};..retu
e3c80 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 rn.$this;.}..public.function.set
e3ca0 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 24 74 68 69 73 2d Headers(array.$headers).{.$this-
e3cc0 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 73 29 3b 0a 0a 72 >table->setHeaders($headers);..r
e3ce0 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.
e3d00 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 74 61 setRows(array.$rows).{.$this->ta
e3d20 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 72 6e 20 24 74 68 ble->setRows($rows);..return.$th
e3d40 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 52 6f 77 73 28 61 is;.}..public.function.addRows(a
e3d60 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 2d 3e 61 64 64 52 rray.$rows).{.$this->table->addR
e3d80 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 0a 7d 0a 0a 70 75 ows($rows);..return.$this;.}..pu
e3da0 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 20 24 72 6f 77 29 blic.function.addRow(array.$row)
e3dc0 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 6f 77 29 3b 0a 0a .{.$this->table->addRow($row);..
e3de0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e return.$this;.}..public.function
e3e00 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 77 29 0a 7b 0a 24 .setRow($column,.array.$row).{.$
e3e20 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 6e 2c 20 24 72 6f this->table->setRow($column,.$ro
e3e40 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 0a 0a 0a 70 75 62 w);..return.$this;.}.........pub
e3e60 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 72 28 24 70 61 64 lic.function.setPaddingChar($pad
e3e80 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 67 65 74 53 74 79 dingChar).{.$this->table->getSty
e3ea0 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 69 6e 67 43 68 61 le()->setPaddingChar($paddingCha
e3ec0 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 0a 0a 0a 70 75 62 r);..return.$this;.}.........pub
e3ee0 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 42 6f 72 64 65 72 lic.function.setHorizontalBorder
e3f00 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 29 0a 7b 0a 24 74 Char($horizontalBorderChar).{.$t
e3f20 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 48 6f 72 69 7a his->table->getStyle()->setHoriz
e3f40 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 ontalBorderChar($horizontalBorde
e3f60 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 0a 0a rChar);..return.$this;.}........
e3f80 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 61 6c 42 6f 72 64 .public.function.setVerticalBord
e3fa0 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 29 0a 7b 0a 24 74 erChar($verticalBorderChar).{.$t
e3fc0 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 56 65 72 74 69 his->table->getStyle()->setVerti
e3fe0 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 64 65 72 43 68 61 calBorderChar($verticalBorderCha
e4000 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 0a 0a 0a 70 75 62 r);..return.$this;.}.........pub
e4020 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 24 63 72 lic.function.setCrossingChar($cr
e4040 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 2d 3e 67 65 74 53 ossingChar).{.$this->table->getS
e4060 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 72 6f 73 73 69 6e tyle()->setCrossingChar($crossin
e4080 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 0a 0a gChar);..return.$this;.}........
e40a0 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 61 64 65 72 46 6f .public.function.setCellHeaderFo
e40c0 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 24 74 68 69 73 2d rmat($cellHeaderFormat).{.$this-
e40e0 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 6c 48 65 61 64 65 >table->getStyle()->setCellHeade
e4100 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 3b 0a 0a 72 65 74 rFormat($cellHeaderFormat);..ret
e4120 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
e4140 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 6f 77 46 6f tion.setCellRowFormat($cellRowFo
e4160 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 74 79 6c 65 28 29 rmat).{.$this->table->getStyle()
e4180 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 6c 52 6f 77 46 6f ->setCellHeaderFormat($cellRowFo
e41a0 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 0a 0a 0a 0a 0a 0a rmat);..return.$this;.}.........
e41c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e public.function.setCellRowConten
e41e0 74 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 29 0a 7b tFormat($cellRowContentFormat).{
e4200 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 74 43 65 .$this->table->getStyle()->setCe
e4220 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 77 43 6f 6e 74 65 llRowContentFormat($cellRowConte
e4240 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 7d 0a 0a 0a 0a 0a ntFormat);..return.$this;.}.....
e4260 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 64 65 72 46 6f 72 ....public.function.setBorderFor
e4280 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 2d 3e 74 61 62 6c mat($borderFormat).{.$this->tabl
e42a0 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 72 6d 61 74 28 24 e->getStyle()->setBorderFormat($
e42c0 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 69 73 3b 0a 7d 0a borderFormat);..return.$this;.}.
e42e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 54 79 ........public.function.setPadTy
e4300 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 65 2d 3e 67 65 74 pe($padType).{.$this->table->get
e4320 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 70 65 29 3b 0a 0a Style()->setPadType($padType);..
e4340 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 70 return.$this;.}................p
e4360 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 4f 75 74 70 75 74 49 6e 74 65 ublic.function.render(OutputInte
e4380 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 5c 52 65 66 6c 65 rface.$output).{.$p.=.new.\Refle
e43a0 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 2c 20 27 6f 75 74 ctionProperty($this->table,.'out
e43c0 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 72 75 65 29 3b 0a put');.$p->setAccessible(true);.
e43e0 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 20 24 6f 75 74 70 $p->setValue($this->table,.$outp
e4400 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 28 29 3b 0a 7d 0a ut);..$this->table->render();.}.
e4420 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().{.
e4440 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 0a 0a 0a 0a 0a 0a return.'table';.}.}.<?php.......
e4460 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\
e4480 43 6f 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 Console\Helper;.......class.Tabl
e44a0 65 53 65 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 54 61 62 6c 65 43 65 6c 6c 0a 7b 0a 0a eSeparator.extends.TableCell.{..
e44c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ...public.function.__construct(a
e44e0 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 70 61 72 65 6e rray.$options.=.array()).{.paren
e4500 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 27 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a t::__construct('',.$options);.}.
e4520 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
e4540 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 0a ony\Component\Console\Helper;...
e4560 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 53 74 79 6c 65 0a 7b 0a 70 72 69 76 61 74 65 20 .....class.TableStyle.{.private.
e4580 24 70 61 64 64 69 6e 67 43 68 61 72 20 3d 20 27 20 27 3b 0a 70 72 69 76 61 74 65 20 24 68 6f 72 $paddingChar.=.'.';.private.$hor
e45a0 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 izontalBorderChar.=.'-';.private
e45c0 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 27 7c 27 3b 0a 70 72 69 76 .$verticalBorderChar.=.'|';.priv
e45e0 61 74 65 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 20 3d 20 27 2b 27 3b 0a 70 72 69 76 61 74 65 ate.$crossingChar.=.'+';.private
e4600 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 20 3d 20 27 3c 69 6e 66 6f 3e 25 73 3c 2f .$cellHeaderFormat.=.'<info>%s</
e4620 69 6e 66 6f 3e 27 3b 0a 70 72 69 76 61 74 65 20 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d info>';.private.$cellRowFormat.=
e4640 20 27 25 73 27 3b 0a 70 72 69 76 61 74 65 20 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f .'%s';.private.$cellRowContentFo
e4660 72 6d 61 74 20 3d 20 27 20 25 73 20 27 3b 0a 70 72 69 76 61 74 65 20 24 62 6f 72 64 65 72 46 6f rmat.=.'.%s.';.private.$borderFo
e4680 72 6d 61 74 20 3d 20 27 25 73 27 3b 0a 70 72 69 76 61 74 65 20 24 70 61 64 54 79 70 65 20 3d 20 rmat.=.'%s';.private.$padType.=.
e46a0 53 54 52 5f 50 41 44 5f 52 49 47 48 54 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 STR_PAD_RIGHT;.........public.fu
e46c0 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 24 70 61 64 64 69 6e 67 43 68 nction.setPaddingChar($paddingCh
e46e0 61 72 29 0a 7b 0a 69 66 20 28 21 24 70 61 64 64 69 6e 67 43 68 61 72 29 20 7b 0a 74 68 72 6f 77 ar).{.if.(!$paddingChar).{.throw
e4700 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 70 61 64 64 69 6e .new.\LogicException('The.paddin
e4720 67 20 63 68 61 72 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 65 6d 70 74 79 27 29 3b 0a 7d 0a 0a 24 g.char.must.not.be.empty');.}..$
e4740 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 20 3d 20 24 70 61 64 64 69 6e 67 43 68 61 72 this->paddingChar.=.$paddingChar
e4760 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.
e4780 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 function.getPaddingChar().{.retu
e47a0 72 6e 20 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a rn.$this->paddingChar;.}........
e47c0 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 42 6f .public.function.setHorizontalBo
e47e0 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 29 0a rderChar($horizontalBorderChar).
e4800 7b 0a 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 {.$this->horizontalBorderChar.=.
e4820 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 $horizontalBorderChar;..return.$
e4840 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 67 65 this;.}.......public.function.ge
e4860 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e tHorizontalBorderChar().{.return
e4880 20 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 7d 0a .$this->horizontalBorderChar;.}.
e48a0 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 74 69 ........public.function.setVerti
e48c0 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 64 65 72 43 68 61 calBorderChar($verticalBorderCha
e48e0 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d r).{.$this->verticalBorderChar.=
e4900 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 .$verticalBorderChar;..return.$t
e4920 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
e4940 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 VerticalBorderChar().{.return.$t
e4960 68 69 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a his->verticalBorderChar;.}......
e4980 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
e49a0 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 63 72 6f 73 73 ar($crossingChar).{.$this->cross
e49c0 69 6e 67 43 68 61 72 20 3d 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e ingChar.=.$crossingChar;..return
e49e0 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.
e4a00 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 getCrossingChar().{.return.$this
e4a20 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ->crossingChar;.}.........public
e4a40 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 .function.setCellHeaderFormat($c
e4a60 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 ellHeaderFormat).{.$this->cellHe
e4a80 61 64 65 72 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a aderFormat.=.$cellHeaderFormat;.
e4aa0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$this;.}.......public.fu
e4ac0 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 nction.getCellHeaderFormat().{.r
e4ae0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 7d eturn.$this->cellHeaderFormat;.}
e4b00 0a 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 6c .........public.function.setCell
e4b20 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 RowFormat($cellRowFormat).{.$thi
e4b40 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 s->cellRowFormat.=.$cellRowForma
e4b60 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 70 75 62 6c 69 63 t;..return.$this;.}.......public
e4b80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 .function.getCellRowFormat().{.r
e4ba0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a eturn.$this->cellRowFormat;.}...
e4bc0 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
e4be0 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
e4c00 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d mat).{.$this->cellRowContentForm
e4c20 61 74 20 3d 20 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 at.=.$cellRowContentFormat;..ret
e4c40 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
e4c60 6f 6e 20 67 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 on.getCellRowContentFormat().{.r
e4c80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 eturn.$this->cellRowContentForma
e4ca0 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 74 t;.}.........public.function.set
e4cc0 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 BorderFormat($borderFormat).{.$t
e4ce0 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 20 3d 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 his->borderFormat.=.$borderForma
e4d00 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 70 75 62 6c 69 63 t;..return.$this;.}.......public
e4d20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 .function.getBorderFormat().{.re
e4d40 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a turn.$this->borderFormat;.}.....
e4d60 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 54 79 70 65 28 24 ....public.function.setPadType($
e4d80 70 61 64 54 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 70 61 64 54 79 70 padType).{.if.(!in_array($padTyp
e4da0 65 2c 20 61 72 72 61 79 28 53 54 52 5f 50 41 44 5f 4c 45 46 54 2c 20 53 54 52 5f 50 41 44 5f 52 e,.array(STR_PAD_LEFT,.STR_PAD_R
e4dc0 49 47 48 54 2c 20 53 54 52 5f 50 41 44 5f 42 4f 54 48 29 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 IGHT,.STR_PAD_BOTH),.true)).{.th
e4de0 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
e4e00 6e 28 27 49 6e 76 61 6c 69 64 20 70 61 64 64 69 6e 67 20 74 79 70 65 2e 20 45 78 70 65 63 74 65 n('Invalid.padding.type..Expecte
e4e20 64 20 6f 6e 65 20 6f 66 20 28 53 54 52 5f 50 41 44 5f 4c 45 46 54 2c 20 53 54 52 5f 50 41 44 5f d.one.of.(STR_PAD_LEFT,.STR_PAD_
e4e40 52 49 47 48 54 2c 20 53 54 52 5f 50 41 44 5f 42 4f 54 48 29 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 RIGHT,.STR_PAD_BOTH).');.}..$thi
e4e60 73 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 s->padType.=.$padType;..return.$
e4e80 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 67 65 this;.}.......public.function.ge
e4ea0 74 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 tPadType().{.return.$this->padTy
e4ec0 70 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 pe;.}.}.<?php...........namespac
e4ee0 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
e4f00 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 t;...........................cla
e4f20 73 73 20 41 72 67 76 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 ss.ArgvInput.extends.Input.{.pri
e4f40 76 61 74 65 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 3b 0a 0a vate.$tokens;.private.$parsed;..
e4f60 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
e4f80 74 28 61 72 72 61 79 20 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 44 65 66 69 6e t(array.$argv.=.null,.InputDefin
e4fa0 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 ition.$definition.=.null).{.if.(
e4fc0 6e 75 6c 6c 20 3d 3d 3d 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 76 20 3d 20 24 5f 53 45 52 56 null.===.$argv).{.$argv.=.$_SERV
e4fe0 45 52 5b 27 61 72 67 76 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 ER['argv'];.}....array_shift($ar
e5000 67 76 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 61 72 67 76 3b 0a 0a 70 61 gv);..$this->tokens.=.$argv;..pa
e5020 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a rent::__construct($definition);.
e5040 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 54 6f 6b 65 6e 73 28 }..protected.function.setTokens(
e5060 61 72 72 61 79 20 24 74 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d array.$tokens).{.$this->tokens.=
e5080 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .$tokens;.}.....protected.functi
e50a0 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 74 72 75 on.parse().{.$parseOptions.=.tru
e50c0 65 3b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 e;.$this->parsed.=.$this->tokens
e50e0 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 ;.while.(null.!==.$token.=.array
e5100 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 69 66 20 28 24 70 61 _shift($this->parsed)).{.if.($pa
e5120 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 rseOptions.&&.''.==.$token).{.$t
e5140 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 20 65 6c his->parseArgument($token);.}.el
e5160 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 2d 27 20 3d 3d 20 24 seif.($parseOptions.&&.'--'.==.$
e5180 74 6f 6b 65 6e 29 20 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 66 61 6c 73 65 3b 0a token).{.$parseOptions.=.false;.
e51a0 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 30 20 3d 3d 3d }.elseif.($parseOptions.&&.0.===
e51c0 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e .strpos($token,.'--')).{.$this->
e51e0 70 61 72 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 parseLongOption($token);.}.elsei
e5200 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b f.($parseOptions.&&.'-'.===.$tok
e5220 65 6e 5b 30 5d 20 26 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 en[0].&&.'-'.!==.$token).{.$this
e5240 2d 3e 70 61 72 73 65 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 ->parseShortOption($token);.}.el
e5260 73 65 20 7b 0a 24 74 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 se.{.$this->parseArgument($token
e5280 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 );.}.}.}.......private.function.
e52a0 70 61 72 73 65 53 68 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 parseShortOption($token).{.$name
e52c0 20 3d 20 73 75 62 73 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 .=.substr($token,.1);..if.(strle
e52e0 6e 28 24 6e 61 6d 65 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 n($name).>.1).{.if.($this->defin
e5300 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 20 26 26 20 ition->hasShortcut($name[0]).&&.
e5320 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 $this->definition->getOptionForS
e5340 68 6f 72 74 63 75 74 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 hortcut($name[0])->acceptValue()
e5360 29 20 7b 0a 0a 20 24 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 ).{...$this->addShortOption($nam
e5380 65 5b 30 5d 2c 20 73 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 e[0],.substr($name,.1));.}.else.
e53a0 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 {.$this->parseShortOptionSet($na
e53c0 6d 65 29 3b 0a 7d 0a 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 me);.}.}.else.{.$this->addShortO
e53e0 70 74 69 6f 6e 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 ption($name,.null);.}.}.........
e5400 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f private.function.parseShortOptio
e5420 6e 53 65 74 28 24 6e 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 nSet($name).{.$len.=.strlen($nam
e5440 65 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 2b 2b 24 69 e);.for.($i.=.0;.$i.<.$len;.++$i
e5460 29 20 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
e5480 68 6f 72 74 63 75 74 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 hortcut($name[$i])).{.throw.new.
e54a0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 \RuntimeException(sprintf('The."
e54c0 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e -%s".option.does.not.exist.',.$n
e54e0 61 6d 65 5b 24 69 5d 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 ame[$i]));.}..$option.=.$this->d
e5500 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 28 efinition->getOptionForShortcut(
e5520 24 6e 61 6d 65 5b 24 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 $name[$i]);.if.($option->acceptV
e5540 61 6c 75 65 28 29 29 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 alue()).{.$this->addLongOption($
e5560 6f 70 74 69 6f 6e 2d 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 option->getName(),.$i.===.$len.-
e5580 20 31 20 3f 20 6e 75 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 .1.?.null.:.substr($name,.$i.+.1
e55a0 29 29 3b 0a 0a 62 72 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 ));..break;.}.else.{.$this->addL
e55c0 6f 6e 67 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 ongOption($option->getName(),.nu
e55e0 6c 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ll);.}.}.}.......private.functio
e5600 6e 20 70 61 72 73 65 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 n.parseLongOption($token).{.$nam
e5620 65 20 3d 20 73 75 62 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 e.=.substr($token,.2);..if.(fals
e5640 65 20 21 3d 3d 20 24 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 e.!==.$pos.=.strpos($name,.'='))
e5660 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 .{.$this->addLongOption(substr($
e5680 6e 61 6d 65 2c 20 30 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 name,.0,.$pos),.substr($name,.$p
e56a0 6f 73 20 2b 20 31 29 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 os.+.1));.}.else.{.$this->addLon
e56c0 67 4f 70 74 69 6f 6e 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 gOption($name,.null);.}.}.......
e56e0 0a 0a 70 72 69 76 61 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 ..private.function.parseArgument
e5700 28 24 74 6f 6b 65 6e 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 ($token).{.$c.=.count($this->arg
e5720 75 6d 65 6e 74 73 29 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 uments);....if.($this->definitio
e5740 6e 2d 3e 68 61 73 41 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 n->hasArgument($c)).{.$arg.=.$th
e5760 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 29 3b is->definition->getArgument($c);
e5780 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 .$this->arguments[$arg->getName(
e57a0 29 5d 20 3d 20 24 61 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 )].=.$arg->isArray().?.array($to
e57c0 6b 65 6e 29 20 3a 20 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 ken).:.$token;....}.elseif.($thi
e57e0 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 s->definition->hasArgument($c.-.
e5800 31 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 1).&&.$this->definition->getArgu
e5820 6d 65 6e 74 28 24 63 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 ment($c.-.1)->isArray()).{.$arg.
e5840 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 =.$this->definition->getArgument
e5860 28 24 63 20 2d 20 31 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 ($c.-.1);.$this->arguments[$arg-
e5880 3e 67 65 74 4e 61 6d 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 >getName()][].=.$token;....}.els
e58a0 65 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 e.{.throw.new.\RuntimeException(
e58c0 27 54 6f 6f 20 6d 61 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 'Too.many.arguments.');.}.}.....
e58e0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 .....private.function.addShortOp
e5900 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 tion($shortcut,.$value).{.if.(!$
e5920 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 this->definition->hasShortcut($s
e5940 68 6f 72 74 63 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 hortcut)).{.throw.new.\RuntimeEx
e5960 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 74 69 6f ception(sprintf('The."-%s".optio
e5980 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b n.does.not.exist.',.$shortcut));
e59a0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e .}..$this->addLongOption($this->
e59c0 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
e59e0 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b ($shortcut)->getName(),.$value);
e5a00 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 64 64 .}..........private.function.add
e5a20 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 LongOption($name,.$value).{.if.(
e5a40 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e !$this->definition->hasOption($n
e5a60 61 6d 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 70 74 ame)).{.throw.new.\RuntimeExcept
e5a80 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 ion(sprintf('The."--%s".option.d
e5aa0 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 oes.not.exist.',.$name));.}..$op
e5ac0 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 tion.=.$this->definition->getOpt
e5ae0 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 76 61 6c 75 65 ion($name);....if.(!isset($value
e5b00 5b 30 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 [0])).{.$value.=.null;.}..if.(nu
e5b20 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 ll.!==.$value.&&.!$option->accep
e5b40 74 56 61 6c 75 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 tValue()).{.throw.new.\RuntimeEx
e5b60 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 74 69 ception(sprintf('The."--%s".opti
e5b80 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e on.does.not.accept.a.value.',.$n
e5ba0 61 6d 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 ame));.}..if.(null.===.$value.&&
e5bc0 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
e5be0 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
e5c00 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
e5c20 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[
e5c40 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.(
e5c60 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
e5c80 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
e5ca0 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
e5cc0 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
e5ce0 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
e5d00 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.
e5d20 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));.}..
e5d40 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
e5d60 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().?
e5d80 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;.}
e5da0 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
e5dc0 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;.
e5de0 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].=
e5e00 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
e5e20 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.
e5e40 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.(
e5e60 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
e5e80 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;.}.}..
e5ea0 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
e5ec0 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.
e5ee0 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
e5f00 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.
e5f20 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
e5f40 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
e5f60 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;.
e5f80 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;.}..........
e5fa0 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
e5fc0 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)
e5fe0 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
e6000 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
e6020 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
e6040 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
e6060 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.==
e6080 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,
e60a0 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
e60c0 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
e60e0 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);.}..
e6100 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);.}.}
e6120 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
e6140 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
e6160 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
e6180 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
e61a0 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('{^(-[^=]+=)(.+)}'
e61c0 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
e61e0 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[
e6200 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].
e6220 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
e6240 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;.
e6260 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
e6280 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.....
e62a0 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
e62c0 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 63 6c 61 73 73 t\Console\Input;...........class
e62e0 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 69 76 .ArrayInput.extends.Input.{.priv
e6300 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ate.$parameters;........public.f
e6320 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 61 72 61 6d unction.__construct(array.$param
e6340 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 6e 69 74 69 eters,.InputDefinition.$definiti
e6360 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 72 73 20 3d on.=.null).{.$this->parameters.=
e6380 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 73 74 72 75 .$parameters;..parent::__constru
e63a0 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 6c 69 63 20 ct($definition);.}.......public.
e63c0 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 7b 0a 66 6f function.getFirstArgument().{.fo
e63e0 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 24 6b 65 79 reach.($this->parameters.as.$key
e6400 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 27 20 3d 3d .=>.$value).{.if.($key.&&.'-'.==
e6420 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 74 75 72 6e =.$key[0]).{.continue;.}..return
e6440 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 69 63 20 66 .$value;.}.}............public.f
e6460 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 76 61 6c 75 unction.hasParameterOption($valu
e6480 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 75 65 73 3b es).{.$values.=.(array).$values;
e64a0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 ..foreach.($this->parameters.as.
e64c0 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 20 7b 0a 24 $k.=>.$v).{.if.(!is_int($k)).{.$
e64e0 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 24 76 61 6c v.=.$k;.}..if.(in_array($v,.$val
e6500 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 74 75 72 6e ues)).{.return.true;.}.}..return
e6520 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 20 66 75 6e .false;.}.............public.fun
e6540 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 ction.getParameterOption($values
e6560 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 73 20 3d 20 ,.$default.=.false).{.$values.=.
e6580 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 (array).$values;..foreach.($this
e65a0 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 ->parameters.as.$k.=>.$v).{.if.(
e65c0 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 76 2c 20 24 is_int($k)).{.if.(in_array($v,.$
e65e0 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 65 6c 73 65 values)).{.return.true;.}.}.else
e6600 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 0a 72 65 74 if.(in_array($k,.$values)).{.ret
e6620 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 3b 0a 7d 0a urn.$v;.}.}..return.$default;.}.
e6640 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 ......public.function.__toString
e6660 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 61 63 68 20 ().{.$params.=.array();.foreach.
e6680 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 20 3d 3e 20 ($this->parameters.as.$param.=>.
e66a0 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 3d 20 24 70 $val).{.if.($param.&&.'-'.===.$p
e66c0 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 6d 2e 28 27 aram[0]).{.$params[].=.$param.('
e66e0 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 65 54 6f 6b '.!=.$val.?.'='.$this->escapeTok
e6700 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 72 61 6d 73 en($val).:.'');.}.else.{.$params
e6720 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 29 3b 0a 7d [].=.$this->escapeToken($val);.}
e6740 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 61 6d 73 29 .}..return.implode('.',.$params)
e6760 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 ;.}.....protected.function.parse
e6780 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 ().{.foreach.($this->parameters.
e67a0 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 as.$key.=>.$value).{.if.(0.===.s
e67c0 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c trpos($key,.'--')).{.$this->addL
e67e0 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 76 61 6c 75 ongOption(substr($key,.2),.$valu
e6800 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b e);.}.elseif.('-'.===.$key[0]).{
e6820 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b .$this->addShortOption(substr($k
e6840 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ey,.1),.$value);.}.else.{.$this-
e6860 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a >addArgument($key,.$value);.}.}.
e6880 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 }..........private.function.addS
e68a0 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b 0a hortOption($shortcut,.$value).{.
e68c0 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 if.(!$this->definition->hasShort
e68e0 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 cut($shortcut)).{.throw.new.\Inv
e6900 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
e6920 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 he."-%s".option.does.not.exist.'
e6940 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 ,.$shortcut));.}..$this->addLong
e6960 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 Option($this->definition->getOpt
e6980 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 74 4e 61 ionForShortcut($shortcut)->getNa
e69a0 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 me(),.$value);.}...........priva
e69c0 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c te.function.addLongOption($name,
e69e0 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f .$value).{.if.(!$this->definitio
e6a00 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 n->hasOption($name)).{.throw.new
e6a20 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
e6a40 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 tf('The."--%s".option.does.not.e
e6a60 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 xist.',.$name));.}..$option.=.$t
e6a80 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 his->definition->getOption($name
e6aa0 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 );..if.(null.===.$value).{.if.($
e6ac0 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 74 68 72 option->isValueRequired()).{.thr
e6ae0 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
e6b00 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 65 71 75 (sprintf('The."--%s".option.requ
e6b20 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 76 61 6c ires.a.value.',.$name));.}..$val
e6b40 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 ue.=.$option->isValueOptional().
e6b60 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a ?.$option->getDefault().:.true;.
e6b80 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 }..$this->options[$name].=.$valu
e6ba0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 e;.}..........private.function.a
e6bc0 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 ddArgument($name,.$value).{.if.(
e6be0 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 !$this->definition->hasArgument(
e6c00 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
e6c20 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 mentException(sprintf('The."%s".
e6c40 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 argument.does.not.exist.',.$name
e6c60 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d ));.}..$this->arguments[$name].=
e6c80 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .$value;.}.}.<?php...........nam
e6ca0 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
e6cc0 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 \Input;.............abstract.cla
e6ce0 73 73 20 49 6e 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 49 6e 74 65 72 66 61 ss.Input.implements.InputInterfa
e6d00 63 65 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 ce.{....protected.$definition;.p
e6d20 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f rotected.$options.=.array();.pro
e6d40 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f tected.$arguments.=.array();.pro
e6d60 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a tected.$interactive.=.true;.....
e6d80 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 6e ..public.function.__construct(In
e6da0 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c putDefinition.$definition.=.null
e6dc0 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a ).{.if.(null.===.$definition).{.
e6de0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 66 $this->definition.=.new.InputDef
e6e00 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 64 28 inition();.}.else.{.$this->bind(
e6e20 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b $definition);.$this->validate();
e6e40 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 28 .}.}.......public.function.bind(
e6e60 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 InputDefinition.$definition).{.$
e6e80 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 this->arguments.=.array();.$this
e6ea0 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 ->options.=.array();.$this->defi
e6ec0 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 nition.=.$definition;..$this->pa
e6ee0 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 rse();.}.....abstract.protected.
e6f00 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 function.parse();.......public.f
e6f20 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 0a 7b 0a 24 64 65 66 69 6e 69 74 69 6f 6e unction.validate().{.$definition
e6f40 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 24 67 69 76 65 6e 41 72 67 75 .=.$this->definition;.$givenArgu
e6f60 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 24 6d 69 73 73 ments.=.$this->arguments;..$miss
e6f80 69 6e 67 41 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 61 ingArguments.=.array_filter(arra
e6fa0 79 5f 6b 65 79 73 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 y_keys($definition->getArguments
e6fc0 28 29 29 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 72 67 75 6d 65 6e 74 29 20 75 73 65 20 28 24 ()),.function.($argument).use.($
e6fe0 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 67 69 76 65 6e 41 72 67 75 6d 65 6e 74 73 29 20 7b 0a 72 definition,.$givenArguments).{.r
e7000 65 74 75 72 6e 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 61 72 67 75 6d 65 6e eturn.!array_key_exists($argumen
e7020 74 2c 20 24 67 69 76 65 6e 41 72 67 75 6d 65 6e 74 73 29 20 26 26 20 24 64 65 66 69 6e 69 74 69 t,.$givenArguments).&&.$definiti
e7040 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 2d 3e 69 73 52 65 on->getArgument($argument)->isRe
e7060 71 75 69 72 65 64 28 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 69 73 73 69 6e quired();.});..if.(count($missin
e7080 67 41 72 67 75 6d 65 6e 74 73 29 20 3e 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 gArguments).>.0).{.throw.new.\Ru
e70a0 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 74 20 65 6e 6f 75 ntimeException(sprintf('Not.enou
e70c0 67 68 20 61 72 67 75 6d 65 6e 74 73 20 28 6d 69 73 73 69 6e 67 3a 20 22 25 73 22 29 2e 27 2c 20 gh.arguments.(missing:."%s").',.
e70e0 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 73 29 implode(',.',.$missingArguments)
e7100 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 6f 6e 20 69 73 ));.}.}.......public.function.is
e7120 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e Interactive().{.return.$this->in
e7140 74 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 teractive;.}.......public.functi
e7160 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 0a on.setInteractive($interactive).
e7180 7b 0a 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 {.$this->interactive.=.(bool).$i
e71a0 6e 74 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 nteractive;.}.......public.funct
e71c0 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 61 72 72 61 ion.getArguments().{.return.arra
e71e0 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 y_merge($this->definition->getAr
e7200 67 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e gumentDefaults(),.$this->argumen
e7220 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ts);.}...........public.function
e7240 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 .getArgument($name).{.if.(!$this
e7260 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 ->definition->hasArgument($name)
e7280 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
e72a0 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 ception(sprintf('The."%s".argume
e72c0 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a nt.does.not.exist.',.$name));.}.
e72e0 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 .return.isset($this->arguments[$
e7300 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d name]).?.$this->arguments[$name]
e7320 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e .:.$this->definition->getArgumen
e7340 74 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a t($name)->getDefault();.}.......
e7360 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 ...public.function.setArgument($
e7380 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 name,.$value).{.if.(!$this->defi
e73a0 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 nition->hasArgument($name)).{.th
e73c0 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
e73e0 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 n(sprintf('The."%s".argument.doe
e7400 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
e7420 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a ->arguments[$name].=.$value;.}..
e7440 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 75 6d 65 .......public.function.hasArgume
e7460 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 nt($name).{.return.$this->defini
e7480 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a tion->hasArgument($name);.}.....
e74a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b ..public.function.getOptions().{
e74c0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e .return.array_merge($this->defin
e74e0 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 ition->getOptionDefaults(),.$thi
e7500 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->options);.}...........public.
e7520 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 function.getOption($name).{.if.(
e7540 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e !$this->definition->hasOption($n
e7560 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
e7580 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 6f 70 ntException(sprintf('The."%s".op
e75a0 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));.
e75c0 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 }..return.isset($this->options[$
e75e0 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3a name]).?.$this->options[$name].:
e7600 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 6e .$this->definition->getOption($n
e7620 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 0a 70 ame)->getDefault();.}..........p
e7640 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 6e 61 6d 65 2c 20 ublic.function.setOption($name,.
e7660 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e $value).{.if.(!$this->definition
e7680 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ->hasOption($name)).{.throw.new.
e76a0 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
e76c0 66 28 27 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 f('The."%s".option.does.not.exis
e76e0 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b t.',.$name));.}..$this->options[
e7700 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $name].=.$value;.}.........publi
e7720 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 c.function.hasOption($name).{.re
e7740 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f turn.$this->definition->hasOptio
e7760 6e 28 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 n($name);.}.........public.funct
e7780 69 6f 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 ion.escapeToken($token).{.return
e77a0 20 70 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 .preg_match('{^[\w-]+$}',.$token
e77c0 29 20 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 ).?.$token.:.escapeshellarg($tok
e77e0 65 6e 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 en);.}.}.<?php...........namespa
e7800 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 6e 70 ce.Symfony\Component\Console\Inp
e7820 75 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 0a 7b 0a ut;.......class.InputArgument.{.
e7840 63 6f 6e 73 74 20 52 45 51 55 49 52 45 44 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 50 54 49 4f 4e const.REQUIRED.=.1;.const.OPTION
e7860 41 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 53 5f 41 52 52 41 59 20 3d 20 34 3b 0a 0a 70 72 69 AL.=.2;.const.IS_ARRAY.=.4;..pri
e7880 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 vate.$name;.private.$mode;.priva
e78a0 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 70 74 69 6f te.$default;.private.$descriptio
e78c0 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f n;............public.function.__
e78e0 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 construct($name,.$mode.=.null,.$
e7900 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c description.=.'',.$default.=.nul
e7920 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 l).{.if.(null.===.$mode).{.$mode
e7940 20 3d 20 73 65 6c 66 3a 3a 4f 50 54 49 4f 4e 41 4c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 .=.self::OPTIONAL;.}.elseif.(!is
e7960 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 _int($mode).||.$mode.>.7.||.$mod
e7980 65 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d e.<.1).{.throw.new.\InvalidArgum
e79a0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d entException(sprintf('Argument.m
e79c0 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 ode."%s".is.not.valid.',.$mode))
e79e0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d ;.}..$this->name.=.$name;.$this-
e7a00 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f >mode.=.$mode;.$this->descriptio
e7a20 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 n.=.$description;..$this->setDef
e7a40 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 69 63 20 66 ault($default);.}.......public.f
e7a60 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 unction.getName().{.return.$this
e7a80 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 69 6f 6e 20 ->name;.}.......public.function.
e7aa0 69 73 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 isRequired().{.return.self::REQU
e7ac0 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 IRED.===.(self::REQUIRED.&.$this
e7ae0 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ->mode);.}.......public.function
e7b00 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 .isArray().{.return.self::IS_ARR
e7b20 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e AY.===.(self::IS_ARRAY.&.$this->
e7b40 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e mode);.}.........public.function
e7b60 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 .setDefault($default.=.null).{.i
e7b80 66 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 f.(self::REQUIRED.===.$this->mod
e7ba0 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 e.&&.null.!==.$default).{.throw.
e7bc0 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 new.\LogicException('Cannot.set.
e7be0 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 65 78 63 65 70 74 20 66 6f 72 20 49 6e 70 75 74 a.default.value.except.for.Input
e7c00 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 Argument::OPTIONAL.mode.');.}..i
e7c20 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 f.($this->isArray()).{.if.(null.
e7c40 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 ===.$default).{.$default.=.array
e7c60 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 ();.}.elseif.(!is_array($default
e7c80 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 27 )).{.throw.new.\LogicException('
e7ca0 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 A.default.value.for.an.array.arg
e7cc0 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a ument.must.be.an.array.');.}.}..
e7ce0 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;.}....
e7d00 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().
e7d20 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;.}......
e7d40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 .public.function.getDescription(
e7d60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d ).{.return.$this->description;.}
e7d80 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
e7da0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a fony\Component\Console\Input;...
e7dc0 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 .....interface.InputAwareInterfa
e7de0 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 ce.{......public.function.setInp
e7e00 75 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 3b 0a 7d 0a 3c 3f 70 ut(InputInterface.$input);.}.<?p
e7e20 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
e7e40 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 75 73 65 20 53 79 6d omponent\Console\Input;..use.Sym
e7e60 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
e7e80 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f r\TextDescriptor;.use.Symfony\Co
e7ea0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 mponent\Console\Descriptor\XmlDe
e7ec0 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c scriptor;.use.Symfony\Component\
e7ee0 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 0a Console\Output\BufferedOutput;..
e7f00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f ............class.InputDefinitio
e7f20 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 n.{.private.$arguments;.private.
e7f40 24 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 41 6e 41 72 $requiredCount;.private.$hasAnAr
e7f60 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 rayArgument.=.false;.private.$ha
e7f80 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 sOptional;.private.$options;.pri
e7fa0 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 vate.$shortcuts;.......public.fu
e7fc0 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 64 65 66 69 6e 69 nction.__construct(array.$defini
e7fe0 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 69 tion.=.array()).{.$this->setDefi
e8000 6e 69 74 69 6f 6e 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 nition($definition);.}.......pub
e8020 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 61 72 72 61 79 lic.function.setDefinition(array
e8040 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 .$definition).{.$arguments.=.arr
e8060 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 ay();.$options.=.array();.foreac
e8080 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 h.($definition.as.$item).{.if.($
e80a0 69 74 65 6d 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 item.instanceof.InputOption).{.$
e80c0 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 options[].=.$item;.}.else.{.$arg
e80e0 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 uments[].=.$item;.}.}..$this->se
e8100 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 tArguments($arguments);.$this->s
e8120 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 etOptions($options);.}.......pub
e8140 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 24 61 72 67 75 6d lic.function.setArguments($argum
e8160 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 67 75 6d 65 6e ents.=.array()).{.$this->argumen
e8180 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 ts.=.array();.$this->requiredCou
e81a0 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c nt.=.0;.$this->hasOptional.=.fal
e81c0 73 65 3b 0a 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 se;.$this->hasAnArrayArgument.=.
e81e0 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 false;.$this->addArguments($argu
e8200 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ments);.}.......public.function.
e8220 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 addArguments($arguments.=.array(
e8240 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a )).{.if.(null.!==.$arguments).{.
e8260 66 6f 72 65 61 63 68 20 28 24 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 foreach.($arguments.as.$argument
e8280 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 ).{.$this->addArgument($argument
e82a0 29 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 );.}.}.}.........public.function
e82c0 20 61 64 64 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 .addArgument(InputArgument.$argu
e82e0 6d 65 6e 74 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e ment).{.if.(isset($this->argumen
e8300 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 ts[$argument->getName()])).{.thr
e8320 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 ow.new.\LogicException(sprintf('
e8340 41 6e 20 61 72 67 75 6d 65 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 An.argument.with.name."%s".alrea
e8360 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 dy.exists.',.$argument->getName(
e8380 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 )));.}..if.($this->hasAnArrayArg
e83a0 75 6d 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 ument).{.throw.new.\LogicExcepti
e83c0 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 on('Cannot.add.an.argument.after
e83e0 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 .an.array.argument.');.}..if.($a
e8400 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e rgument->isRequired().&&.$this->
e8420 68 61 73 4f 70 74 69 6f 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 hasOptional).{.throw.new.\LogicE
e8440 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 xception('Cannot.add.a.required.
e8460 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 argument.after.an.optional.one.'
e8480 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 );.}..if.($argument->isArray()).
e84a0 7b 0a 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 {.$this->hasAnArrayArgument.=.tr
e84c0 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 ue;.}..if.($argument->isRequired
e84e0 28 29 29 20 7b 0a 2b 2b 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 ()).{.++$this->requiredCount;.}.
e8500 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 else.{.$this->hasOptional.=.true
e8520 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d ;.}..$this->arguments[$argument-
e8540 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a >getName()].=.$argument;.}......
e8560 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 .....public.function.getArgument
e8580 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 72 67 75 6d 65 6e ($name).{.if.(!$this->hasArgumen
e85a0 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 41 72 t($name)).{.throw.new.\InvalidAr
e85c0 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 25 73 gumentException(sprintf('The."%s
e85e0 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 6e 61 ".argument.does.not.exist.',.$na
e8600 6d 65 29 29 3b 0a 7d 0a 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 me));.}..$arguments.=.is_int($na
e8620 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 me).?.array_values($this->argume
e8640 6e 74 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e nts).:.$this->arguments;..return
e8660 20 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .$arguments[$name];.}.........pu
e8680 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 blic.function.hasArgument($name)
e86a0 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 .{.$arguments.=.is_int($name).?.
e86c0 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a array_values($this->arguments).:
e86e0 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 .$this->arguments;..return.isset
e8700 28 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 ($arguments[$name]);.}.......pub
e8720 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
e8740 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
e8760 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(
e8780 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
e87a0 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
e87c0 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
e87e0 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()
e8800 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;.
e8820 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
e8840 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(
e8860 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.
e8880 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->
e88a0 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
e88c0 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;.}......
e88e0 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 70 74 .public.function.setOptions($opt
e8900 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 6e 73 ions.=.array()).{.$this->options
e8920 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 20 61 .=.array();.$this->shortcuts.=.a
e8940 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 69 6f rray();.$this->addOptions($optio
e8960 6e 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 61 64 64 ns);.}.......public.function.add
e8980 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 7b 0a 66 6f Options($options.=.array()).{.fo
e89a0 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 reach.($options.as.$option).{.$t
e89c0 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 0a 0a 0a 0a his->addOption($option);.}.}....
e89e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 49 .....public.function.addOption(I
e8a00 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 nputOption.$option).{.if.(isset(
e8a20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 $this->options[$option->getName(
e8a40 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f )]).&&.!$option->equals($this->o
e8a60 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 ptions[$option->getName()])).{.t
e8a80 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 hrow.new.\LogicException(sprintf
e8aa0 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 ('An.option.named."%s".already.e
e8ac0 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d xists.',.$option->getName()));.}
e8ae0 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 28 29 29 20 7b 0a ..if.($option->getShortcut()).{.
e8b00 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 67 foreach.(explode('|',.$option->g
e8b20 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 69 66 etShortcut()).as.$shortcut).{.if
e8b40 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 73 68 6f 72 74 63 .(isset($this->shortcuts[$shortc
e8b60 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 74 68 69 73 2d 3e ut]).&&.!$option->equals($this->
e8b80 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 73 68 6f 72 74 63 options[$this->shortcuts[$shortc
e8ba0 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 78 63 65 70 74 69 ut]])).{.throw.new.\LogicExcepti
e8bc0 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 73 68 6f 72 74 on(sprintf('An.option.with.short
e8be0 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 73 68 6f 72 cut."%s".already.exists.',.$shor
e8c00 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 6f 6e 73 5b 24 6f tcut));.}.}.}..$this->options[$o
e8c20 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 3b 0a 69 66 20 ption->getName()].=.$option;.if.
e8c40 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 66 6f 72 65 61 ($option->getShortcut()).{.forea
e8c60 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 67 65 74 53 68 6f ch.(explode('|',.$option->getSho
e8c80 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 74 68 69 73 2d 3e rtcut()).as.$shortcut).{.$this->
e8ca0 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 74 69 6f 6e 2d 3e shortcuts[$shortcut].=.$option->
e8cc0 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 0a 70 75 62 6c 69 getName();.}.}.}...........publi
e8ce0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 c.function.getOption($name).{.if
e8d00 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 .(!$this->hasOption($name)).{.th
e8d20 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
e8d40 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 n(sprintf('The."--%s".option.doe
e8d60 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 s.not.exist.',.$name));.}..retur
e8d80 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a n.$this->options[$name];.}......
e8da0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 ...public.function.hasOption($na
e8dc0 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e me).{.return.isset($this->option
e8de0 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 s[$name]);.}.......public.functi
e8e00 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getOptions().{.return.$this->
e8e20 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 options;.}.........public.functi
e8e40 6f 6e 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 on.hasShortcut($name).{.return.i
e8e60 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d sset($this->shortcuts[$name]);.}
e8e80 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 .........public.function.getOpti
e8ea0 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 72 65 74 75 72 onForShortcut($shortcut).{.retur
e8ec0 6e 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 n.$this->getOption($this->shortc
e8ee0 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 utToName($shortcut));.}.......pu
e8f00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 blic.function.getOptionDefaults(
e8f20 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 ).{.$values.=.array();.foreach.(
e8f40 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 76 61 $this->options.as.$option).{.$va
e8f60 6c 75 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 lues[$option->getName()].=.$opti
e8f80 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c on->getDefault();.}..return.$val
e8fa0 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ues;.}...........private.functio
e8fc0 6e 20 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 69 66 n.shortcutToName($shortcut).{.if
e8fe0 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 .(!isset($this->shortcuts[$short
e9000 63 75 74 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d cut])).{.throw.new.\InvalidArgum
e9020 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 entException(sprintf('The."-%s".
e9040 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 option.does.not.exist.',.$shortc
e9060 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 ut));.}..return.$this->shortcuts
e9080 5b 24 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 [$shortcut];.}.........public.fu
e90a0 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 24 73 68 6f 72 74 20 3d 20 66 61 6c 73 nction.getSynopsis($short.=.fals
e90c0 65 29 0a 7b 0a 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 e).{.$elements.=.array();..if.($
e90e0 73 68 6f 72 74 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a short.&&.$this->getOptions()).{.
e9100 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 27 5b 6f 70 74 69 6f 6e 73 5d 27 3b 0a 7d 20 65 6c 73 $elements[].=.'[options]';.}.els
e9120 65 69 66 20 28 21 24 73 68 6f 72 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e eif.(!$short).{.foreach.($this->
e9140 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 76 61 6c 75 getOptions().as.$option).{.$valu
e9160 65 20 3d 20 27 27 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 e.=.'';.if.($option->acceptValue
e9180 28 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 20 25 73 25 73 25 73 ()).{.$value.=.sprintf(.'.%s%s%s
e91a0 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 ',.$option->isValueOptional().?.
e91c0 27 5b 27 20 3a 20 27 27 2c 0a 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 '['.:.'',.strtoupper($option->ge
e91e0 74 4e 61 6d 65 28 29 29 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e tName()),.$option->isValueOption
e9200 61 6c 28 29 20 3f 20 27 5d 27 20 3a 20 27 27 0a 29 3b 0a 7d 0a 0a 24 73 68 6f 72 74 63 75 74 20 al().?.']'.:.''.);.}..$shortcut.
e9220 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 73 70 72 69 6e =.$option->getShortcut().?.sprin
e9240 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 tf('-%s|',.$option->getShortcut(
e9260 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 )).:.'';.$elements[].=.sprintf('
e9280 5b 25 73 2d 2d 25 73 25 73 5d 27 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6f 70 74 69 6f 6e 2d [%s--%s%s]',.$shortcut,.$option-
e92a0 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f >getName(),.$value);.}.}..if.(co
e92c0 75 6e 74 28 24 65 6c 65 6d 65 6e 74 73 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 unt($elements).&&.$this->getArgu
e92e0 6d 65 6e 74 73 28 29 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 27 5b 2d 2d 5d 27 3b ments()).{.$elements[].=.'[--]';
e9300 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 .}..foreach.($this->getArguments
e9320 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 20 3d 20 27 3c ().as.$argument).{.$element.=.'<
e9340 27 2e 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3e 27 3b 0a 69 66 20 28 '.$argument->getName().'>';.if.(
e9360 21 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 24 65 6c 65 !$argument->isRequired()).{.$ele
e9380 6d 65 6e 74 20 3d 20 27 5b 27 2e 24 65 6c 65 6d 65 6e 74 2e 27 5d 27 3b 0a 7d 20 65 6c 73 65 69 ment.=.'['.$element.']';.}.elsei
e93a0 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 65 6c 65 6d f.($argument->isArray()).{.$elem
e93c0 65 6e 74 20 3d 20 24 65 6c 65 6d 65 6e 74 2e 27 20 28 27 2e 24 65 6c 65 6d 65 6e 74 2e 27 29 27 ent.=.$element.'.('.$element.')'
e93e0 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b ;.}..if.($argument->isArray()).{
e9400 0a 24 65 6c 65 6d 65 6e 74 20 2e 3d 20 27 2e 2e 2e 27 3b 0a 7d 0a 0a 24 65 6c 65 6d 65 6e 74 73 .$element..=.'...';.}..$elements
e9420 5b 5d 20 3d 20 24 65 6c 65 6d 65 6e 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 [].=.$element;.}..return.implode
e9440 28 27 20 27 2c 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ('.',.$elements);.}.........publ
e9460 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f ic.function.asText().{.@trigger_
e9480 65 72 72 6f 72 28 27 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 error('The.'.__METHOD__.'.method
e94a0 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 .is.deprecated.since.version.2.3
e94c0 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 .and.will.be.removed.in.3.0.',.E
e94e0 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 _USER_DEPRECATED);..$descriptor.
e9500 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 75 74 70 75 74 20 =.new.TextDescriptor();.$output.
e9520 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 72 65 64 4f 75 74 =.new.BufferedOutput(BufferedOut
e9540 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 65 29 3b 0a 24 64 put::VERBOSITY_NORMAL,.true);.$d
e9560 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 escriptor->describe($output,.$th
e9580 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 74 72 75 65 29 29 is,.array('raw_output'.=>.true))
e95a0 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a ;..return.$output->fetch();.}...
e95c0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 ........public.function.asXml($a
e95e0 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 sDom.=.false).{.@trigger_error('
e9600 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 The.'.__METHOD__.'.method.is.dep
e9620 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 20 61 6e 64 20 77 69 recated.since.version.2.3.and.wi
e9640 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f 55 53 45 52 5f 44 ll.be.removed.in.3.0.',.E_USER_D
e9660 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 EPRECATED);..$descriptor.=.new.X
e9680 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 7b 0a 72 mlDescriptor();..if.($asDom).{.r
e96a0 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e eturn.$descriptor->getInputDefin
e96c0 69 74 69 6f 6e 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 74 itionDocument($this);.}..$output
e96e0 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 69 .=.new.BufferedOutput();.$descri
e9700 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 0a ptor->describe($output,.$this);.
e9720 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 7d 0a 3c 3f .return.$output->fetch();.}.}.<?
e9740 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\
e9760 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 69 Component\Console\Input;.......i
e9780 6e 74 65 72 66 61 63 65 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 nterface.InputInterface.{......p
e97a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 ublic.function.getFirstArgument(
e97c0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 );............public.function.ha
e97e0 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a 0a 0a sParameterOption($values);......
e9800 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 .......public.function.getParame
e9820 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 terOption($values,.$default.=.fa
e9840 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 lse);.......public.function.bind
e9860 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 0a (InputDefinition.$definition);..
e9880 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 .......public.function.validate(
e98a0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 );.......public.function.getArgu
e98c0 6d 65 6e 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ments();.........public.function
e98e0 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .getArgument($name);..........pu
e9900 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c blic.function.setArgument($name,
e9920 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$value);.........public.functio
e9940 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c n.hasArgument($name);.......publ
e9960 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a ic.function.getOptions();.......
e9980 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 6d ..public.function.getOption($nam
e99a0 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 e);..........public.function.set
e99c0 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 Option($name,.$value);.........p
e99e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b ublic.function.hasOption($name);
e9a00 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 .......public.function.isInterac
e9a20 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 20 73 65 tive();.......public.function.se
e9a40 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a 3c 3f tInteractive($interactive);.}.<?
e9a60 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\
e9a80 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 63 Component\Console\Input;.......c
e9aa0 6c 61 73 73 20 49 6e 70 75 74 4f 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4e lass.InputOption.{.const.VALUE_N
e9ac0 4f 4e 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 20 ONE.=.1;.const.VALUE_REQUIRED.=.
e9ae0 32 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 20 34 3b 0a 63 6f 6e 2;.const.VALUE_OPTIONAL.=.4;.con
e9b00 73 74 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 20 38 3b 0a 0a 70 72 69 76 61 74 65 20 st.VALUE_IS_ARRAY.=.8;..private.
e9b20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 3b 0a 70 72 69 76 61 74 $name;.private.$shortcut;.privat
e9b40 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 76 61 e.$mode;.private.$default;.priva
e9b60 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 70 75 62 te.$description;.............pub
e9b80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 lic.function.__construct($name,.
e9ba0 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 $shortcut.=.null,.$mode.=.null,.
e9bc0 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 $description.=.'',.$default.=.nu
e9be0 6c 6c 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2d ll).{.if.(0.===.strpos($name,.'-
e9c00 2d 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 32 29 3b -')).{.$name.=.substr($name,.2);
e9c20 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .}..if.(empty($name)).{.throw.ne
e9c40 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 6e 20 w.\InvalidArgumentException('An.
e9c60 6f 70 74 69 6f 6e 20 6e 61 6d 65 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a option.name.cannot.be.empty.');.
e9c80 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 }..if.(empty($shortcut)).{.$shor
e9ca0 74 63 75 74 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 73 68 tcut.=.null;.}..if.(null.!==.$sh
e9cc0 6f 72 74 63 75 74 29 20 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 73 68 6f 72 74 63 75 74 ortcut).{.if.(is_array($shortcut
e9ce0 29 29 20 7b 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 24 73 )).{.$shortcut.=.implode('|',.$s
e9d00 68 6f 72 74 63 75 74 29 3b 0a 7d 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 70 72 65 67 5f 73 70 hortcut);.}.$shortcuts.=.preg_sp
e9d20 6c 69 74 28 27 7b 28 5c 7c 29 2d 3f 7d 27 2c 20 6c 74 72 69 6d 28 24 73 68 6f 72 74 63 75 74 2c lit('{(\|)-?}',.ltrim($shortcut,
e9d40 20 27 2d 27 29 29 3b 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 .'-'));.$shortcuts.=.array_filte
e9d60 72 28 24 73 68 6f 72 74 63 75 74 73 29 3b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f r($shortcuts);.$shortcut.=.implo
e9d80 64 65 28 27 7c 27 2c 20 24 73 68 6f 72 74 63 75 74 73 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 de('|',.$shortcuts);..if.(empty(
e9da0 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 $shortcut)).{.throw.new.\Invalid
e9dc0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 73 68 6f ArgumentException('An.option.sho
e9de0 72 74 63 75 74 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 rtcut.cannot.be.empty.');.}.}..i
e9e00 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c f.(null.===.$mode).{.$mode.=.sel
e9e20 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 f::VALUE_NONE;.}.elseif.(!is_int
e9e40 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 6d 6f 64 65 20 3c ($mode).||.$mode.>.15.||.$mode.<
e9e60 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 .1).{.throw.new.\InvalidArgument
e9e80 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4f 70 74 69 6f 6e 20 6d 6f 64 65 20 22 Exception(sprintf('Option.mode."
e9ea0 25 73 22 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a %s".is.not.valid.',.$mode));.}..
e9ec0 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 $this->name.=.$name;.$this->shor
e9ee0 74 63 75 74 20 3d 20 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 tcut.=.$shortcut;.$this->mode.=.
e9f00 24 6d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 $mode;.$this->description.=.$des
e9f20 63 72 69 70 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 20 cription;..if.($this->isArray().
e9f40 26 26 20 21 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 72 6f &&.!$this->acceptValue()).{.thro
e9f60 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(
e9f80 27 49 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 6f 'Impossible.to.have.an.option.mo
e9fa0 64 65 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f 70 74 69 6f 6e 20 de.VALUE_IS_ARRAY.if.the.option.
e9fc0 64 6f 65 73 20 6e 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 does.not.accept.a.value.');.}..$
e9fe0 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a this->setDefault($default);.}...
ea000 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 63 75 74 28 ....public.function.getShortcut(
ea020 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 3b 0a 7d 0a 0a 0a ).{.return.$this->shortcut;.}...
ea040 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().{.
ea060 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c return.$this->name;.}.......publ
ea080 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a 7b 0a 72 65 74 75 ic.function.acceptValue().{.retu
ea0a0 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 7c 7c 20 24 rn.$this->isValueRequired().||.$
ea0c0 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a this->isValueOptional();.}......
ea0e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 .public.function.isValueRequired
ea100 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 ().{.return.self::VALUE_REQUIRED
ea120 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 26 20 24 74 68 .===.(self::VALUE_REQUIRED.&.$th
ea140 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->mode);.}.......public.functi
ea160 6f 6e 20 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 on.isValueOptional().{.return.se
ea180 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 lf::VALUE_OPTIONAL.===.(self::VA
ea1a0 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a LUE_OPTIONAL.&.$this->mode);.}..
ea1c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b .....public.function.isArray().{
ea1e0 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 3d 3d .return.self::VALUE_IS_ARRAY.===
ea200 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e .(self::VALUE_IS_ARRAY.&.$this->
ea220 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e mode);.}.........public.function
ea240 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 .setDefault($default.=.null).{.i
ea260 66 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 f.(self::VALUE_NONE.===.(self::V
ea280 41 4c 55 45 5f 4e 4f 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 6e 75 6c 6c ALUE_NONE.&.$this->mode).&&.null
ea2a0 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 .!==.$default).{.throw.new.\Logi
ea2c0 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 cException('Cannot.set.a.default
ea2e0 20 76 61 6c 75 65 20 77 68 65 6e 20 75 73 69 6e 67 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 .value.when.using.InputOption::V
ea300 41 4c 55 45 5f 4e 4f 4e 45 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d ALUE_NONE.mode.');.}..if.($this-
ea320 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 >isArray()).{.if.(null.===.$defa
ea340 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 ult).{.$default.=.array();.}.els
ea360 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f eif.(!is_array($default)).{.thro
ea380 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 w.new.\LogicException('A.default
ea3a0 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 70 74 69 6f 6e 20 6d 75 73 74 20 .value.for.an.array.option.must.
ea3c0 62 65 20 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 be.an.array.');.}.}..$this->defa
ea3e0 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 24 64 65 ult.=.$this->acceptValue().?.$de
ea400 66 61 75 6c 74 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 fault.:.false;.}.......public.fu
ea420 6e 63 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 nction.getDefault().{.return.$th
ea440 69 73 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 is->default;.}.......public.func
ea460 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getDescription().{.return.$
ea480 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 this->description;.}.........pub
ea4a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 lic.function.equals(InputOption.
ea4c0 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 $option).{.return.$option->getNa
ea4e0 6d 65 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 26 26 20 24 6f 70 me().===.$this->getName().&&.$op
ea500 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 tion->getShortcut().===.$this->g
ea520 65 74 53 68 6f 72 74 63 75 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 etShortcut().&&.$option->getDefa
ea540 75 6c 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 0a 26 26 ult().===.$this->getDefault().&&
ea560 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 .$option->isArray().===.$this->i
ea580 73 41 72 72 61 79 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 sArray().&&.$option->isValueRequ
ea5a0 69 72 65 64 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 ired().===.$this->isValueRequire
ea5c0 64 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 d().&&.$option->isValueOptional(
ea5e0 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 3b ).===.$this->isValueOptional().;
ea600 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
ea620 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a ymfony\Component\Console\Input;.
ea640 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 49 6e 70 75 74 20 65 78 74 65 ..........class.StringInput.exte
ea660 6e 64 73 20 41 72 67 76 49 6e 70 75 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 54 52 49 nds.ArgvInput.{.const.REGEX_STRI
ea680 4e 47 20 3d 20 27 28 5b 5e 5c 73 5d 2b 3f 29 28 3f 3a 5c 73 7c 28 3f 3c 21 5c 5c 5c 5c 29 22 7c NG.=.'([^\s]+?)(?:\s|(?<!\\\\)"|
ea6a0 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c 24 29 27 3b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 51 55 4f (?<!\\\\)\'|$)';.const.REGEX_QUO
ea6c0 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 3f 3a 5c TED_STRING.=.'(?:"([^"\\\\]*(?:\
ea6e0 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 22 7c 5c 27 28 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 \\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(
ea700 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a 0a 0a 0a ?:\\\\.[^\'\\\\]*)*)\')';.......
ea720 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($
ea740 69 6e 70 75 74 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 input,.InputDefinition.$definiti
ea760 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a on.=.null).{.if.($definition).{.
ea780 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 @trigger_error('The.$definition.
ea7a0 61 72 67 75 6d 65 6e 74 20 6f 66 20 74 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d argument.of.the.'.__METHOD__.'.m
ea7c0 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 ethod.is.deprecated.and.will.be.
ea7e0 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 53 65 74 20 74 68 69 73 20 70 61 72 61 6d 65 74 removed.in.3.0..Set.this.paramet
ea800 65 72 20 77 69 74 68 20 74 68 65 20 62 69 6e 64 28 29 20 6d 65 74 68 6f 64 20 69 6e 73 74 65 61 er.with.the.bind().method.instea
ea820 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 7d 0a 0a 70 61 72 65 d.',.E_USER_DEPRECATED);.}..pare
ea840 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 6e 75 6c 6c 29 3b 0a nt::__construct(array(),.null);.
ea860 0a 24 74 68 69 73 2d 3e 73 65 74 54 6f 6b 65 6e 73 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 69 7a .$this->setTokens($this->tokeniz
ea880 65 28 24 69 6e 70 75 74 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 69 6e e($input));..if.(null.!==.$defin
ea8a0 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e ition).{.$this->bind($definition
ea8c0 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 63 74 69 6f );.}.}...........private.functio
ea8e0 6e 20 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 n.tokenize($input).{.$tokens.=.a
ea900 72 72 61 79 28 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 69 6e 70 75 74 29 rray();.$length.=.strlen($input)
ea920 3b 0a 24 63 75 72 73 6f 72 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 63 75 72 73 6f 72 20 3c 20 ;.$cursor.=.0;.while.($cursor.<.
ea940 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5c 73 2b 2f $length).{.if.(preg_match('/\s+/
ea960 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f A',.$input,.$match,.null,.$curso
ea980 72 29 29 20 7b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 5b 5e r)).{.}.elseif.(preg_match('/([^
ea9a0 3d 22 5c 27 5c 73 5d 2b 3f 29 28 3d 3f 29 28 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f ="\'\s]+?)(=?)('.self::REGEX_QUO
ea9c0 54 45 44 5f 53 54 52 49 4e 47 2e 27 2b 29 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 TED_STRING.'+)/A',.$input,.$matc
ea9e0 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 20 3d h,.null,.$cursor)).{.$tokens[].=
eaa00 20 24 6d 61 74 63 68 5b 31 5d 2e 24 6d 61 74 63 68 5b 32 5d 2e 73 74 72 69 70 63 73 6c 61 73 68 .$match[1].$match[2].stripcslash
eaa20 65 73 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 22 5c 27 27 2c 20 27 5c 27 22 es(str_replace(array('"\'',.'\'"
eaa40 27 2c 20 27 5c 27 5c 27 27 2c 20 27 22 22 27 29 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 6d 61 ',.'\'\'',.'""'),.'',.substr($ma
eaa60 74 63 68 5b 33 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 33 5d 29 20 2d 20 32 tch[3],.1,.strlen($match[3]).-.2
eaa80 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 )));.}.elseif.(preg_match('/'.se
eaaa0 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 lf::REGEX_QUOTED_STRING.'/A',.$i
eaac0 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a nput,.$match,.null,.$cursor)).{.
eaae0 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 75 62 73 74 72 $tokens[].=.stripcslashes(substr
eab00 28 24 6d 61 74 63 68 5b 30 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 ($match[0],.1,.strlen($match[0])
eab20 20 2d 20 32 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 .-.2));.}.elseif.(preg_match('/'
eab40 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 .self::REGEX_STRING.'/A',.$input
eab60 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b ,.$match,.null,.$cursor)).{.$tok
eab80 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 24 6d 61 74 63 68 5b 31 5d 29 ens[].=.stripcslashes($match[1])
eaba0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ;.}.else.{...throw.new.\InvalidA
eabc0 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 61 62 6c 65 rgumentException(sprintf('Unable
eabe0 20 74 6f 20 70 61 72 73 65 20 69 6e 70 75 74 20 6e 65 61 72 20 22 2e 2e 2e 20 25 73 20 2e 2e 2e .to.parse.input.near."....%s....
eac00 22 27 2c 20 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c 20 24 63 75 72 73 6f 72 2c 20 31 30 29 29 "',.substr($input,.$cursor,.10))
eac20 29 3b 0a 7d 0a 0a 24 63 75 72 73 6f 72 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 );.}..$cursor.+=.strlen($match[0
eac40 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 ]);.}..return.$tokens;.}.}.Copyr
eac60 69 67 68 74 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 ight.(c).2004-2015.Fabien.Potenc
eac80 69 65 72 0a 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 ier..Permission.is.hereby.grante
eaca0 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e d,.free.of.charge,.to.any.person
eacc0 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 .obtaining.a.copy.of.this.softwa
eace0 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 re.and.associated.documentation.
ead00 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a files.(the."Software"),.to.deal.
ead20 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 in.the.Software.without.restrict
ead40 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f ion,.including.without.limitatio
ead60 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 n.the.rights.to.use,.copy,.modif
ead80 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 y,.merge,.publish,.distribute,.s
eada0 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 ublicense,.and/or.sell.copies.of
eadc0 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 72 .the.Software,.and.to.permit.per
eade0 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 sons.to.whom.the.Software.is.fur
eae00 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 nished.to.do.so,.subject.to.the.
eae20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 following.conditions:..The.above
eae40 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 .copyright.notice.and.this.permi
eae60 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 ssion.notice.shall.be.included.i
eae80 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 n.all.copies.or.substantial.port
eaea0 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 ions.of.the.Software...THE.SOFTW
eaec0 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 ARE.IS.PROVIDED."AS.IS",.WITHOUT
eaee0 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f .WARRANTY.OF.ANY.KIND,.EXPRESS.O
eaf00 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d R.IMPLIED,.INCLUDING.BUT.NOT.LIM
eaf20 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 ITED.TO.THE.WARRANTIES.OF.MERCHA
eaf40 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 NTABILITY,.FITNESS.FOR.A.PARTICU
eaf60 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e LAR.PURPOSE.AND.NONINFRINGEMENT.
eaf80 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 4f .IN.NO.EVENT.SHALL.THE.AUTHORS.O
eafa0 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f R.COPYRIGHT.HOLDERS.BE.LIABLE.FO
eafc0 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 R.ANY.CLAIM,.DAMAGES.OR.OTHER.LI
eafe0 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 ABILITY,.WHETHER.IN.AN.ACTION.OF
eb000 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 .CONTRACT,.TORT.OR.OTHERWISE,.AR
eb020 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 ISING.FROM,.OUT.OF.OR.IN.CONNECT
eb040 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 ION.WITH.THE.SOFTWARE.OR.THE.USE
eb060 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 .OR.OTHER.DEALINGS.IN.THE.SOFTWA
eb080 52 45 2e 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 RE..<?php...........namespace.Sy
eb0a0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4c 6f 67 67 65 72 3b 0a mfony\Component\Console\Logger;.
eb0c0 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 41 62 73 74 72 61 63 74 4c 6f 67 67 65 72 3b 0a 75 73 65 .use.Psr\Log\AbstractLogger;.use
eb0e0 20 50 73 72 5c 4c 6f 67 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f .Psr\Log\InvalidArgumentExceptio
eb100 6e 3b 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 4c 6f 67 4c 65 76 65 6c 3b 0a 75 73 65 20 53 79 6d n;.use.Psr\Log\LogLevel;.use.Sym
eb120 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
eb140 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f tputInterface;.use.Symfony\Compo
eb160 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 75 nent\Console\Output\ConsoleOutpu
eb180 74 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 43 6f 6e 73 6f 6c tInterface;.........class.Consol
eb1a0 65 4c 6f 67 67 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 4c 6f 67 67 65 72 0a 7b eLogger.extends.AbstractLogger.{
eb1c0 0a 63 6f 6e 73 74 20 49 4e 46 4f 20 3d 20 27 69 6e 66 6f 27 3b 0a 63 6f 6e 73 74 20 45 52 52 4f .const.INFO.=.'info';.const.ERRO
eb1e0 52 20 3d 20 27 65 72 72 6f 72 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 R.=.'error';.....private.$output
eb200 3b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 ;....private.$verbosityLevelMap.
eb220 3d 20 61 72 72 61 79 28 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 45 4d 45 52 47 45 4e 43 59 20 3d 3e 20 =.array(.LogLevel::EMERGENCY.=>.
eb240 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 4e 4f 52 4d 41 OutputInterface::VERBOSITY_NORMA
eb260 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 41 4c 45 52 54 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 L,.LogLevel::ALERT.=>.OutputInte
eb280 72 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 rface::VERBOSITY_NORMAL,.LogLeve
eb2a0 6c 3a 3a 43 52 49 54 49 43 41 4c 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a l::CRITICAL.=>.OutputInterface::
eb2c0 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 45 52 52 4f VERBOSITY_NORMAL,.LogLevel::ERRO
eb2e0 52 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 R.=>.OutputInterface::VERBOSITY_
eb300 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 57 41 52 4e 49 4e 47 20 3d 3e 20 4f 75 74 NORMAL,.LogLevel::WARNING.=>.Out
eb320 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 2c 0a putInterface::VERBOSITY_NORMAL,.
eb340 4c 6f 67 4c 65 76 65 6c 3a 3a 4e 4f 54 49 43 45 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 LogLevel::NOTICE.=>.OutputInterf
eb360 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 2c 0a 4c 6f 67 4c 65 76 65 6c ace::VERBOSITY_VERBOSE,.LogLevel
eb380 3a 3a 49 4e 46 4f 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 ::INFO.=>.OutputInterface::VERBO
eb3a0 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 44 45 42 SITY_VERY_VERBOSE,.LogLevel::DEB
eb3c0 55 47 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 UG.=>.OutputInterface::VERBOSITY
eb3e0 5f 44 45 42 55 47 2c 0a 29 3b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 4c 65 76 _DEBUG,.);....private.$formatLev
eb400 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 45 4d 45 52 47 45 4e elMap.=.array(.LogLevel::EMERGEN
eb420 43 59 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 41 4c 45 CY.=>.self::ERROR,.LogLevel::ALE
eb440 52 54 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 43 52 49 RT.=>.self::ERROR,.LogLevel::CRI
eb460 54 49 43 41 4c 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a TICAL.=>.self::ERROR,.LogLevel::
eb480 45 52 52 4f 52 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a ERROR.=>.self::ERROR,.LogLevel::
eb4a0 57 41 52 4e 49 4e 47 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a WARNING.=>.self::INFO,.LogLevel:
eb4c0 3a 4e 4f 54 49 43 45 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a :NOTICE.=>.self::INFO,.LogLevel:
eb4e0 3a 49 4e 46 4f 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 44 :INFO.=>.self::INFO,.LogLevel::D
eb500 45 42 55 47 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e 46 4f 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 EBUG.=>.self::INFO,.);.......pub
eb520 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4f 75 74 70 75 74 49 lic.function.__construct(OutputI
eb540 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 61 72 72 61 79 20 24 76 65 72 62 6f 73 69 nterface.$output,.array.$verbosi
eb560 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 6f 72 tyLevelMap.=.array(),.array.$for
eb580 6d 61 74 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e matLevelMap.=.array()).{.$this->
eb5a0 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 output.=.$output;.$this->verbosi
eb5c0 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 24 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 tyLevelMap.=.$verbosityLevelMap.
eb5e0 2b 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 3b 0a 24 74 68 69 +.$this->verbosityLevelMap;.$thi
eb600 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 3d 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c s->formatLevelMap.=.$formatLevel
eb620 4d 61 70 20 2b 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 3b 0a 7d 0a 0a Map.+.$this->formatLevelMap;.}..
eb640 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 67 28 24 6c 65 76 65 6c 2c 20 24 ...public.function.log($level,.$
eb660 6d 65 73 73 61 67 65 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 65 78 74 20 3d 20 61 72 72 61 79 28 message,.array.$context.=.array(
eb680 29 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 )).{.if.(!isset($this->verbosity
eb6a0 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 LevelMap[$level])).{.throw.new.I
eb6c0 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(
eb6e0 27 54 68 65 20 6c 6f 67 20 6c 65 76 65 6c 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 'The.log.level."%s".does.not.exi
eb700 73 74 2e 27 2c 20 24 6c 65 76 65 6c 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e st.',.$level));.}....if.($this->
eb720 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 20 3d 3d 3d 20 73 65 6c 66 3a formatLevelMap[$level].===.self:
eb740 3a 45 52 52 4f 52 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 :ERROR.&&.$this->output.instance
eb760 6f 66 20 43 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 of.ConsoleOutputInterface).{.$ou
eb780 74 70 75 74 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 tput.=.$this->output->getErrorOu
eb7a0 74 70 75 74 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 tput();.}.else.{.$output.=.$this
eb7c0 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 ->output;.}..if.($output->getVer
eb7e0 62 6f 73 69 74 79 28 29 20 3e 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 bosity().>=.$this->verbosityLeve
eb800 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e lMap[$level]).{.$output->writeln
eb820 28 73 70 72 69 6e 74 66 28 27 3c 25 31 24 73 3e 5b 25 32 24 73 5d 20 25 33 24 73 3c 2f 25 31 24 (sprintf('<%1$s>[%2$s].%3$s</%1$
eb840 73 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 s>',.$this->formatLevelMap[$leve
eb860 6c 5d 2c 20 24 6c 65 76 65 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 74 65 72 70 6f 6c 61 74 65 28 24 l],.$level,.$this->interpolate($
eb880 6d 65 73 73 61 67 65 2c 20 24 63 6f 6e 74 65 78 74 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a message,.$context)));.}.}.......
eb8a0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 70 6f 6c 61 74 .....private.function.interpolat
eb8c0 65 28 24 6d 65 73 73 61 67 65 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 65 78 74 29 0a 7b 0a 0a 20 e($message,.array.$context).{...
eb8e0 24 72 65 70 6c 61 63 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f $replace.=.array();.foreach.($co
eb900 6e 74 65 78 74 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 ntext.as.$key.=>.$val).{.if.(!is
eb920 5f 61 72 72 61 79 28 24 76 61 6c 29 20 26 26 20 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c _array($val).&&.(!is_object($val
eb940 29 20 7c 7c 20 6d 65 74 68 6f 64 5f 65 78 69 73 74 73 28 24 76 61 6c 2c 20 27 5f 5f 74 6f 53 74 ).||.method_exists($val,.'__toSt
eb960 72 69 6e 67 27 29 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 5b 73 70 72 69 6e 74 66 28 27 7b 25 73 ring'))).{.$replace[sprintf('{%s
eb980 7d 27 2c 20 24 6b 65 79 29 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e }',.$key)].=.$val;.}.}....return
eb9a0 20 73 74 72 74 72 28 24 6d 65 73 73 61 67 65 2c 20 24 72 65 70 6c 61 63 65 29 3b 0a 7d 0a 7d 0a .strtr($message,.$replace);.}.}.
eb9c0 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
eb9e0 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 0a 0a 0a y\Component\Console\Output;.....
eba00 63 6c 61 73 73 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 class.BufferedOutput.extends.Out
eba20 70 75 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 0a put.{....private.$buffer.=.'';..
eba40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 28 29 0a 7b 0a 24 .....public.function.fetch().{.$
eba60 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 66 66 65 72 3b 0a 24 74 68 69 73 2d 3e content.=.$this->buffer;.$this->
eba80 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d buffer.=.'';..return.$content;.}
ebaa0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 .....protected.function.doWrite(
ebac0 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 66 $message,.$newline).{.$this->buf
ebae0 66 65 72 20 2e 3d 20 24 6d 65 73 73 61 67 65 3b 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 fer..=.$message;..if.($newline).
ebb00 7b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 3c {.$this->buffer..=."\n";.}.}.}.<
ebb20 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
ebb40 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 65 20 \Component\Console\Output;..use.
ebb60 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 Symfony\Component\Console\Format
ebb80 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 0a 0a ter\OutputFormatterInterface;...
ebba0 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 70 75 74 20 ............class.ConsoleOutput.
ebbc0 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 6e 74 73 20 extends.StreamOutput.implements.
ebbe0 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 0a 0a 0a 70 72 69 76 ConsoleOutputInterface.{....priv
ebc00 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ate.$stderr;.........public.func
ebc20 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 tion.__construct($verbosity.=.se
ebc40 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 lf::VERBOSITY_NORMAL,.$decorated
ebc60 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 66 61 63 .=.null,.OutputFormatterInterfac
ebc80 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f e.$formatter.=.null).{.parent::_
ebca0 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 6f 70 65 6e 4f 75 74 70 75 74 53 74 72 65 _construct($this->openOutputStre
ebcc0 61 6d 28 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 am(),.$verbosity,.$decorated,.$f
ebce0 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 61 63 74 75 61 6c 44 65 63 6f 72 61 74 65 64 20 3d 20 24 ormatter);..$actualDecorated.=.$
ebd00 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 this->isDecorated();.$this->stde
ebd20 72 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 24 74 68 69 73 2d 3e 6f 70 65 rr.=.new.StreamOutput($this->ope
ebd40 6e 45 72 72 6f 72 53 74 72 65 61 6d 28 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 nErrorStream(),.$verbosity,.$dec
ebd60 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 0a orated,.$this->getFormatter());.
ebd80 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 74 68 69 .if.(null.===.$decorated).{.$thi
ebda0 73 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 61 63 74 75 61 6c 44 65 63 6f 72 61 74 65 64 s->setDecorated($actualDecorated
ebdc0 20 26 26 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 .&&.$this->stderr->isDecorated()
ebde0 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 73 65 74 44 65 );.}.}.....public.function.setDe
ebe00 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 corated($decorated).{.parent::se
ebe20 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 tDecorated($decorated);.$this->s
ebe40 74 64 65 72 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b tderr->setDecorated($decorated);
ebe60 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 46 6f 72 6d 61 74 .}.....public.function.setFormat
ebe80 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
ebea0 72 6d 61 74 74 65 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 rmatter).{.parent::setFormatter(
ebec0 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 $formatter);.$this->stderr->setF
ebee0 6f 72 6d 61 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 ormatter($formatter);.}.....publ
ebf00 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 ic.function.setVerbosity($level)
ebf20 0a 7b 0a 70 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 .{.parent::setVerbosity($level);
ebf40 0a 24 74 68 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 .$this->stderr->setVerbosity($le
ebf60 76 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 vel);.}.....public.function.getE
ebf80 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 73 74 64 rrorOutput().{.return.$this->std
ebfa0 65 72 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 45 72 err;.}.....public.function.setEr
ebfc0 72 6f 72 4f 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 rorOutput(OutputInterface.$error
ebfe0 29 0a 7b 0a 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 ).{.$this->stderr.=.$error;.}...
ec000 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
ec020 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 3d 3d 3d 20 24 74 tSupport().{.return.false.===.$t
ec040 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 4f 53 34 30 30 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a his->isRunningOS400();.}........
ec060 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 65 72 72 53 75 70 70 protected.function.hasStderrSupp
ec080 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e ort().{.return.false.===.$this->
ec0a0 69 73 52 75 6e 6e 69 6e 67 4f 53 34 30 30 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 isRunningOS400();.}........priva
ec0c0 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 4f 53 34 30 30 28 29 0a 7b 0a 24 te.function.isRunningOS400().{.$
ec0e0 63 68 65 63 6b 73 20 3d 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 checks.=.array(.function_exists(
ec100 27 70 68 70 5f 75 6e 61 6d 65 27 29 20 3f 20 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 20 3a 20 'php_uname').?.php_uname('s').:.
ec120 27 27 2c 0a 67 65 74 65 6e 76 28 27 4f 53 54 59 50 45 27 29 2c 0a 50 48 50 5f 4f 53 2c 0a 29 3b '',.getenv('OSTYPE'),.PHP_OS,.);
ec140 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 73 74 72 28 69 6d 70 6c 6f ..return.false.!==.stristr(implo
ec160 64 65 28 27 3b 27 2c 20 24 63 68 65 63 6b 73 29 2c 20 27 4f 53 34 30 30 27 29 3b 0a 7d 0a 0a 0a de(';',.$checks),.'OS400');.}...
ec180 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 4f 75 74 70 75 74 53 74 72 ..private.function.openOutputStr
ec1a0 65 61 6d 28 29 0a 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 68 eam().{.$outputStream.=.$this->h
ec1c0 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 20 3f 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 asStdoutSupport().?.'php://stdou
ec1e0 74 27 20 3a 20 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 0a 72 65 74 75 72 6e 20 40 66 6f t'.:.'php://output';..return.@fo
ec200 70 65 6e 28 24 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 29 20 3f 3a 20 66 6f 70 65 6e pen($outputStream,.'w').?:.fopen
ec220 28 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 2c 20 27 77 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 ('php://output',.'w');.}.....pri
ec240 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 45 72 72 6f 72 53 74 72 65 61 6d 28 29 0a vate.function.openErrorStream().
ec260 7b 0a 24 65 72 72 6f 72 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 53 74 64 65 72 {.$errorStream.=.$this->hasStder
ec280 72 53 75 70 70 6f 72 74 28 29 20 3f 20 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 20 3a 20 27 70 rSupport().?.'php://stderr'.:.'p
ec2a0 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 0a 72 65 74 75 72 6e 20 66 6f 70 65 6e 28 24 65 72 72 hp://output';..return.fopen($err
ec2c0 6f 72 53 74 72 65 61 6d 2c 20 27 77 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a orStream,.'w');.}.}.<?php.......
ec2e0 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\
ec300 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 Console\Output;........interface
ec320 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 .ConsoleOutputInterface.extends.
ec340 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 OutputInterface.{......public.fu
ec360 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 nction.getErrorOutput();.......p
ec380 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 ublic.function.setErrorOutput(Ou
ec3a0 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a tputInterface.$error);.}.<?php..
ec3c0 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
ec3e0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e nent\Console\Output;..use.Symfon
ec400 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 y\Component\Console\Formatter\Ou
ec420 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f tputFormatter;.use.Symfony\Compo
ec440 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 72 nent\Console\Formatter\OutputFor
ec460 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 63 6c 61 73 73 20 matterInterface;..........class.
ec480 4e 75 6c 6c 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 NullOutput.implements.OutputInte
ec4a0 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 65 74 46 6f rface.{....public.function.setFo
ec4c0 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 rmatter(OutputFormatterInterface
ec4e0 20 24 66 6f 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 .$formatter).{...}.....public.fu
ec500 6e 63 74 69 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 nction.getFormatter().{...return
ec520 20 6e 65 77 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 .new.OutputFormatter();.}.....pu
ec540 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f blic.function.setDecorated($deco
ec560 72 61 74 65 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 rated).{...}.....public.function
ec580 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d .isDecorated().{.return.false;.}
ec5a0 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
ec5c0 79 28 24 6c 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 y($level).{...}.....public.funct
ec5e0 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 73 65 6c 66 ion.getVerbosity().{.return.self
ec600 3a 3a 56 45 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 ::VERBOSITY_QUIET;.}..public.fun
ec620 63 74 69 6f 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 ction.isQuiet().{.return.true;.}
ec640 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a ..public.function.isVerbose().{.
ec660 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e return.false;.}..public.function
ec680 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b .isVeryVerbose().{.return.false;
ec6a0 0a 7d 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 .}..public.function.isDebug().{.
ec6c0 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
ec6e0 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 ion.writeln($messages,.$type.=.s
ec700 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 elf::OUTPUT_NORMAL).{...}.....pu
ec720 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 blic.function.write($messages,.$
ec740 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 3a 4f newline.=.false,.$type.=.self::O
ec760 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a UTPUT_NORMAL).{...}.}.<?php.....
ec780 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
ec7a0 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Output;..use.Symfony\C
ec7c0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 omponent\Console\Formatter\Outpu
ec7e0 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 tFormatterInterface;.use.Symfony
ec800 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
ec820 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 putFormatter;...............abst
ec840 72 61 63 74 20 63 6c 61 73 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 ract.class.Output.implements.Out
ec860 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 putInterface.{.private.$verbosit
ec880 79 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 y;.private.$formatter;.........p
ec8a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 ublic.function.__construct($verb
ec8c0 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 osity.=.self::VERBOSITY_NORMAL,.
ec8e0 24 64 65 63 6f 72 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 $decorated.=.false,.OutputFormat
ec900 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a terInterface.$formatter.=.null).
ec920 7b 0a 24 74 68 69 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 {.$this->verbosity.=.null.===.$v
ec940 65 72 62 6f 73 69 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 erbosity.?.self::VERBOSITY_NORMA
ec960 4c 20 3a 20 24 76 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 L.:.$verbosity;.$this->formatter
ec980 20 3d 20 24 66 6f 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 .=.$formatter.?:.new.OutputForma
ec9a0 74 74 65 72 28 29 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 tter();.$this->formatter->setDec
ec9c0 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
ec9e0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 .function.setFormatter(OutputFor
eca00 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 matterInterface.$formatter).{.$t
eca20 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a his->formatter.=.$formatter;.}..
eca40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 ...public.function.getFormatter(
eca60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a ).{.return.$this->formatter;.}..
eca80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 ...public.function.setDecorated(
ecaa0 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e $decorated).{.$this->formatter->
ecac0 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a setDecorated($decorated);.}.....
ecae0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a public.function.isDecorated().{.
ecb00 72 65 74 75 72 6e 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 return.$this->formatter->isDecor
ecb20 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ated();.}.....public.function.se
ecb40 74 56 65 72 62 6f 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 tVerbosity($level).{.$this->verb
ecb60 6f 73 69 74 79 20 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 osity.=.(int).$level;.}.....publ
ecb80 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 ic.function.getVerbosity().{.ret
ecba0 75 72 6e 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 urn.$this->verbosity;.}..public.
ecbc0 66 75 6e 63 74 69 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 function.isQuiet().{.return.self
ecbe0 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 76 65 72 ::VERBOSITY_QUIET.===.$this->ver
ecc00 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 bosity;.}..public.function.isVer
ecc20 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f bose().{.return.self::VERBOSITY_
ecc40 56 45 52 42 4f 53 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 VERBOSE.<=.$this->verbosity;.}..
ecc60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a public.function.isVeryVerbose().
ecc80 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 59 5f 56 45 {.return.self::VERBOSITY_VERY_VE
ecca0 52 42 4f 53 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 RBOSE.<=.$this->verbosity;.}..pu
eccc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.isDebug().{.return
ecce0 20 73 65 6c 66 3a 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 .self::VERBOSITY_DEBUG.<=.$this-
ecd00 3e 76 65 72 62 6f 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 >verbosity;.}.....public.functio
ecd20 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c n.writeln($messages,.$type.=.sel
ecd40 66 3a 3a 4f 55 54 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 f::OUTPUT_NORMAL).{.$this->write
ecd60 28 24 6d 65 73 73 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 ($messages,.true,.$type);.}.....
ecd80 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,
ecda0 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:
ecdc0 3a 4f 55 54 50 55 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 :OUTPUT_NORMAL).{.if.(self::VERB
ecde0 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
ece00 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 ).{.return;.}..$messages.=.(arra
ece20 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 y).$messages;..foreach.($message
ece40 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 s.as.$message).{.switch.($type).
ece60 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e {.case.OutputInterface::OUTPUT_N
ece80 4f 52 4d 41 4c 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 ORMAL:.$message.=.$this->formatt
ecea0 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 er->format($message);.break;.cas
ecec0 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3a 0a 62 e.OutputInterface::OUTPUT_RAW:.b
ecee0 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 reak;.case.OutputInterface::OUTP
ecf00 55 54 5f 50 4c 41 49 4e 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 UT_PLAIN:.$message.=.strip_tags(
ecf20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 $this->formatter->format($messag
ecf40 65 29 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c e));.break;.default:.throw.new.\
ecf60 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
ecf80 28 27 55 6e 6b 6e 6f 77 6e 20 6f 75 74 70 75 74 20 74 79 70 65 20 67 69 76 65 6e 20 28 25 73 29 ('Unknown.output.type.given.(%s)
ecfa0 27 2c 20 24 74 79 70 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d ',.$type));.}..$this->doWrite($m
ecfc0 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 essage,.$newline);.}.}........ab
ecfe0 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 57 72 69 74 stract.protected.function.doWrit
ed000 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a e($message,.$newline);.}.<?php..
ed020 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
ed040 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e nent\Console\Output;..use.Symfon
ed060 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 y\Component\Console\Formatter\Ou
ed080 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e tputFormatterInterface;.......in
ed0a0 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 20 terface.OutputInterface.{.const.
ed0c0 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 4f VERBOSITY_QUIET.=.0;.const.VERBO
ed0e0 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 59 SITY_NORMAL.=.1;.const.VERBOSITY
ed100 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 45 _VERBOSE.=.2;.const.VERBOSITY_VE
ed120 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 5f RY_VERBOSE.=.3;.const.VERBOSITY_
ed140 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 20 DEBUG.=.4;..const.OUTPUT_NORMAL.
ed160 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 74 =.0;.const.OUTPUT_RAW.=.1;.const
ed180 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 70 75 62 .OUTPUT_PLAIN.=.2;...........pub
ed1a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e lic.function.write($messages,.$n
ed1c0 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 3a 4f 55 ewline.=.false,.$type.=.self::OU
ed1e0 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 TPUT_NORMAL);..........public.fu
ed200 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 nction.writeln($messages,.$type.
ed220 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 =.self::OUTPUT_NORMAL);.......pu
ed240 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 blic.function.setVerbosity($leve
ed260 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 l);.......public.function.getVer
ed280 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 bosity();.......public.function.
ed2a0 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a setDecorated($decorated);.......
ed2c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a public.function.isDecorated();..
ed2e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 .....public.function.setFormatte
ed300 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d r(OutputFormatterInterface.$form
ed320 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 atter);.......public.function.ge
ed340 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tFormatter();.}.<?php...........
ed360 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
ed380 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ole\Output;..use.Symfony\Compone
ed3a0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 nt\Console\Formatter\OutputForma
ed3c0 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 tterInterface;...............cla
ed3e0 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b ss.StreamOutput.extends.Output.{
ed400 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 61 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .private.$stream;............pub
ed420 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 74 72 65 61 6d lic.function.__construct($stream
ed440 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e ,.$verbosity.=.self::VERBOSITY_N
ed460 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 ORMAL,.$decorated.=.null,.Output
ed480 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 FormatterInterface.$formatter.=.
ed4a0 6e 75 6c 6c 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 null).{.if.(!is_resource($stream
ed4c0 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 21 3d 3d 20 67 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 ).||.'stream'.!==.get_resource_t
ed4e0 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ype($stream)).{.throw.new.\Inval
ed500 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 74 72 65 61 6d 4f idArgumentException('The.StreamO
ed520 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 65 64 73 20 61 20 73 74 72 65 61 6d 20 61 73 20 69 74 utput.class.needs.a.stream.as.it
ed540 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 s.first.argument.');.}..$this->s
ed560 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 tream.=.$stream;..if.(null.===.$
ed580 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 64 65 63 6f 72 61 74 65 64 20 3d 20 24 74 68 69 73 2d decorated).{.$decorated.=.$this-
ed5a0 3e 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f >hasColorSupport();.}..parent::_
ed5c0 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 _construct($verbosity,.$decorate
ed5e0 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 d,.$formatter);.}.......public.f
ed600 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 unction.getStream().{.return.$th
ed620 69 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 is->stream;.}.....protected.func
ed640 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 tion.doWrite($message,.$newline)
ed660 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 40 66 77 72 69 74 65 28 24 74 68 69 73 2d 3e .{.if.(false.===.@fwrite($this->
ed680 73 74 72 65 61 6d 2c 20 24 6d 65 73 73 61 67 65 2e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 50 48 50 stream,.$message.($newline.?.PHP
ed6a0 5f 45 4f 4c 20 3a 20 27 27 29 29 29 20 7b 0a 0a 20 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 _EOL.:.''))).{...throw.new.\Runt
ed6c0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 77 72 69 74 65 20 6f 75 imeException('Unable.to.write.ou
ed6e0 74 70 75 74 2e 27 29 3b 0a 7d 0a 0a 66 66 6c 75 73 68 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d tput.');.}..fflush($this->stream
ed700 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 69 );.}............protected.functi
ed720 6f 6e 20 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 0a 7b 0a 69 66 20 28 44 49 52 45 43 on.hasColorSupport().{.if.(DIREC
ed740 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 3d 20 27 5c 5c 27 29 20 7b 0a 72 65 74 75 72 TORY_SEPARATOR.===.'\\').{.retur
ed760 6e 20 66 61 6c 73 65 20 21 3d 3d 20 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 20 7c 7c n.false.!==.getenv('ANSICON').||
ed780 20 27 4f 4e 27 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 43 6f 6e 45 6d 75 41 4e 53 49 27 29 20 7c .'ON'.===.getenv('ConEmuANSI').|
ed7a0 7c 20 27 78 74 65 72 6d 27 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 54 45 52 4d 27 29 3b 0a 7d 0a |.'xterm'.===.getenv('TERM');.}.
ed7c0 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 6f 73 69 78 5f 69 .return.function_exists('posix_i
ed7e0 73 61 74 74 79 27 29 20 26 26 20 40 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 74 68 69 73 2d 3e satty').&&.@posix_isatty($this->
ed800 73 74 72 65 61 6d 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 stream);.}.}.<?php...........nam
ed820 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
ed840 5c 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 6f 69 63 65 51 75 65 \Question;.......class.ChoiceQue
ed860 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 70 72 69 76 61 74 65 stion.extends.Question.{.private
ed880 20 24 63 68 6f 69 63 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 .$choices;.private.$multiselect.
ed8a0 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 6d 70 74 20 3d 20 27 20 3e 20 27 =.false;.private.$prompt.=.'.>.'
ed8c0 3b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 ;.private.$errorMessage.=.'Value
ed8e0 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ."%s".is.invalid';.........publi
ed900 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 75 65 73 74 69 6f 6e c.function.__construct($question
ed920 2c 20 61 72 72 61 79 20 24 63 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c ,.array.$choices,.$default.=.nul
ed940 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 l).{.parent::__construct($questi
ed960 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 68 6f 69 63 65 73 20 3d on,.$default);..$this->choices.=
ed980 20 24 63 68 6f 69 63 65 73 3b 0a 24 74 68 69 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 .$choices;.$this->setValidator($
ed9a0 74 68 69 73 2d 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 24 74 this->getDefaultValidator());.$t
ed9c0 68 69 73 2d 3e 73 65 74 41 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 24 63 68 6f his->setAutocompleterValues($cho
ed9e0 69 63 65 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 67 ices);.}.......public.function.g
eda00 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 68 6f 69 etChoices().{.return.$this->choi
eda20 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 69 6f 6e ces;.}...........public.function
eda40 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 0a 7b 0a .setMultiselect($multiselect).{.
eda60 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 6c 65 63 $this->multiselect.=.$multiselec
eda80 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 3e 67 65 t;.$this->setValidator($this->ge
edaa0 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 20 24 74 tDefaultValidator());..return.$t
edac0 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
edae0 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 70 74 3b Prompt().{.return.$this->prompt;
edb00 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 50 72 .}.........public.function.setPr
edb20 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 20 3d 20 ompt($prompt).{.$this->prompt.=.
edb40 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 0a 0a 0a $prompt;..return.$this;.}.......
edb60 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 65 73 73 ....public.function.setErrorMess
edb80 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 72 72 6f age($errorMessage).{.$this->erro
edba0 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 69 73 2d rMessage.=.$errorMessage;.$this-
edbc0 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 6c 74 56 >setValidator($this->getDefaultV
edbe0 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 0a 0a 0a alidator());..return.$this;.}...
edc00 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 6c 74 56 ....private.function.getDefaultV
edc20 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 2d 3e 63 alidator().{.$choices.=.$this->c
edc40 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 2d 3e 65 hoices;.$errorMessage.=.$this->e
edc60 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 74 68 69 rrorMessage;.$multiselect.=.$thi
edc80 73 2d 3e 6d 75 6c 74 69 73 65 6c 65 63 74 3b 0a 24 69 73 41 73 73 6f 63 20 3d 20 24 74 68 69 73 s->multiselect;.$isAssoc.=.$this
edca0 2d 3e 69 73 41 73 73 6f 63 28 24 63 68 6f 69 63 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e ->isAssoc($choices);..return.fun
edcc0 63 74 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 ction.($selected).use.($choices,
edce0 20 24 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 2c 20 24 69 .$errorMessage,.$multiselect,.$i
edd00 73 41 73 73 6f 63 29 20 7b 0a 0a 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 73 sAssoc).{...$selectedChoices.=.s
edd20 74 72 5f 72 65 70 6c 61 63 65 28 27 20 27 2c 20 27 27 2c 20 24 73 65 6c 65 63 74 65 64 29 3b 0a tr_replace('.',.'',.$selected);.
edd40 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 .if.($multiselect).{...if.(!preg
edd60 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 28 3f 3a 2c 5b 61 2d 7a _match('/^[a-zA-Z0-9_-]+(?:,[a-z
edd80 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 2f 27 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 A-Z0-9_-]+)*$/',.$selectedChoice
edda0 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c s,.$matches)).{.throw.new.\Inval
eddc0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 idArgumentException(sprintf($err
edde0 6f 72 4d 65 73 73 61 67 65 2c 20 24 73 65 6c 65 63 74 65 64 29 29 3b 0a 7d 0a 24 73 65 6c 65 63 orMessage,.$selected));.}.$selec
ede00 74 65 64 43 68 6f 69 63 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2c 27 2c 20 24 73 65 6c 65 63 tedChoices.=.explode(',',.$selec
ede20 74 65 64 43 68 6f 69 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 65 6c 65 63 74 65 64 43 tedChoices);.}.else.{.$selectedC
ede40 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 24 73 65 6c 65 63 74 65 64 29 3b 0a 7d 0a 0a 24 6d hoices.=.array($selected);.}..$m
ede60 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 29 3b 0a 66 6f 72 ultiselectChoices.=.array();.for
ede80 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 20 24 76 61 6c 75 65 each.($selectedChoices.as.$value
edea0 29 20 7b 0a 24 72 65 73 75 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 ).{.$results.=.array();.foreach.
edec0 28 24 63 68 6f 69 63 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 68 6f 69 63 65 29 20 7b 0a ($choices.as.$key.=>.$choice).{.
edee0 69 66 20 28 24 63 68 6f 69 63 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 72 65 73 75 6c if.($choice.===.$value).{.$resul
edf00 74 73 5b 5d 20 3d 20 24 6b 65 79 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 73 ts[].=.$key;.}.}..if.(count($res
edf20 75 6c 74 73 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ults).>.1).{.throw.new.\InvalidA
edf40 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 70 72 rgumentException(sprintf('The.pr
edf60 6f 76 69 64 65 64 20 61 6e 73 77 65 72 20 69 73 20 61 6d 62 69 67 75 6f 75 73 2e 20 56 61 6c 75 ovided.answer.is.ambiguous..Valu
edf80 65 20 73 68 6f 75 6c 64 20 62 65 20 6f 6e 65 20 6f 66 20 25 73 2e 27 2c 20 69 6d 70 6c 6f 64 65 e.should.be.one.of.%s.',.implode
edfa0 28 27 20 6f 72 20 27 2c 20 24 72 65 73 75 6c 74 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 ('.or.',.$results)));.}..$result
edfc0 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 76 61 6c 75 65 2c 20 24 63 68 6f 69 63 65 73 .=.array_search($value,.$choices
edfe0 29 3b 0a 0a 69 66 20 28 21 24 69 73 41 73 73 6f 63 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 );..if.(!$isAssoc).{.if.(false.!
ee000 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 24 63 68 6f 69 63 65 73 ==.$result).{.$result.=.$choices
ee020 5b 24 72 65 73 75 6c 74 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 63 68 6f 69 [$result];.}.elseif.(isset($choi
ee040 63 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 24 63 68 6f 69 63 ces[$value])).{.$result.=.$choic
ee060 65 73 5b 24 76 61 6c 75 65 5d 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 66 61 6c 73 65 20 3d 3d es[$value];.}.}.elseif.(false.==
ee080 3d 20 24 72 65 73 75 6c 74 20 26 26 20 69 73 73 65 74 28 24 63 68 6f 69 63 65 73 5b 24 76 61 6c =.$result.&&.isset($choices[$val
ee0a0 75 65 5d 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 ue])).{.$result.=.$value;.}..if.
ee0c0 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 77 20 (false.===.$result).{.throw.new.
ee0e0 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
ee100 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 0a 24 6d f($errorMessage,.$value));.}..$m
ee120 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 5b 5d 20 3d 20 28 73 74 72 69 6e 67 29 20 24 ultiselectChoices[].=.(string).$
ee140 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 72 result;.}..if.($multiselect).{.r
ee160 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 3b 0a 7d 0a 0a 72 65 eturn.$multiselectChoices;.}..re
ee180 74 75 72 6e 20 63 75 72 72 65 6e 74 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 turn.current($multiselectChoices
ee1a0 29 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
ee1c0 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
ee1e0 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
ee200 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 70 72 69 76 Question.extends.Question.{.priv
ee220 61 74 65 20 24 74 72 75 65 41 6e 73 77 65 72 52 65 67 65 78 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ate.$trueAnswerRegex;.........pu
ee240 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 75 65 73 74 blic.function.__construct($quest
ee260 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 2c 20 24 74 72 75 65 41 6e 73 77 65 ion,.$default.=.true,.$trueAnswe
ee280 72 52 65 67 65 78 20 3d 20 27 2f 5e 79 2f 69 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f rRegex.=.'/^y/i').{.parent::__co
ee2a0 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 28 62 6f 6f 6c 29 20 24 64 65 66 61 75 nstruct($question,.(bool).$defau
ee2c0 6c 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 72 75 65 41 6e 73 77 65 72 52 65 67 65 78 20 3d 20 24 lt);..$this->trueAnswerRegex.=.$
ee2e0 74 72 75 65 41 6e 73 77 65 72 52 65 67 65 78 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4e 6f 72 6d 61 trueAnswerRegex;.$this->setNorma
ee300 6c 69 7a 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 lizer($this->getDefaultNormalize
ee320 72 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 r());.}.......private.function.g
ee340 65 74 44 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 etDefaultNormalizer().{.$default
ee360 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 24 72 65 67 65 78 20 3d .=.$this->getDefault();.$regex.=
ee380 20 24 74 68 69 73 2d 3e 74 72 75 65 41 6e 73 77 65 72 52 65 67 65 78 3b 0a 0a 72 65 74 75 72 6e .$this->trueAnswerRegex;..return
ee3a0 20 66 75 6e 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 .function.($answer).use.($defaul
ee3c0 74 2c 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 69 73 5f 62 6f 6f 6c 28 24 61 6e 73 77 65 72 t,.$regex).{.if.(is_bool($answer
ee3e0 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 3b 0a 7d 0a 0a 24 61 6e 73 77 65 72 49 )).{.return.$answer;.}..$answerI
ee400 73 54 72 75 65 20 3d 20 28 62 6f 6f 6c 29 20 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 sTrue.=.(bool).preg_match($regex
ee420 2c 20 24 61 6e 73 77 65 72 29 3b 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
ee440 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 24 61 6e 73 77 65 72 49 lt).{.return.$answer.&&.$answerI
ee460 73 54 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 61 6e 73 77 65 72 20 7c 7c 20 24 61 6e sTrue;.}..return.!$answer.||.$an
ee480 73 77 65 72 49 73 54 72 75 65 3b 0a 7d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a swerIsTrue;.};.}.}.<?php........
ee4a0 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
ee4c0 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 75 65 onsole\Question;.......class.Que
ee4e0 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 76 61 stion.{.private.$question;.priva
ee500 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 3d 20 te.$attempts;.private.$hidden.=.
ee520 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 20 3d false;.private.$hiddenFallback.=
ee540 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 61 6c .true;.private.$autocompleterVal
ee560 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 74 65 ues;.private.$validator;.private
ee580 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 3b 0a .$default;.private.$normalizer;.
ee5a0 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
ee5c0 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 0a 7b ct($question,.$default.=.null).{
ee5e0 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 24 74 .$this->question.=.$question;.$t
ee600 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 0a 0a his->default.=.$default;.}......
ee620 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 0a 7b .public.function.getQuestion().{
ee640 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 0a 0a .return.$this->question;.}......
ee660 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 7b 0a .public.function.getDefault().{.
ee680 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 0a 70 return.$this->default;.}.......p
ee6a0 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 74 75 ublic.function.isHidden().{.retu
ee6c0 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 70 75 rn.$this->hidden;.}...........pu
ee6e0 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 6e 29 blic.function.setHidden($hidden)
ee700 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 75 65 .{.if.($this->autocompleterValue
ee720 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 28 27 s).{.throw.new.\LogicException('
ee740 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 68 65 A.hidden.question.cannot.use.the
ee760 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 69 64 .autocompleter.');.}..$this->hid
ee780 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 24 74 den.=.(bool).$hidden;..return.$t
ee7a0 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 73 48 his;.}.......public.function.isH
ee7c0 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 2d 3e iddenFallback().{.return.$this->
ee7e0 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 69 63 hiddenFallback;.}.........public
ee800 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 61 6c .function.setHiddenFallback($fal
ee820 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 20 3d lback).{.$this->hiddenFallback.=
ee840 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 69 73 .(bool).$fallback;..return.$this
ee860 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 75 74 ;.}.......public.function.getAut
ee880 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 68 69 ocompleterValues().{.return.$thi
ee8a0 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 0a 0a s->autocompleterValues;.}.......
ee8c0 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 6d 70 .....public.function.setAutocomp
ee8e0 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 69 73 5f 61 72 leterValues($values).{.if.(is_ar
ee900 72 61 79 28 24 76 61 6c 75 65 73 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 41 73 73 6f 63 28 24 ray($values).&&.$this->isAssoc($
ee920 76 61 6c 75 65 73 29 29 20 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 values)).{.$values.=.array_merge
ee940 28 61 72 72 61 79 5f 6b 65 79 73 28 24 76 61 6c 75 65 73 29 2c 20 61 72 72 61 79 5f 76 61 6c 75 (array_keys($values),.array_valu
ee960 65 73 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 es($values));.}..if.(null.!==.$v
ee980 61 6c 75 65 73 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 69 alues.&&.!is_array($values)).{.i
ee9a0 66 20 28 21 24 76 61 6c 75 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 f.(!$values.instanceof.\Traversa
ee9c0 62 6c 65 20 7c 7c 20 24 76 61 6c 75 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 43 6f 75 6e 74 ble.||.$values.instanceof.\Count
ee9e0 61 62 6c 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 able).{.throw.new.\InvalidArgume
eea00 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 75 74 6f 63 6f 6d 70 6c 65 74 65 72 20 76 61 6c 75 65 ntException('Autocompleter.value
eea20 73 20 63 61 6e 20 62 65 20 65 69 74 68 65 72 20 61 6e 20 61 72 72 61 79 2c 20 60 6e 75 6c 6c 60 s.can.be.either.an.array,.`null`
eea40 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 62 6f 74 68 20 .or.an.object.implementing.both.
eea60 60 43 6f 75 6e 74 61 62 6c 65 60 20 61 6e 64 20 60 54 72 61 76 65 72 73 61 62 6c 65 60 20 69 6e `Countable`.and.`Traversable`.in
eea80 74 65 72 66 61 63 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 69 64 terfaces.');.}.}..if.($this->hid
eeaa0 64 65 6e 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 den).{.throw.new.\LogicException
eeac0 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
eeae0 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 61 he.autocompleter.');.}..$this->a
eeb00 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 20 3d 20 24 76 61 6c 75 65 73 3b 0a 0a 72 utocompleterValues.=.$values;..r
eeb20 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.$this;.}.........public.fu
eeb40 6e 63 74 69 6f 6e 20 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 69 64 61 74 6f 72 29 0a nction.setValidator($validator).
eeb60 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 3b {.$this->validator.=.$validator;
eeb80 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 66 ..return.$this;.}.......public.f
eeba0 75 6e 63 74 69 6f 6e 20 67 65 74 56 61 6c 69 64 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.getValidator().{.return.
eebc0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $this->validator;.}.............
eebe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 61 78 41 74 74 65 6d 70 74 73 28 24 public.function.setMaxAttempts($
eec00 61 74 74 65 6d 70 74 73 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 74 74 65 6d 70 attempts).{.if.(null.!==.$attemp
eec20 74 73 20 26 26 20 24 61 74 74 65 6d 70 74 73 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 ts.&&.$attempts.<.1).{.throw.new
eec40 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 4d 61 78 69 .\InvalidArgumentException('Maxi
eec60 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 61 74 74 65 6d 70 74 73 20 6d 75 73 74 20 62 65 20 61 mum.number.of.attempts.must.be.a
eec80 20 70 6f 73 69 74 69 76 65 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 74 .positive.value.');.}..$this->at
eeca0 74 65 6d 70 74 73 20 3d 20 24 61 74 74 65 6d 70 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 tempts.=.$attempts;..return.$thi
eecc0 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
eece0 4d 61 78 41 74 74 65 6d 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 MaxAttempts().{.return.$this->at
eed00 74 65 6d 70 74 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 tempts;.}...........public.funct
eed20 69 6f 6e 20 73 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 0a 7b ion.setNormalizer($normalizer).{
eed40 0a 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 .$this->normalizer.=.$normalizer
eed60 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
eed80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 0a 7b 0a 72 65 74 c.function.getNormalizer().{.ret
eeda0 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 72 3b 0a 7d 0a 0a 70 72 6f 74 65 63 urn.$this->normalizer;.}..protec
eedc0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 6f 63 28 24 61 72 72 61 79 29 0a 7b 0a 72 ted.function.isAssoc($array).{.r
eede0 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 eturn.(bool).count(array_filter(
eee00 61 72 72 61 79 5f 6b 65 79 73 28 24 61 72 72 61 79 29 2c 20 27 69 73 5f 73 74 72 69 6e 67 27 29 array_keys($array),.'is_string')
eee20 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
eee40 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 .Symfony\Component\Console;..use
eee60 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
eee80 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e \StringInput;.use.Symfony\Compon
eeea0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 ent\Console\Output\ConsoleOutput
eeec0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c ;.use.Symfony\Component\Process\
eeee0 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ProcessBuilder;.use.Symfony\Comp
eef00 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 onent\Process\PhpExecutableFinde
eef20 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b 0a 70 72 69 76 61 r;...........class.Shell.{.priva
eef40 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 69 73 74 6f 72 te.$application;.private.$histor
eef60 79 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 y;.private.$output;.private.$has
eef80 52 65 61 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 Readline;.private.$processIsolat
eefa0 69 6f 6e 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ion.=.false;..........public.fun
eefc0 63 74 69 6f 6e 20 5f 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 ction.__construct(Application.$a
eefe0 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 pplication).{.$this->hasReadline
ef000 20 3d 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a .=.function_exists('readline');.
ef020 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f $this->application.=.$applicatio
ef040 6e 3b 0a 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 n;.$this->history.=.getenv('HOME
ef060 27 29 2e 27 2f 2e 68 69 73 74 6f 72 79 5f 27 2e 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 ').'/.history_'.$application->ge
ef080 74 4e 61 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e tName();.$this->output.=.new.Con
ef0a0 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 soleOutput();.}.....public.funct
ef0c0 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e ion.run().{.$this->application->
ef0e0 73 65 74 41 75 74 6f 45 78 69 74 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 setAutoExit(false);.$this->appli
ef100 63 61 74 69 6f 6e 2d 3e 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 74 72 75 65 29 cation->setCatchExceptions(true)
ef120 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 ;..if.($this->hasReadline).{.rea
ef140 64 6c 69 6e 65 5f 72 65 61 64 5f 68 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 dline_read_history($this->histor
ef160 79 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 63 6f 6d 70 6c 65 74 69 6f 6e 5f 66 75 6e 63 74 69 6f 6e y);.readline_completion_function
ef180 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 27 29 29 3b (array($this,.'autocompleter'));
ef1a0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 .}..$this->output->writeln($this
ef1c0 2d 3e 67 65 74 48 65 61 64 65 72 28 29 29 3b 0a 24 70 68 70 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 ->getHeader());.$php.=.null;.if.
ef1e0 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 66 69 6e ($this->processIsolation).{.$fin
ef200 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b der.=.new.PhpExecutableFinder();
ef220 0a 24 70 68 70 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e .$php.=.$finder->find();.$this->
ef240 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 4f 46 0a 3c 69 6e 66 6f 3e 52 75 6e output->writeln(<<<EOF.<info>Run
ef260 6e 69 6e 67 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 73 6f 6c 61 74 69 6f 6e 2c 20 79 6f 75 ning.with.process.isolation,.you
ef280 20 73 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 3a 3c 2f 69 6e 66 6f 3e 0a 20 20 .should.consider.this:</info>...
ef2a0 2a 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 20 61 73 20 73 65 *.each.command.is.executed.as.se
ef2c0 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 64 6f 6e parate.process,...*.commands.don
ef2e0 27 74 20 73 75 70 70 6f 72 74 20 69 6e 74 65 72 61 63 74 69 76 69 74 79 2c 20 61 6c 6c 20 70 61 't.support.interactivity,.all.pa
ef300 72 61 6d 73 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 65 78 70 6c 69 63 69 74 6c 79 2c 0a rams.must.be.passed.explicitly,.
ef320 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 6f 75 74 70 75 74 20 69 73 20 6e 6f 74 20 63 6f 6c 6f 72 ..*.commands.output.is.not.color
ef340 69 7a 65 64 2e 0a 0a 45 4f 46 0a 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a ized...EOF.);.}..while.(true).{.
ef360 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 6c 69 6e 65 28 29 3b 0a 0a 69 $command.=.$this->readline();..i
ef380 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e f.(false.===.$command).{.$this->
ef3a0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 22 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d output->writeln("\n");..break;.}
ef3c0 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 ..if.($this->hasReadline).{.read
ef3e0 6c 69 6e 65 5f 61 64 64 5f 68 69 73 74 6f 72 79 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 72 65 61 64 line_add_history($command);.read
ef400 6c 69 6e 65 5f 77 72 69 74 65 5f 68 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 line_write_history($this->histor
ef420 79 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 y);.}..if.($this->processIsolati
ef440 6f 6e 29 20 7b 0a 24 70 62 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 28 29 on).{.$pb.=.new.ProcessBuilder()
ef460 3b 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 70 62 0a 2d 3e 61 64 64 28 24 70 68 70 29 0a 2d 3e ;..$process.=.$pb.->add($php).->
ef480 61 64 64 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 0a 2d 3e 61 64 64 28 24 add($_SERVER['argv'][0]).->add($
ef4a0 63 6f 6d 6d 61 6e 64 29 0a 2d 3e 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 command).->inheritEnvironmentVar
ef4c0 69 61 62 6c 65 73 28 74 72 75 65 29 0a 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 0a 3b 0a 0a 24 iables(true).->getProcess().;..$
ef4e0 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 24 70 72 6f 63 65 73 73 output.=.$this->output;.$process
ef500 2d 3e 72 75 6e 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 ->run(function.($type,.$data).us
ef520 65 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 e.($output).{.$output->writeln($
ef540 64 61 74 61 29 3b 0a 7d 29 3b 0a 0a 24 72 65 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 data);.});..$ret.=.$process->get
ef560 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 24 74 68 69 ExitCode();.}.else.{.$ret.=.$thi
ef580 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 6e 65 77 20 53 74 72 69 6e 67 49 6e s->application->run(new.StringIn
ef5a0 70 75 74 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d put($command),.$this->output);.}
ef5c0 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 72 65 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 ..if.(0.!==.$ret).{.$this->outpu
ef5e0 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 63 t->writeln(sprintf('<error>The.c
ef600 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 ommand.terminated.with.an.error.
ef620 73 74 61 74 75 73 20 28 25 73 29 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 72 65 74 29 29 3b 0a 7d 0a status.(%s)</error>',.$ret));.}.
ef640 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 67 65 74 }.}.......protected.function.get
ef660 48 65 61 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 0a 57 65 6c 63 6f 6d Header().{.return.<<<EOF..Welcom
ef680 65 20 74 6f 20 74 68 65 20 3c 69 6e 66 6f 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 e.to.the.<info>{$this->applicati
ef6a0 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 7d 3c 2f 69 6e 66 6f 3e 20 73 68 65 6c 6c 20 28 3c 63 6f on->getName()}</info>.shell.(<co
ef6c0 6d 6d 65 6e 74 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 mment>{$this->application->getVe
ef6e0 72 73 69 6f 6e 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 2e 0a 0a 41 74 20 74 68 65 20 70 72 6f rsion()}</comment>)...At.the.pro
ef700 6d 70 74 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 68 65 6c 70 3c 2f 63 6f 6d 6d 65 6e 74 mpt,.type.<comment>help</comment
ef720 3e 20 66 6f 72 20 73 6f 6d 65 20 68 65 6c 70 2c 0a 6f 72 20 3c 63 6f 6d 6d 65 6e 74 3e 6c 69 73 >.for.some.help,.or.<comment>lis
ef740 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 74 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 t</comment>.to.get.a.list.of.ava
ef760 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 54 6f 20 65 78 69 74 20 74 68 65 20 73 68 ilable.commands...To.exit.the.sh
ef780 65 6c 6c 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 5e 44 3c 2f 63 6f 6d 6d 65 6e 74 3e 2e ell,.type.<comment>^D</comment>.
ef7a0 0a 0a 45 4f 46 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 ..EOF;.}.......protected.functio
ef7c0 6e 20 67 65 74 50 72 6f 6d 70 74 28 29 0a 7b 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getPrompt().{...return.$this->
ef7e0 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 66 6f 72 6d 61 74 28 24 output->getFormatter()->format($
ef800 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 2e 27 20 3e this->application->getName().'.>
ef820 20 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 75 .');.}..protected.function.getOu
ef840 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d tput().{.return.$this->output;.}
ef860 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 70 70 6c 69 63 61 74 ..protected.function.getApplicat
ef880 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 6f ion().{.return.$this->applicatio
ef8a0 6e 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 61 75 n;.}.........private.function.au
ef8c0 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 74 65 78 74 29 0a 7b 0a 24 69 6e 66 6f 20 3d 20 72 65 61 tocompleter($text).{.$info.=.rea
ef8e0 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b 0a 24 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 69 6e dline_info();.$text.=.substr($in
ef900 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 65 72 27 5d 2c 20 30 2c 20 24 69 6e 66 6f 5b 27 65 6e 64 fo['line_buffer'],.0,.$info['end
ef920 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 5b 27 70 6f 69 6e 74 27 5d 20 21 3d 3d 20 24 69 6e ']);..if.($info['point'].!==.$in
ef940 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 fo['end']).{.return.true;.}....i
ef960 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 20 f.(false.===.strpos($text,.'.').
ef980 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 ||.!$text).{.return.array_keys($
ef9a0 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c 6c 28 29 29 3b 0a 7d 0a 0a 0a 20 this->application->all());.}....
ef9c0 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 try.{.$command.=.$this->applicat
ef9e0 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 73 74 72 28 24 74 65 78 74 2c 20 30 2c 20 73 74 72 70 6f ion->find(substr($text,.0,.strpo
efa00 73 28 24 74 65 78 74 2c 20 27 20 27 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 s($text,.'.')));.}.catch.(\Excep
efa20 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 73 74 tion.$e).{.return.true;.}..$list
efa40 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f .=.array('--help');.foreach.($co
efa60 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f mmand->getDefinition()->getOptio
efa80 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6c 69 73 74 5b 5d 20 3d 20 27 2d 2d ns().as.$option).{.$list[].=.'--
efaa0 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 '.$option->getName();.}..return.
efac0 24 6c 69 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 $list;.}.......private.function.
efae0 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c readline().{.if.($this->hasReadl
efb00 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 72 65 61 64 6c 69 6e 65 28 24 74 68 69 73 2d 3e 67 ine).{.$line.=.readline($this->g
efb20 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 etPrompt());.}.else.{.$this->out
efb40 70 75 74 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a put->write($this->getPrompt());.
efb60 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 53 54 44 49 4e 2c 20 31 30 32 34 29 3b 0a 24 6c 69 6e $line.=.fgets(STDIN,.1024);.$lin
efb80 65 20 3d 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6c 69 6e 65 20 7c 7c 20 27 27 20 3d 3d 3d 20 24 e.=.(false.===.$line.||.''.===.$
efba0 6c 69 6e 65 29 20 3f 20 66 61 6c 73 65 20 3a 20 72 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 7d 0a line).?.false.:.rtrim($line);.}.
efbc0 0a 72 65 74 75 72 6e 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .return.$line;.}..public.functio
efbe0 6e 20 67 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e n.getProcessIsolation().{.return
efc00 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 .$this->processIsolation;.}..pub
efc20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e lic.function.setProcessIsolation
efc40 28 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f ($processIsolation).{.$this->pro
efc60 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 28 62 6f 6f 6c 29 20 24 70 72 6f 63 65 73 73 49 cessIsolation.=.(bool).$processI
efc80 73 6f 6c 61 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f solation;..if.($this->processIso
efca0 6c 61 74 69 6f 6e 20 26 26 20 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 53 79 6d 66 6f 6e 79 lation.&&.!class_exists('Symfony
efcc0 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 73 73 5c 5c 50 72 6f 63 65 73 73 27 29 29 \\Component\\Process\\Process'))
efce0 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('
efd00 55 6e 61 62 6c 65 20 74 6f 20 69 73 6f 6c 61 74 65 20 70 72 6f 63 65 73 73 65 73 20 61 73 20 74 Unable.to.isolate.processes.as.t
efd20 68 65 20 53 79 6d 66 6f 6e 79 20 50 72 6f 63 65 73 73 20 43 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 he.Symfony.Process.Component.is.
efd40 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 2e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a not.installed.');.}.}.}.<?php...
efd60 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
efd80 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 53 74 79 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ent\Console\Style;..use.Symfony\
efda0 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
efdc0 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e utFormatterInterface;.use.Symfon
efde0 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 50 72 6f 67 72 y\Component\Console\Helper\Progr
efe00 65 73 73 42 61 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 essBar;.use.Symfony\Component\Co
efe20 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a nsole\Output\OutputInterface;...
efe40 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4f 75 74 70 75 74 53 74 79 6c 65 20 69 ....abstract.class.OutputStyle.i
efe60 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2c 20 53 74 79 6c 65 mplements.OutputInterface,.Style
efe80 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a Interface.{.private.$output;....
efea0 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 4f 75 74 .public.function.__construct(Out
efec0 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 74 68 69 73 2d 3e 6f putInterface.$output).{.$this->o
efee0 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 utput.=.$output;.}.....public.fu
eff00 6e 63 74 69 6f 6e 20 6e 65 77 4c 69 6e 65 28 24 63 6f 75 6e 74 20 3d 20 31 29 0a 7b 0a 24 74 68 nction.newLine($count.=.1).{.$th
eff20 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 50 48 50 is->output->write(str_repeat(PHP
eff40 5f 45 4f 4c 2c 20 24 63 6f 75 6e 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 _EOL,.$count));.}.......public.f
eff60 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 72 6f 67 72 65 73 73 42 61 72 28 24 6d 61 78 20 3d unction.createProgressBar($max.=
eff80 20 30 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 67 72 65 73 73 42 61 72 28 24 74 68 .0).{.return.new.ProgressBar($th
effa0 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 6d 61 78 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 is->output,.$max);.}.....public.
effc0 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 69 function.write($messages,.$newli
effe0 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 54 ne.=.false,.$type.=.self::OUTPUT
f0000 5f 4e 4f 52 4d 41 4c 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 _NORMAL).{.$this->output->write(
f0020 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a $messages,.$newline,.$type);.}..
f0040 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 ...public.function.writeln($mess
f0060 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 ages,.$type.=.self::OUTPUT_NORMA
f0080 4c 29 0a 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 24 6d 65 73 L).{.$this->output->writeln($mes
f00a0 73 61 67 65 73 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 sages,.$type);.}.....public.func
f00c0 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 24 74 68 69 tion.setVerbosity($level).{.$thi
f00e0 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 6c 65 76 65 6c 29 3b s->output->setVerbosity($level);
f0100 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 56 65 72 62 6f 73 .}.....public.function.getVerbos
f0120 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 ity().{.return.$this->output->ge
f0140 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tVerbosity();.}.....public.funct
f0160 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 ion.setDecorated($decorated).{.$
f0180 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f this->output->setDecorated($deco
f01a0 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 rated);.}.....public.function.is
f01c0 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 Decorated().{.return.$this->outp
f01e0 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ut->isDecorated();.}.....public.
f0200 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d function.setFormatter(OutputForm
f0220 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 atterInterface.$formatter).{.$th
f0240 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 74 is->output->setFormatter($format
f0260 74 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 46 ter);.}.....public.function.getF
f0280 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 ormatter().{.return.$this->outpu
f02a0 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a t->getFormatter();.}.}.<?php....
f02c0 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
f02e0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 nt\Console\Style;.......interfac
f0300 65 20 53 74 79 6c 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 e.StyleInterface.{......public.f
f0320 75 6e 63 74 69 6f 6e 20 74 69 74 6c 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 unction.title($message);.......p
f0340 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 63 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 ublic.function.section($message)
f0360 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 69 6e 67 28 ;.......public.function.listing(
f0380 61 72 72 61 79 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 array.$elements);.......public.f
f03a0 75 6e 63 74 69 6f 6e 20 74 65 78 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 unction.text($message);.......pu
f03c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 63 63 65 73 73 28 24 6d 65 73 73 61 67 65 29 3b blic.function.success($message);
f03e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 28 24 6d 65 .......public.function.error($me
f0400 73 73 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 77 61 ssage);.......public.function.wa
f0420 72 6e 69 6e 67 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rning($message);.......public.fu
f0440 6e 63 74 69 6f 6e 20 6e 6f 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 nction.note($message);.......pub
f0460 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 61 75 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a lic.function.caution($message);.
f0480 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 61 62 6c 65 28 61 72 72 .......public.function.table(arr
f04a0 61 79 20 24 68 65 61 64 65 72 73 2c 20 61 72 72 61 79 20 24 72 6f 77 73 29 3b 0a 0a 0a 0a 0a 0a ay.$headers,.array.$rows);......
f04c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 .....public.function.ask($questi
f04e0 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 76 61 6c 69 64 61 74 6f 72 20 on,.$default.=.null,.$validator.
f0500 3d 20 6e 75 6c 6c 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 =.null);..........public.functio
f0520 6e 20 61 73 6b 48 69 64 64 65 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f n.askHidden($question,.$validato
f0540 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 r.=.null);..........public.funct
f0560 69 6f 6e 20 63 6f 6e 66 69 72 6d 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 ion.confirm($question,.$default.
f0580 3d 20 74 72 75 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 =.true);...........public.functi
f05a0 6f 6e 20 63 68 6f 69 63 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 63 68 6f 69 on.choice($question,.array.$choi
f05c0 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 ces,.$default.=.null);.......pub
f05e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 77 4c 69 6e 65 28 24 63 6f 75 6e 74 20 3d 20 31 29 lic.function.newLine($count.=.1)
f0600 3b 0a 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 ;.......public.function.progress
f0620 53 74 61 72 74 28 24 6d 61 78 20 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 Start($max.=.0);.......public.fu
f0640 6e 63 74 69 6f 6e 20 70 72 6f 67 72 65 73 73 41 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 nction.progressAdvance($step.=.1
f0660 29 3b 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 46 );.....public.function.progressF
f0680 69 6e 69 73 68 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 inish();.}.<?php...........names
f06a0 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 53 pace.Symfony\Component\Console\S
f06c0 74 79 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 tyle;..use.Symfony\Component\Con
f06e0 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f sole\Application;.use.Symfony\Co
f0700 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 mponent\Console\Formatter\Output
f0720 46 6f 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 Formatter;.use.Symfony\Component
f0740 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 \Console\Helper\Helper;.use.Symf
f0760 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 50 72 6f ony\Component\Console\Helper\Pro
f0780 67 72 65 73 73 42 61 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 gressBar;.use.Symfony\Component\
f07a0 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 53 79 6d 66 6f 6e 79 51 75 65 73 74 69 6f 6e 48 65 Console\Helper\SymfonyQuestionHe
f07c0 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 6e 73 lper;.use.Symfony\Component\Cons
f07e0 6f 6c 65 5c 48 65 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 ole\Helper\Table;.use.Symfony\Co
f0800 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
f0820 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
f0840 6f 6c 65 5c 4f 75 74 70 75 74 5c 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 ole\Output\BufferedOutput;.use.S
f0860 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
f0880 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d OutputInterface;.use.Symfony\Com
f08a0 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 68 6f 69 63 65 51 75 ponent\Console\Question\ChoiceQu
f08c0 65 73 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 estion;.use.Symfony\Component\Co
f08e0 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 51 75 65 73 74 nsole\Question\ConfirmationQuest
f0900 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
f0920 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 le\Question\Question;.......clas
f0940 73 20 53 79 6d 66 6f 6e 79 53 74 79 6c 65 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 53 74 79 s.SymfonyStyle.extends.OutputSty
f0960 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4d 41 58 5f 4c 49 4e 45 5f 4c 45 4e 47 54 48 20 3d 20 31 32 30 le.{.const.MAX_LINE_LENGTH.=.120
f0980 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 71 75 65 73 ;..private.$input;.private.$ques
f09a0 74 69 6f 6e 48 65 6c 70 65 72 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 42 61 72 tionHelper;.private.$progressBar
f09c0 3b 0a 70 72 69 76 61 74 65 20 24 6c 69 6e 65 4c 65 6e 67 74 68 3b 0a 70 72 69 76 61 74 65 20 24 ;.private.$lineLength;.private.$
f09e0 62 75 66 66 65 72 65 64 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 bufferedOutput;......public.func
f0a00 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 tion.__construct(InputInterface.
f0a20 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)
f0a40 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d .{.$this->input.=.$input;.$this-
f0a60 3e 62 75 66 66 65 72 65 64 4f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 >bufferedOutput.=.new.BufferedOu
f0a80 74 70 75 74 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 2c 20 66 61 tput($output->getVerbosity(),.fa
f0aa0 6c 73 65 2c 20 63 6c 6f 6e 65 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 lse,.clone.$output->getFormatter
f0ac0 28 29 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 6c 69 6e 65 4c 65 6e 67 74 68 20 3d 20 6d 69 6e 28 24 ());...$this->lineLength.=.min($
f0ae0 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 2d 20 28 69 6e 74 29 this->getTerminalWidth().-.(int)
f0b00 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 3d 20 27 5c 5c 27 29 2c .(DIRECTORY_SEPARATOR.===.'\\'),
f0b20 20 73 65 6c 66 3a 3a 4d 41 58 5f 4c 49 4e 45 5f 4c 45 4e 47 54 48 29 3b 0a 0a 70 61 72 65 6e 74 .self::MAX_LINE_LENGTH);..parent
f0b40 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ::__construct($output);.}.......
f0b60 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 6c 6f 63 6b 28 24 6d 65 73 73 61 ....public.function.block($messa
f0b80 67 65 73 2c 20 24 74 79 70 65 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 79 6c 65 20 3d 20 6e 75 6c 6c ges,.$type.=.null,.$style.=.null
f0ba0 2c 20 24 70 72 65 66 69 78 20 3d 20 27 20 27 2c 20 24 70 61 64 64 69 6e 67 20 3d 20 66 61 6c 73 ,.$prefix.=.'.',.$padding.=.fals
f0bc0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 50 72 65 70 65 6e 64 42 6c 6f 63 6b 28 29 3b 0a e).{.$this->autoPrependBlock();.
f0be0 24 6d 65 73 73 61 67 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 6d 65 73 73 61 67 65 73 29 20 $messages.=.is_array($messages).
f0c00 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 6d 65 73 73 61 67 65 73 29 20 3a 20 61 72 72 61 ?.array_values($messages).:.arra
f0c20 79 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a y($messages);.$lines.=.array();.
f0c40 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 6d 65 73 73 61 67 ...if.(null.!==.$type).{.$messag
f0c60 65 73 5b 30 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 20 25 73 27 2c 20 24 74 79 70 65 es[0].=.sprintf('[%s].%s',.$type
f0c80 2c 20 24 6d 65 73 73 61 67 65 73 5b 30 5d 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 ,.$messages[0]);.}....foreach.($
f0ca0 6d 65 73 73 61 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 6d 65 73 73 61 67 65 29 20 7b 0a messages.as.$key.=>.$message).{.
f0cc0 24 6d 65 73 73 61 67 65 20 3d 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3a 3a 65 73 63 61 $message.=.OutputFormatter::esca
f0ce0 70 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 pe($message);.$lines.=.array_mer
f0d00 67 65 28 24 6c 69 6e 65 73 2c 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 77 6f 72 64 ge($lines,.explode(PHP_EOL,.word
f0d20 77 72 61 70 28 24 6d 65 73 73 61 67 65 2c 20 24 74 68 69 73 2d 3e 6c 69 6e 65 4c 65 6e 67 74 68 wrap($message,.$this->lineLength
f0d40 20 2d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 2c 20 50 48 50 5f .-.Helper::strlen($prefix),.PHP_
f0d60 45 4f 4c 2c 20 74 72 75 65 29 29 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 65 73 73 61 67 EOL,.true)));..if.(count($messag
f0d80 65 73 29 20 3e 20 31 20 26 26 20 24 6b 65 79 20 3c 20 63 6f 75 6e 74 28 24 6d 65 73 73 61 67 65 es).>.1.&&.$key.<.count($message
f0da0 73 29 20 2d 20 31 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 7d 0a 0a 69 66 s).-.1).{.$lines[].=.'';.}.}..if
f0dc0 20 28 24 70 61 64 64 69 6e 67 20 26 26 20 24 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 .($padding.&&.$this->isDecorated
f0de0 28 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 6c 69 6e 65 73 2c 20 27 27 29 3b ()).{.array_unshift($lines,.'');
f0e00 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e .$lines[].=.'';.}..foreach.($lin
f0e20 65 73 20 61 73 20 26 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 73 70 72 69 6e 74 66 28 es.as.&$line).{.$line.=.sprintf(
f0e40 27 25 73 25 73 27 2c 20 24 70 72 65 66 69 78 2c 20 24 6c 69 6e 65 29 3b 0a 24 6c 69 6e 65 20 2e '%s%s',.$prefix,.$line);.$line..
f0e60 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 74 68 69 73 2d 3e 6c 69 6e 65 4c 65 6e =.str_repeat('.',.$this->lineLen
f0e80 67 74 68 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 gth.-.Helper::strlenWithoutDecor
f0ea0 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 6c 69 ation($this->getFormatter(),.$li
f0ec0 6e 65 29 29 3b 0a 0a 69 66 20 28 24 73 74 79 6c 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 73 70 72 ne));..if.($style).{.$line.=.spr
f0ee0 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 3e 27 2c 20 24 73 74 79 6c 65 2c 20 24 6c 69 6e 65 29 intf('<%s>%s</>',.$style,.$line)
f0f00 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 6c 6e 28 24 6c 69 6e 65 73 29 3b 0a 24 ;.}.}..$this->writeln($lines);.$
f0f20 74 68 69 73 2d 3e 6e 65 77 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->newLine();.}.....public.fu
f0f40 6e 63 74 69 6f 6e 20 74 69 74 6c 65 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e nction.title($message).{.$this->
f0f60 61 75 74 6f 50 72 65 70 65 6e 64 42 6c 6f 63 6b 28 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 autoPrependBlock();.$this->write
f0f80 6c 6e 28 61 72 72 61 79 28 0a 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f ln(array(.sprintf('<comment>%s</
f0fa0 3e 27 2c 20 24 6d 65 73 73 61 67 65 29 2c 0a 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 >',.$message),.sprintf('<comment
f0fc0 3e 25 73 3c 2f 3e 27 2c 20 73 74 72 5f 72 65 70 65 61 74 28 27 3d 27 2c 20 73 74 72 6c 65 6e 28 >%s</>',.str_repeat('=',.strlen(
f0fe0 24 6d 65 73 73 61 67 65 29 29 29 2c 0a 29 29 3b 0a 24 74 68 69 73 2d 3e 6e 65 77 4c 69 6e 65 28 $message))),.));.$this->newLine(
f1000 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 63 74 69 6f 6e );.}.....public.function.section
f1020 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 50 72 65 70 65 6e 64 42 ($message).{.$this->autoPrependB
f1040 6c 6f 63 6b 28 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 73 70 lock();.$this->writeln(array(.sp
f1060 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 3e 27 2c 20 24 6d 65 73 73 61 67 65 rintf('<comment>%s</>',.$message
f1080 29 2c 0a 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 3e 27 2c 20 73 74 72 ),.sprintf('<comment>%s</>',.str
f10a0 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 29 29 2c _repeat('-',.strlen($message))),
f10c0 0a 29 29 3b 0a 24 74 68 69 73 2d 3e 6e 65 77 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 .));.$this->newLine();.}.....pub
f10e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 69 6e 67 28 61 72 72 61 79 20 24 65 6c 65 6d lic.function.listing(array.$elem
f1100 65 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 50 72 65 70 65 6e 64 54 65 78 74 28 29 ents).{.$this->autoPrependText()
f1120 3b 0a 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e ;.$elements.=.array_map(function
f1140 20 28 24 65 6c 65 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 20 2a .($element).{.return.sprintf('.*
f1160 20 25 73 27 2c 20 24 65 6c 65 6d 65 6e 74 29 3b 0a 7d 2c 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a .%s',.$element);.},.$elements);.
f1180 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 6c 6e 28 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 24 74 68 69 .$this->writeln($elements);.$thi
f11a0 73 2d 3e 6e 65 77 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s->newLine();.}.....public.funct
f11c0 69 6f 6e 20 74 65 78 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f ion.text($message).{.$this->auto
f11e0 50 72 65 70 65 6e 64 54 65 78 74 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 6d PrependText();..if.(!is_array($m
f1200 65 73 73 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 essage)).{.$this->writeln(sprint
f1220 66 28 27 20 2f 2f 20 25 73 27 2c 20 24 6d 65 73 73 61 67 65 29 29 3b 0a 0a 72 65 74 75 72 6e 3b f('.//.%s',.$message));..return;
f1240 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 20 61 73 20 24 65 6c 65 6d 65 6e .}..foreach.($message.as.$elemen
f1260 74 29 20 7b 0a 24 74 68 69 73 2d 3e 74 65 78 74 28 24 65 6c 65 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a t).{.$this->text($element);.}.}.
f1280 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 63 63 65 73 73 28 24 6d 65 73 ....public.function.success($mes
f12a0 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 2c 20 27 sage).{.$this->block($message,.'
f12c0 4f 4b 27 2c 20 27 66 67 3d 62 6c 61 63 6b 3b 62 67 3d 67 72 65 65 6e 27 2c 20 27 20 27 2c 20 74 OK',.'fg=black;bg=green',.'.',.t
f12e0 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 6f 6e 20 65 72 72 6f rue);.}.....public.function.erro
f1300 72 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 6c 6f 63 6b 28 24 6d 65 73 73 r($message).{.$this->block($mess
f1320 61 67 65 2c 20 27 45 52 52 4f 52 27 2c 20 27 66 67 3d 77 68 69 74 65 3b 62 67 3d 72 65 64 27 2c age,.'ERROR',.'fg=white;bg=red',
f1340 20 27 20 27 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 .'.',.true);.}.....public.functi
f1360 6f 6e 20 77 61 72 6e 69 6e 67 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 6c on.warning($message).{.$this->bl
f1380 6f 63 6b 28 24 6d 65 73 73 61 67 65 2c 20 27 57 41 52 4e 49 4e 47 27 2c 20 27 66 67 3d 77 68 69 ock($message,.'WARNING',.'fg=whi
f13a0 74 65 3b 62 67 3d 72 65 64 27 2c 20 27 20 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 te;bg=red',.'.',.true);.}.....pu
f13c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 65 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 blic.function.note($message).{.$
f13e0 74 68 69 73 2d 3e 62 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 2c 20 27 4e 4f 54 45 27 2c 20 27 66 this->block($message,.'NOTE',.'f
f1400 67 3d 79 65 6c 6c 6f 77 27 2c 20 27 20 21 20 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 g=yellow',.'.!.');.}.....public.
f1420 66 75 6e 63 74 69 6f 6e 20 63 61 75 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 function.caution($message).{.$th
f1440 69 73 2d 3e 62 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 2c 20 27 43 41 55 54 49 4f 4e 27 2c 20 27 is->block($message,.'CAUTION',.'
f1460 66 67 3d 77 68 69 74 65 3b 62 67 3d 72 65 64 27 2c 20 27 20 21 20 27 2c 20 74 72 75 65 29 3b 0a fg=white;bg=red',.'.!.',.true);.
f1480 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 61 62 6c 65 28 61 72 72 61 }.....public.function.table(arra
f14a0 79 20 24 68 65 61 64 65 72 73 2c 20 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 68 65 61 64 y.$headers,.array.$rows).{.$head
f14c0 65 72 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 ers.=.array_map(function.($value
f14e0 29 20 7b 20 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 3e 27 ).{.return.sprintf('<info>%s</>'
f1500 2c 20 24 76 61 6c 75 65 29 3b 20 7d 2c 20 24 68 65 61 64 65 72 73 29 3b 0a 0a 24 74 61 62 6c 65 ,.$value);.},.$headers);..$table
f1520 20 3d 20 6e 65 77 20 54 61 62 6c 65 28 24 74 68 69 73 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 .=.new.Table($this);.$table->set
f1540 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 52 6f Headers($headers);.$table->setRo
f1560 77 73 28 24 72 6f 77 73 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 53 74 79 6c 65 28 27 73 79 6d ws($rows);.$table->setStyle('sym
f1580 66 6f 6e 79 2d 73 74 79 6c 65 2d 67 75 69 64 65 27 29 3b 0a 0a 24 74 61 62 6c 65 2d 3e 72 65 6e fony-style-guide');..$table->ren
f15a0 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 65 77 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 der();.$this->newLine();.}.....p
f15c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 ublic.function.ask($question,.$d
f15e0 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 75 6c 6c efault.=.null,.$validator.=.null
f1600 29 0a 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 6e 65 77 20 51 75 65 73 74 69 6f 6e 28 24 71 75 ).{.$question.=.new.Question($qu
f1620 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 24 71 75 65 73 74 69 6f 6e 2d 3e 73 65 estion,.$default);.$question->se
f1640 74 56 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 69 64 61 74 6f 72 29 3b 0a 0a 72 65 74 75 72 6e 20 tValidator($validator);..return.
f1660 24 74 68 69 73 2d 3e 61 73 6b 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d $this->askQuestion($question);.}
f1680 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 6e 28 24 .....public.function.askHidden($
f16a0 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 question,.$validator.=.null).{.$
f16c0 71 75 65 73 74 69 6f 6e 20 3d 20 6e 65 77 20 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f question.=.new.Question($questio
f16e0 6e 29 3b 0a 0a 24 71 75 65 73 74 69 6f 6e 2d 3e 73 65 74 48 69 64 64 65 6e 28 74 72 75 65 29 3b n);..$question->setHidden(true);
f1700 0a 24 71 75 65 73 74 69 6f 6e 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 69 64 61 .$question->setValidator($valida
f1720 74 6f 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 51 75 65 73 74 69 6f 6e tor);..return.$this->askQuestion
f1740 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ($question);.}.....public.functi
f1760 6f 6e 20 63 6f 6e 66 69 72 6d 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d on.confirm($question,.$default.=
f1780 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 51 75 65 73 74 69 .true).{.return.$this->askQuesti
f17a0 6f 6e 28 6e 65 77 20 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 51 75 65 73 74 69 6f 6e 28 24 71 75 65 on(new.ConfirmationQuestion($que
f17c0 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 stion,.$default));.}.....public.
f17e0 66 75 6e 63 74 69 6f 6e 20 63 68 6f 69 63 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 61 72 72 61 79 function.choice($question,.array
f1800 20 24 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 69 66 .$choices,.$default.=.null).{.if
f1820 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 76 61 6c 75 65 73 20 3d .(null.!==.$default).{.$values.=
f1840 20 61 72 72 61 79 5f 66 6c 69 70 28 24 63 68 6f 69 63 65 73 29 3b 0a 24 64 65 66 61 75 6c 74 20 .array_flip($choices);.$default.
f1860 3d 20 24 76 61 6c 75 65 73 5b 24 64 65 66 61 75 6c 74 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 =.$values[$default];.}..return.$
f1880 74 68 69 73 2d 3e 61 73 6b 51 75 65 73 74 69 6f 6e 28 6e 65 77 20 43 68 6f 69 63 65 51 75 65 73 this->askQuestion(new.ChoiceQues
f18a0 74 69 6f 6e 28 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 tion($question,.$choices,.$defau
f18c0 6c 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 67 lt));.}.....public.function.prog
f18e0 72 65 73 73 53 74 61 72 74 28 24 6d 61 78 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f ressStart($max.=.0).{.$this->pro
f1900 67 72 65 73 73 42 61 72 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 72 6f 67 72 65 73 73 gressBar.=.$this->createProgress
f1920 42 61 72 28 24 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 42 61 72 2d 3e 73 Bar($max);.$this->progressBar->s
f1940 74 61 72 74 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 70 72 tart();.}.....public.function.pr
f1960 6f 67 72 65 73 73 41 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 ogressAdvance($step.=.1).{.$this
f1980 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 42 61 72 28 29 2d 3e 61 64 76 61 6e 63 65 28 24 73 74 65 ->getProgressBar()->advance($ste
f19a0 70 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 70 72 6f 67 72 65 p);.}.....public.function.progre
f19c0 73 73 46 69 6e 69 73 68 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 42 ssFinish().{.$this->getProgressB
f19e0 61 72 28 29 2d 3e 66 69 6e 69 73 68 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 65 77 4c 69 6e 65 28 32 ar()->finish();.$this->newLine(2
f1a00 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 42 61 72 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a );.$this->progressBar.=.null;.}.
f1a20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 72 6f 67 72 65 ....public.function.createProgre
f1a40 73 73 42 61 72 28 24 6d 61 78 20 3d 20 30 29 0a 7b 0a 24 70 72 6f 67 72 65 73 73 42 61 72 20 3d ssBar($max.=.0).{.$progressBar.=
f1a60 20 70 61 72 65 6e 74 3a 3a 63 72 65 61 74 65 50 72 6f 67 72 65 73 73 42 61 72 28 24 6d 61 78 29 .parent::createProgressBar($max)
f1a80 3b 0a 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 ;..if.('\\'.===.DIRECTORY_SEPARA
f1aa0 54 4f 52 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 42 61 72 2d 3e 73 65 74 45 6d 70 74 79 42 61 72 TOR).{.$progressBar->setEmptyBar
f1ac0 43 68 61 72 61 63 74 65 72 28 27 e2 96 91 27 29 3b 20 0a 20 24 70 72 6f 67 72 65 73 73 42 61 72 Character('...');...$progressBar
f1ae0 2d 3e 73 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 27 27 29 3b 0a 24 70 72 6f ->setProgressCharacter('');.$pro
f1b00 67 72 65 73 73 42 61 72 2d 3e 73 65 74 42 61 72 43 68 61 72 61 63 74 65 72 28 27 e2 96 93 27 29 gressBar->setBarCharacter('...')
f1b20 3b 20 0a 20 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 67 72 65 73 73 42 61 72 3b 0a 7d 0a 0a 0a ;...}..return.$progressBar;.}...
f1b40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 51 75 65 73 74 69 6f 6e 28 ....public.function.askQuestion(
f1b60 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d Question.$question).{.if.($this-
f1b80 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 >input->isInteractive()).{.$this
f1ba0 2d 3e 61 75 74 6f 50 72 65 70 65 6e 64 42 6c 6f 63 6b 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 ->autoPrependBlock();.}..if.(!$t
f1bc0 68 69 73 2d 3e 71 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 71 75 his->questionHelper).{.$this->qu
f1be0 65 73 74 69 6f 6e 48 65 6c 70 65 72 20 3d 20 6e 65 77 20 53 79 6d 66 6f 6e 79 51 75 65 73 74 69 estionHelper.=.new.SymfonyQuesti
f1c00 6f 6e 48 65 6c 70 65 72 28 29 3b 0a 7d 0a 0a 24 61 6e 73 77 65 72 20 3d 20 24 74 68 69 73 2d 3e onHelper();.}..$answer.=.$this->
f1c20 71 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 questionHelper->ask($this->input
f1c40 2c 20 24 74 68 69 73 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d ,.$this,.$question);..if.($this-
f1c60 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 >input->isInteractive()).{.$this
f1c80 2d 3e 6e 65 77 4c 69 6e 65 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 65 64 4f 75 74 70 ->newLine();.$this->bufferedOutp
f1ca0 75 74 2d 3e 77 72 69 74 65 28 22 5c 6e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 ut->write("\n");.}..return.$answ
f1cc0 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 77 72 69 74 65 6c er;.}.....public.function.writel
f1ce0 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 50 55 n($messages,.$type.=.self::OUTPU
f1d00 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 77 72 69 74 65 6c 6e 28 24 6d 65 73 T_NORMAL).{.parent::writeln($mes
f1d20 73 61 67 65 73 2c 20 24 74 79 70 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 65 64 4f 75 sages,.$type);.$this->bufferedOu
f1d40 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 72 65 64 75 63 65 42 75 66 66 65 tput->writeln($this->reduceBuffe
f1d60 72 28 24 6d 65 73 73 61 67 65 73 29 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c r($messages),.$type);.}.....publ
f1d80 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 ic.function.write($messages,.$ne
f1da0 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 wline.=.false,.$type.=.self::OUT
f1dc0 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 77 72 69 74 65 28 24 6d 65 73 PUT_NORMAL).{.parent::write($mes
f1de0 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 24 74 79 70 65 29 3b 0a 24 74 68 69 73 2d 3e sages,.$newline,.$type);.$this->
f1e00 62 75 66 66 65 72 65 64 4f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 72 65 64 bufferedOutput->write($this->red
f1e20 75 63 65 42 75 66 66 65 72 28 24 6d 65 73 73 61 67 65 73 29 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 uceBuffer($messages),.$newline,.
f1e40 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 $type);.}.....public.function.ne
f1e60 77 4c 69 6e 65 28 24 63 6f 75 6e 74 20 3d 20 31 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 6e 65 77 4c wLine($count.=.1).{.parent::newL
f1e80 69 6e 65 28 24 63 6f 75 6e 74 29 3b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 65 64 4f 75 74 70 ine($count);.$this->bufferedOutp
f1ea0 75 74 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 6e 22 2c 20 24 63 6f 75 6e ut->write(str_repeat("\n",.$coun
f1ec0 74 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 67 65 74 50 t));.}.....private.function.getP
f1ee0 72 6f 67 72 65 73 73 42 61 72 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 67 72 rogressBar().{.if.(!$this->progr
f1f00 65 73 73 42 61 72 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 essBar).{.throw.new.\RuntimeExce
f1f20 70 74 69 6f 6e 28 27 54 68 65 20 50 72 6f 67 72 65 73 73 42 61 72 20 69 73 20 6e 6f 74 20 73 74 ption('The.ProgressBar.is.not.st
f1f40 61 72 74 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 arted.');.}..return.$this->progr
f1f60 65 73 73 42 61 72 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 essBar;.}..private.function.getT
f1f80 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 0a 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 erminalWidth().{.$application.=.
f1fa0 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 24 64 69 6d 65 6e 73 69 6f 6e 73 20 3d new.Application();.$dimensions.=
f1fc0 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 .$application->getTerminalDimens
f1fe0 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 30 5d 20 3f ions();..return.$dimensions[0].?
f2000 3a 20 73 65 6c 66 3a 3a 4d 41 58 5f 4c 49 4e 45 5f 4c 45 4e 47 54 48 3b 0a 7d 0a 0a 70 72 69 76 :.self::MAX_LINE_LENGTH;.}..priv
f2020 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 50 72 65 70 65 6e 64 42 6c 6f 63 6b 28 29 0a ate.function.autoPrependBlock().
f2040 7b 0a 24 63 68 61 72 73 20 3d 20 73 75 62 73 74 72 28 73 74 72 5f 72 65 70 6c 61 63 65 28 50 48 {.$chars.=.substr(str_replace(PH
f2060 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 62 75 66 66 65 72 65 64 4f 75 74 70 P_EOL,."\n",.$this->bufferedOutp
f2080 75 74 2d 3e 66 65 74 63 68 28 29 29 2c 20 2d 32 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 ut->fetch()),.-2);..if.(!isset($
f20a0 63 68 61 72 73 5b 30 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 65 77 4c 69 chars[0])).{.return.$this->newLi
f20c0 6e 65 28 29 3b 20 0a 20 7d 0a 0a 20 24 74 68 69 73 2d 3e 6e 65 77 4c 69 6e 65 28 32 20 2d 20 73 ne();...}...$this->newLine(2.-.s
f20e0 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 63 68 61 72 73 2c 20 22 5c 6e 22 29 29 3b 0a 7d 0a 0a 70 ubstr_count($chars,."\n"));.}..p
f2100 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 50 72 65 70 65 6e 64 54 65 78 74 28 rivate.function.autoPrependText(
f2120 29 0a 7b 0a 24 66 65 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d 3e 62 75 66 66 65 72 65 64 4f 75 ).{.$fetched.=.$this->bufferedOu
f2140 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 0a 20 69 66 20 28 22 5c 6e 22 20 21 3d 3d 20 73 75 tput->fetch();...if.("\n".!==.su
f2160 62 73 74 72 28 24 66 65 74 63 68 65 64 2c 20 2d 31 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 65 77 bstr($fetched,.-1)).{.$this->new
f2180 4c 69 6e 65 28 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 72 65 Line();.}.}..private.function.re
f21a0 64 75 63 65 42 75 66 66 65 72 28 24 6d 65 73 73 61 67 65 73 29 0a 7b 0a 0a 20 0a 20 72 65 74 75 duceBuffer($messages).{.....retu
f21c0 72 6e 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b rn.array_map(function.($value).{
f21e0 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 2d 34 29 3b 0a 7d 2c 20 61 .return.substr($value,.-4);.},.a
f2200 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 74 68 69 73 2d 3e 62 75 66 66 65 72 65 64 rray_merge(array($this->buffered
f2220 4f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 29 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 Output->fetch()),.(array).$messa
f2240 67 65 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 6e 61 6d 65 73 ges));.}.}.<?php...........names
f2260 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 54 pace.Symfony\Component\Console\T
f2280 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ester;..use.Symfony\Component\Co
f22a0 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 nsole\Application;.use.Symfony\C
f22c0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 omponent\Console\Input\ArrayInpu
f22e0 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
f2300 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
f2320 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
f2340 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
f2360 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 75 74 70 75 74 3b 0a nt\Console\Output\StreamOutput;.
f2380 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 69 6f 6e 54 65 73 74 ...........class.ApplicationTest
f23a0 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 er.{.private.$application;.priva
f23c0 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 70 72 69 76 te.$input;.private.$output;.priv
f23e0 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 62 6c 69 63 20 66 75 ate.$statusCode;.......public.fu
f2400 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 61 74 69 6f 6e 20 24 nction.__construct(Application.$
f2420 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 6c 69 63 61 74 69 6f application).{.$this->applicatio
f2440 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 0a 0a 0a 0a 0a 0a 0a n.=.$application;.}.............
f2460 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 72 61 79 20 24 69 6e ...public.function.run(array.$in
f2480 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 7b 0a 24 74 68 69 73 put,.$options.=.array()).{.$this
f24a0 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 24 69 6e 70 75 74 29 ->input.=.new.ArrayInput($input)
f24c0 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 65 72 61 63 74 69 76 ;.if.(isset($options['interactiv
f24e0 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 49 6e 74 65 72 61 63 e'])).{.$this->input->setInterac
f2500 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 65 27 5d 29 3b 0a 7d tive($options['interactive']);.}
f2520 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 65 61 6d 4f 75 74 70 ..$this->output.=.new.StreamOutp
f2540 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 ut(fopen('php://memory',.'w',.fa
f2560 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 5b 27 64 65 63 6f 72 lse));.if.(isset($options['decor
f2580 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 3e 73 65 74 44 65 63 ated'])).{.$this->output->setDec
f25a0 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 64 27 5d 29 3b 0a 7d orated($options['decorated']);.}
f25c0 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 6f 73 69 74 79 27 5d .if.(isset($options['verbosity']
f25e0 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 72 62 6f 73 69 74 79 )).{.$this->output->setVerbosity
f2600 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 7d 0a 0a 72 65 74 75 ($options['verbosity']);.}..retu
f2620 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 68 69 73 2d 3e 61 70 rn.$this->statusCode.=.$this->ap
f2640 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 plication->run($this->input,.$th
f2660 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 62 6c 69 63 20 66 75 is->output);.}.........public.fu
f2680 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 69 7a 65 20 3d 20 66 nction.getDisplay($normalize.=.f
f26a0 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 70 75 74 2d 3e 67 65 alse).{.rewind($this->output->ge
f26c0 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 74 72 65 61 6d 5f 67 tStream());..$display.=.stream_g
f26e0 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
f2700 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 20 7b 0a 24 64 69 73 ream());..if.($normalize).{.$dis
f2720 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 4c 2c 20 22 5c 6e 22 play.=.str_replace(PHP_EOL,."\n"
f2740 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 69 73 70 6c 61 79 3b ,.$display);.}..return.$display;
f2760 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 .}.......public.function.getInpu
f2780 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 7d 0a 0a 0a 0a t().{.return.$this->input;.}....
f27a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b ...public.function.getOutput().{
f27c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .return.$this->output;.}.......p
f27e0 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 6f 64 65 28 29 0a 7b ublic.function.getStatusCode().{
f2800 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 3b 0a 7d 0a 7d 0a 3c .return.$this->statusCode;.}.}.<
f2820 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
f2840 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 3b 0a 0a 75 73 65 20 \Component\Console\Tester;..use.
f2860 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
f2880 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 d\Command;.use.Symfony\Component
f28a0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 \Console\Input\ArrayInput;.use.S
f28c0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
f28e0 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 5c 43 6f 6d 70 6f 6e StreamOutput;.use.Symfony\Compon
f2900 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
f2920 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\
f2940 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c Output\OutputInterface;.......cl
f2960 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d ass.CommandTester.{.private.$com
f2980 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f mand;.private.$input;.private.$o
f29a0 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 43 6f 64 65 3b 0a 0a 0a 0a 0a utput;.private.$statusCode;.....
f29c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f ..public.function.__construct(Co
f29e0 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 mmand.$command).{.$this->command
f2a00 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 0a 0a 0a 0a 0a 70 75 .=.$command;.}................pu
f2a20 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 61 79 20 24 69 6e 70 blic.function.execute(array.$inp
f2a40 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 79 28 29 29 0a 7b 0a ut,.array.$options.=.array()).{.
f2a60 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 6d 6d 61 6e 64 27 5d ....if.(!isset($input['command']
f2a80 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 6f 6e 20 3d 20 24 74 ).&&.(null.!==.$application.=.$t
f2aa0 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 69 6f 6e 28 29 29 0a his->command->getApplication()).
f2ac0 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 69 74 69 6f 6e 28 29 &&.$application->getDefinition()
f2ae0 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 29 20 7b 0a 24 69 6e ->hasArgument('command').).{.$in
f2b00 70 75 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 put.=.array_merge(array('command
f2b20 27 20 3d 3e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 2c '.=>.$this->command->getName()),
f2b40 20 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 77 20 .$input);.}..$this->input.=.new.
f2b60 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f ArrayInput($input);.if.(isset($o
f2b80 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d ptions['interactive'])).{.$this-
f2ba0 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e 73 5b >input->setInteractive($options[
f2bc0 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 'interactive']);.}..$this->outpu
f2be0 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a t.=.new.StreamOutput(fopen('php:
f2c00 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 73 73 //memory',.'w',.false));.if.(iss
f2c20 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 74 68 et($options['decorated'])).{.$th
f2c40 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 6f 6e is->output->setDecorated($option
f2c60 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 s['decorated']);.}.if.(isset($op
f2c80 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 tions['verbosity'])).{.$this->ou
f2ca0 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 tput->setVerbosity($options['ver
f2cc0 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 bosity']);.}..return.$this->stat
f2ce0 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 74 68 usCode.=.$this->command->run($th
f2d00 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a is->input,.$this->output);.}....
f2d20 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 70 6c 61 79 28 .....public.function.getDisplay(
f2d40 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 $normalize.=.false).{.rewind($th
f2d60 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 64 69 73 70 is->output->getStream());..$disp
f2d80 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d lay.=.stream_get_contents($this-
f2da0 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 >output->getStream());..if.($nor
f2dc0 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 malize).{.$display.=.str_replace
f2de0 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 73 70 6c 61 79 29 3b 0a 7d 0a 0a 72 65 (PHP_EOL,."\n",.$display);.}..re
f2e00 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 turn.$display;.}.......public.fu
f2e20 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 68 69 73 nction.getInput().{.return.$this
f2e40 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 69 6f 6e ->input;.}.......public.function
f2e60 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 6f 75 74 .getOutput().{.return.$this->out
f2e80 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 put;.}.......public.function.get
f2ea0 53 74 61 74 75 73 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 StatusCode().{.return.$this->sta
f2ec0 74 75 73 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d tusCode;.}.}.<?php...........nam
f2ee0 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 6c 65 73 79 73 espace.Symfony\Component\Filesys
f2f00 74 65 6d 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 tem\Exception;.......interface.E
f2f20 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a xceptionInterface.{.}.<?php.....
f2f40 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
f2f60 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 t\Filesystem\Exception;........c
f2f80 6c 61 73 73 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e lass.FileNotFoundException.exten
f2fa0 64 73 20 49 4f 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 ds.IOException.{.public.function
f2fc0 20 5f 5f 63 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 .__construct($message.=.null,.$c
f2fe0 6f 64 65 20 3d 20 30 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 ode.=.0,.\Exception.$previous.=.
f3000 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d null,.$path.=.null).{.if.(null.=
f3020 3d 3d 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 61 74 ==.$message).{.if.(null.===.$pat
f3040 68 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 46 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 h).{.$message.=.'File.could.not.
f3060 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 be.found.';.}.else.{.$message.=.
f3080 73 70 72 69 6e 74 66 28 27 46 69 6c 65 20 22 25 73 22 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 sprintf('File."%s".could.not.be.
f30a0 66 6f 75 6e 64 2e 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f found.',.$path);.}.}..parent::__
f30c0 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 2c 20 24 70 72 65 76 construct($message,.$code,.$prev
f30e0 69 6f 75 73 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ious,.$path);.}.}.<?php.........
f3100 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
f3120 6c 65 73 79 73 74 65 6d 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 lesystem\Exception;.........clas
f3140 73 20 49 4f 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 s.IOException.extends.\RuntimeEx
f3160 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 45 78 63 65 70 74 69 6f 6e 49 6e ception.implements.IOExceptionIn
f3180 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 3b 0a 0a 70 75 62 6c 69 63 terface.{.private.$path;..public
f31a0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 .function.__construct($message,.
f31c0 24 63 6f 64 65 20 3d 20 30 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 $code.=.0,.\Exception.$previous.
f31e0 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 =.null,.$path.=.null).{.$this->p
f3200 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 ath.=.$path;..parent::__construc
f3220 74 28 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 64 65 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d t($message,.$code,.$previous);.}
f3240 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 74 68 28 29 0a 7b .....public.function.getPath().{
f3260 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .return.$this->path;.}.}.<?php..
f3280 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
f32a0 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a nent\Filesystem\Exception;......
f32c0 0a 69 6e 74 65 72 66 61 63 65 20 49 4f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 .interface.IOExceptionInterface.
f32e0 65 78 74 65 6e 64 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a extends.ExceptionInterface.{....
f3300 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 28 29 3b 0a 7d 0a 3c ..public.function.getPath();.}.<
f3320 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
f3340 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 75 73 65 20 53 79 6d 66 \Component\Filesystem;..use.Symf
f3360 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 45 78 63 65 70 74 69 ony\Component\Filesystem\Excepti
f3380 6f 6e 5c 49 4f 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 on\IOException;.use.Symfony\Comp
f33a0 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 45 78 63 65 70 74 69 6f 6e 5c 46 69 6c 65 4e onent\Filesystem\Exception\FileN
f33c0 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 otFoundException;.......class.Fi
f33e0 6c 65 73 79 73 74 65 6d 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 lesystem.{...............public.
f3400 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 69 6e 46 69 6c 65 2c 20 24 74 61 72 67 function.copy($originFile,.$targ
f3420 65 74 46 69 6c 65 2c 20 24 6f 76 65 72 72 69 64 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 etFile,.$override.=.false).{.if.
f3440 28 73 74 72 65 61 6d 5f 69 73 5f 6c 6f 63 61 6c 28 24 6f 72 69 67 69 6e 46 69 6c 65 29 20 26 26 (stream_is_local($originFile).&&
f3460 20 21 69 73 5f 66 69 6c 65 28 24 6f 72 69 67 69 6e 46 69 6c 65 29 29 20 7b 0a 74 68 72 6f 77 20 .!is_file($originFile)).{.throw.
f3480 6e 65 77 20 46 69 6c 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 new.FileNotFoundException(sprint
f34a0 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20 22 25 73 22 20 62 65 63 61 75 73 65 20 66 f('Failed.to.copy."%s".because.f
f34c0 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6f 72 69 67 69 6e 46 69 6c ile.does.not.exist.',.$originFil
f34e0 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 29 3b 0a 7d 0a 0a 24 74 e),.0,.null,.$originFile);.}..$t
f3500 68 69 73 2d 3e 6d 6b 64 69 72 28 64 69 72 6e 61 6d 65 28 24 74 61 72 67 65 74 46 69 6c 65 29 29 his->mkdir(dirname($targetFile))
f3520 3b 0a 0a 24 64 6f 43 6f 70 79 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 21 24 6f 76 65 72 72 69 64 ;..$doCopy.=.true;.if.(!$overrid
f3540 65 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 6f 72 69 67 69 6e 46 e.&&.null.===.parse_url($originF
f3560 69 6c 65 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 20 26 26 20 69 73 5f 66 69 6c 65 28 24 74 ile,.PHP_URL_HOST).&&.is_file($t
f3580 61 72 67 65 74 46 69 6c 65 29 29 20 7b 0a 24 64 6f 43 6f 70 79 20 3d 20 66 69 6c 65 6d 74 69 6d argetFile)).{.$doCopy.=.filemtim
f35a0 65 28 24 6f 72 69 67 69 6e 46 69 6c 65 29 20 3e 20 66 69 6c 65 6d 74 69 6d 65 28 24 74 61 72 67 e($originFile).>.filemtime($targ
f35c0 65 74 46 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 6f 43 6f 70 79 29 20 7b 0a 0a 20 69 66 20 etFile);.}..if.($doCopy).{...if.
f35e0 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 6f 75 72 63 65 20 3d 20 40 66 6f 70 65 6e 28 24 6f 72 69 (false.===.$source.=.@fopen($ori
f3600 67 69 6e 46 69 6c 65 2c 20 27 72 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 ginFile,.'r')).{.throw.new.IOExc
f3620 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 22 eption(sprintf('Failed.to.copy."
f3640 25 73 22 20 74 6f 20 22 25 73 22 20 62 65 63 61 75 73 65 20 73 6f 75 72 63 65 20 66 69 6c 65 20 %s".to."%s".because.source.file.
f3660 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 20 66 6f 72 20 72 65 61 64 69 6e 67 2e could.not.be.opened.for.reading.
f3680 27 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 2c 20 24 74 61 72 67 65 74 46 69 6c 65 29 2c 20 30 2c ',.$originFile,.$targetFile),.0,
f36a0 20 6e 75 6c 6c 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 .null,.$originFile);.}....if.(fa
f36c0 6c 73 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 20 3d 20 40 66 6f 70 65 6e 28 24 74 61 72 67 65 74 lse.===.$target.=.@fopen($target
f36e0 46 69 6c 65 2c 20 27 77 27 2c 20 6e 75 6c 6c 2c 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f File,.'w',.null,.stream_context_
f3700 63 72 65 61 74 65 28 61 72 72 61 79 28 27 66 74 70 27 20 3d 3e 20 61 72 72 61 79 28 27 6f 76 65 create(array('ftp'.=>.array('ove
f3720 72 77 72 69 74 65 27 20 3d 3e 20 74 72 75 65 29 29 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 rwrite'.=>.true))))).{.throw.new
f3740 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 .IOException(sprintf('Failed.to.
f3760 63 6f 70 79 20 22 25 73 22 20 74 6f 20 22 25 73 22 20 62 65 63 61 75 73 65 20 74 61 72 67 65 74 copy."%s".to."%s".because.target
f3780 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 20 66 6f 72 20 77 72 .file.could.not.be.opened.for.wr
f37a0 69 74 69 6e 67 2e 27 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 2c 20 24 74 61 72 67 65 74 46 69 6c iting.',.$originFile,.$targetFil
f37c0 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 29 3b 0a 7d 0a 0a 24 62 e),.0,.null,.$originFile);.}..$b
f37e0 79 74 65 73 43 6f 70 69 65 64 20 3d 20 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 ytesCopied.=.stream_copy_to_stre
f3800 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 28 24 73 6f am($source,.$target);.fclose($so
f3820 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 74 28 24 73 urce);.fclose($target);.unset($s
f3840 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 ource,.$target);..if.(!is_file($
f3860 74 61 72 67 65 74 46 69 6c 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 targetFile)).{.throw.new.IOExcep
f3880 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 22 25 73 tion(sprintf('Failed.to.copy."%s
f38a0 22 20 74 6f 20 22 25 73 22 2e 27 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 2c 20 24 74 61 72 67 65 ".to."%s".',.$originFile,.$targe
f38c0 74 46 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 6f 72 69 67 69 6e 46 69 6c 65 29 3b 0a 7d tFile),.0,.null,.$originFile);.}
f38e0 0a 0a 0a 20 40 63 68 6d 6f 64 28 24 74 61 72 67 65 74 46 69 6c 65 2c 20 66 69 6c 65 70 65 72 6d ....@chmod($targetFile,.fileperm
f3900 73 28 24 74 61 72 67 65 74 46 69 6c 65 29 20 7c 20 28 66 69 6c 65 70 65 72 6d 73 28 24 6f 72 69 s($targetFile).|.(fileperms($ori
f3920 67 69 6e 46 69 6c 65 29 20 26 20 30 31 31 31 29 29 3b 0a 0a 69 66 20 28 73 74 72 65 61 6d 5f 69 ginFile).&.0111));..if.(stream_i
f3940 73 5f 6c 6f 63 61 6c 28 24 6f 72 69 67 69 6e 46 69 6c 65 29 20 26 26 20 24 62 79 74 65 73 43 6f s_local($originFile).&&.$bytesCo
f3960 70 69 65 64 20 21 3d 3d 20 28 24 62 79 74 65 73 4f 72 69 67 69 6e 20 3d 20 66 69 6c 65 73 69 7a pied.!==.($bytesOrigin.=.filesiz
f3980 65 28 24 6f 72 69 67 69 6e 46 69 6c 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 e($originFile))).{.throw.new.IOE
f39a0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 xception(sprintf('Failed.to.copy
f39c0 20 74 68 65 20 77 68 6f 6c 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 22 25 73 22 20 74 6f 20 22 25 .the.whole.content.of."%s".to."%
f39e0 73 22 20 28 25 67 20 6f 66 20 25 67 20 62 79 74 65 73 20 63 6f 70 69 65 64 29 2e 27 2c 20 24 6f s".(%g.of.%g.bytes.copied).',.$o
f3a00 72 69 67 69 6e 46 69 6c 65 2c 20 24 74 61 72 67 65 74 46 69 6c 65 2c 20 24 62 79 74 65 73 43 6f riginFile,.$targetFile,.$bytesCo
f3a20 70 69 65 64 2c 20 24 62 79 74 65 73 4f 72 69 67 69 6e 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 6f pied,.$bytesOrigin),.0,.null,.$o
f3a40 72 69 67 69 6e 46 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 riginFile);.}.}.}..........publi
f3a60 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6b 64 69 72 28 24 64 69 72 73 2c 20 24 6d 6f 64 65 20 3d 20 c.function.mkdir($dirs,.$mode.=.
f3a80 30 37 37 37 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 49 74 65 72 61 74 0777).{.foreach.($this->toIterat
f3aa0 6f 72 28 24 64 69 72 73 29 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 or($dirs).as.$dir).{.if.(is_dir(
f3ac0 24 64 69 72 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 $dir)).{.continue;.}..if.(true.!
f3ae0 3d 3d 20 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 24 6d 6f 64 65 2c 20 74 72 75 65 29 29 20 7b 0a ==.@mkdir($dir,.$mode,.true)).{.
f3b00 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 69 66 20 28 21 $error.=.error_get_last();.if.(!
f3b20 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 0a 20 69 66 20 28 24 65 72 72 6f 72 29 20 7b 0a is_dir($dir)).{...if.($error).{.
f3b40 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 throw.new.IOException(sprintf('F
f3b60 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 20 22 25 73 22 3a 20 25 73 2e 27 2c 20 24 64 69 72 ailed.to.create."%s":.%s.',.$dir
f3b80 2c 20 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 ,.$error['message']),.0,.null,.$
f3ba0 64 69 72 29 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 dir);.}.throw.new.IOException(sp
f3bc0 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 20 22 25 73 22 27 2c 20 24 rintf('Failed.to.create."%s"',.$
f3be0 64 69 72 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 64 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a dir),.0,.null,.$dir);.}.}.}.}...
f3c00 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 24 66 69 ......public.function.exists($fi
f3c20 6c 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 49 74 65 72 61 74 6f les).{.foreach.($this->toIterato
f3c40 72 28 24 66 69 6c 65 73 29 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f r($files).as.$file).{.if.(!file_
f3c60 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d exists($file)).{.return.false;.}
f3c80 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 0a 0a 70 75 62 .}..return.true;.}...........pub
f3ca0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 75 63 68 28 24 66 69 6c 65 73 2c 20 24 74 69 6d 65 lic.function.touch($files,.$time
f3cc0 20 3d 20 6e 75 6c 6c 2c 20 24 61 74 69 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 .=.null,.$atime.=.null).{.foreac
f3ce0 68 20 28 24 74 68 69 73 2d 3e 74 6f 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 20 61 73 20 h.($this->toIterator($files).as.
f3d00 24 66 69 6c 65 29 20 7b 0a 24 74 6f 75 63 68 20 3d 20 24 74 69 6d 65 20 3f 20 40 74 6f 75 63 68 $file).{.$touch.=.$time.?.@touch
f3d20 28 24 66 69 6c 65 2c 20 24 74 69 6d 65 2c 20 24 61 74 69 6d 65 29 20 3a 20 40 74 6f 75 63 68 28 ($file,.$time,.$atime).:.@touch(
f3d40 24 66 69 6c 65 29 3b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 74 6f 75 63 68 29 20 7b 0a 74 $file);.if.(true.!==.$touch).{.t
f3d60 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 hrow.new.IOException(sprintf('Fa
f3d80 69 6c 65 64 20 74 6f 20 74 6f 75 63 68 20 22 25 73 22 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c iled.to.touch."%s".',.$file),.0,
f3da0 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .null,.$file);.}.}.}.........pub
f3dc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 73 29 0a 7b 0a 24 66 lic.function.remove($files).{.$f
f3de0 69 6c 65 73 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e iles.=.iterator_to_array($this->
f3e00 74 6f 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 29 3b 0a 24 66 69 6c 65 73 20 3d 20 61 72 toIterator($files));.$files.=.ar
f3e20 72 61 79 5f 72 65 76 65 72 73 65 28 24 66 69 6c 65 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 ray_reverse($files);.foreach.($f
f3e40 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 iles.as.$file).{.if.(!file_exist
f3e60 73 28 24 66 69 6c 65 29 20 26 26 20 21 69 73 5f 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 63 s($file).&&.!is_link($file)).{.c
f3e80 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 6c 65 29 20 26 26 ontinue;.}..if.(is_dir($file).&&
f3ea0 20 21 69 73 5f 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 .!is_link($file)).{.$this->remov
f3ec0 65 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 29 e(new.\FilesystemIterator($file)
f3ee0 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 72 6d 64 69 72 28 24 66 69 6c 65 29 29 20 );..if.(true.!==.@rmdir($file)).
f3f00 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 {.throw.new.IOException(sprintf(
f3f20 27 46 61 69 6c 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 64 69 72 65 63 74 6f 72 79 20 22 25 73 22 'Failed.to.remove.directory."%s"
f3f40 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d .',.$file),.0,.null,.$file);.}.}
f3f60 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 .else.{...if.('\\'.===.DIRECTORY
f3f80 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 69 73 5f 64 69 72 28 24 66 69 6c 65 29 29 20 7b 0a 69 _SEPARATOR.&&.is_dir($file)).{.i
f3fa0 66 20 28 74 72 75 65 20 21 3d 3d 20 40 72 6d 64 69 72 28 24 66 69 6c 65 29 29 20 7b 0a 74 68 72 f.(true.!==.@rmdir($file)).{.thr
f3fc0 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c ow.new.IOException(sprintf('Fail
f3fe0 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 66 69 6c 65 20 22 25 73 22 2e 27 2c 20 24 66 69 6c 65 29 ed.to.remove.file."%s".',.$file)
f4000 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 ,.0,.null,.$file);.}.}.else.{.if
f4020 20 28 74 72 75 65 20 21 3d 3d 20 40 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 74 68 72 .(true.!==.@unlink($file)).{.thr
f4040 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c ow.new.IOException(sprintf('Fail
f4060 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 66 69 6c 65 20 22 25 73 22 2e 27 2c 20 24 66 69 6c 65 29 ed.to.remove.file."%s".',.$file)
f4080 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a ,.0,.null,.$file);.}.}.}.}.}....
f40a0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 6d 6f 64 28 24 66 ........public.function.chmod($f
f40c0 69 6c 65 73 2c 20 24 6d 6f 64 65 2c 20 24 75 6d 61 73 6b 20 3d 20 30 30 30 30 2c 20 24 72 65 63 iles,.$mode,.$umask.=.0000,.$rec
f40e0 75 72 73 69 76 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ursive.=.false).{.foreach.($this
f4100 2d 3e 74 6f 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 20 61 73 20 24 66 69 6c 65 29 20 7b ->toIterator($files).as.$file).{
f4120 0a 69 66 20 28 24 72 65 63 75 72 73 69 76 65 20 26 26 20 69 73 5f 64 69 72 28 24 66 69 6c 65 29 .if.($recursive.&&.is_dir($file)
f4140 20 26 26 20 21 69 73 5f 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 .&&.!is_link($file)).{.$this->ch
f4160 6d 6f 64 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 66 69 6c mod(new.\FilesystemIterator($fil
f4180 65 29 2c 20 24 6d 6f 64 65 2c 20 24 75 6d 61 73 6b 2c 20 74 72 75 65 29 3b 0a 7d 0a 69 66 20 28 e),.$mode,.$umask,.true);.}.if.(
f41a0 74 72 75 65 20 21 3d 3d 20 40 63 68 6d 6f 64 28 24 66 69 6c 65 2c 20 24 6d 6f 64 65 20 26 20 7e true.!==.@chmod($file,.$mode.&.~
f41c0 24 75 6d 61 73 6b 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e $umask)).{.throw.new.IOException
f41e0 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 68 6d 6f 64 20 66 69 6c 65 20 22 (sprintf('Failed.to.chmod.file."
f4200 25 73 22 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a %s".',.$file),.0,.null,.$file);.
f4220 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 }.}.}...........public.function.
f4240 63 68 6f 77 6e 28 24 66 69 6c 65 73 2c 20 24 75 73 65 72 2c 20 24 72 65 63 75 72 73 69 76 65 20 chown($files,.$user,.$recursive.
f4260 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 49 74 65 =.false).{.foreach.($this->toIte
f4280 72 61 74 6f 72 28 24 66 69 6c 65 73 29 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 72 rator($files).as.$file).{.if.($r
f42a0 65 63 75 72 73 69 76 65 20 26 26 20 69 73 5f 64 69 72 28 24 66 69 6c 65 29 20 26 26 20 21 69 73 ecursive.&&.is_dir($file).&&.!is
f42c0 5f 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 6f 77 6e 28 6e 65 77 _link($file)).{.$this->chown(new
f42e0 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 29 2c 20 24 75 73 .\FilesystemIterator($file),.$us
f4300 65 72 2c 20 74 72 75 65 29 3b 0a 7d 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 66 69 6c 65 29 20 er,.true);.}.if.(is_link($file).
f4320 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6c 63 68 6f 77 6e 27 29 29 20 7b 0a &&.function_exists('lchown')).{.
f4340 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 6c 63 68 6f 77 6e 28 24 66 69 6c 65 2c 20 24 75 73 65 if.(true.!==.@lchown($file,.$use
f4360 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 r)).{.throw.new.IOException(spri
f4380 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 68 6f 77 6e 20 66 69 6c 65 20 22 25 73 22 2e 27 ntf('Failed.to.chown.file."%s".'
f43a0 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 20 65 ,.$file),.0,.null,.$file);.}.}.e
f43c0 6c 73 65 20 7b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 63 68 6f 77 6e 28 24 66 69 6c 65 2c lse.{.if.(true.!==.@chown($file,
f43e0 20 24 75 73 65 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e .$user)).{.throw.new.IOException
f4400 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 68 6f 77 6e 20 66 69 6c 65 20 22 (sprintf('Failed.to.chown.file."
f4420 25 73 22 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a %s".',.$file),.0,.null,.$file);.
f4440 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f }.}.}.}...........public.functio
f4460 6e 20 63 68 67 72 70 28 24 66 69 6c 65 73 2c 20 24 67 72 6f 75 70 2c 20 24 72 65 63 75 72 73 69 n.chgrp($files,.$group,.$recursi
f4480 76 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f ve.=.false).{.foreach.($this->to
f44a0 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 Iterator($files).as.$file).{.if.
f44c0 28 24 72 65 63 75 72 73 69 76 65 20 26 26 20 69 73 5f 64 69 72 28 24 66 69 6c 65 29 20 26 26 20 ($recursive.&&.is_dir($file).&&.
f44e0 21 69 73 5f 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 67 72 70 28 !is_link($file)).{.$this->chgrp(
f4500 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 29 2c 20 new.\FilesystemIterator($file),.
f4520 24 67 72 6f 75 70 2c 20 74 72 75 65 29 3b 0a 7d 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 66 69 $group,.true);.}.if.(is_link($fi
f4540 6c 65 29 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6c 63 68 67 72 70 27 29 le).&&.function_exists('lchgrp')
f4560 29 20 7b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 6c 63 68 67 72 70 28 24 66 69 6c 65 2c 20 ).{.if.(true.!==.@lchgrp($file,.
f4580 24 67 72 6f 75 70 29 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f $group).||.(defined('HHVM_VERSIO
f45a0 4e 27 29 20 26 26 20 21 70 6f 73 69 78 5f 67 65 74 67 72 6e 61 6d 28 24 67 72 6f 75 70 29 29 29 N').&&.!posix_getgrnam($group)))
f45c0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 .{.throw.new.IOException(sprintf
f45e0 28 27 46 61 69 6c 65 64 20 74 6f 20 63 68 67 72 70 20 66 69 6c 65 20 22 25 73 22 2e 27 2c 20 24 ('Failed.to.chgrp.file."%s".',.$
f4600 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 file),.0,.null,.$file);.}.}.else
f4620 20 7b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 63 68 67 72 70 28 24 66 69 6c 65 2c 20 24 67 .{.if.(true.!==.@chgrp($file,.$g
f4640 72 6f 75 70 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 roup)).{.throw.new.IOException(s
f4660 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 68 67 72 70 20 66 69 6c 65 20 22 25 73 printf('Failed.to.chgrp.file."%s
f4680 22 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a ".',.$file),.0,.null,.$file);.}.
f46a0 7d 0a 7d 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 }.}.}............public.function
f46c0 20 72 65 6e 61 6d 65 28 24 6f 72 69 67 69 6e 2c 20 24 74 61 72 67 65 74 2c 20 24 6f 76 65 72 77 .rename($origin,.$target,.$overw
f46e0 72 69 74 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 0a 20 69 66 20 28 21 24 6f 76 65 72 77 72 69 74 rite.=.false).{...if.(!$overwrit
f4700 65 20 26 26 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 72 e.&&.is_readable($target)).{.thr
f4720 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 61 6e 6e ow.new.IOException(sprintf('Cann
f4740 6f 74 20 72 65 6e 61 6d 65 20 62 65 63 61 75 73 65 20 74 68 65 20 74 61 72 67 65 74 20 22 25 73 ot.rename.because.the.target."%s
f4760 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 74 61 72 67 65 74 29 2c 20 30 2c ".already.exists.',.$target),.0,
f4780 20 6e 75 6c 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d .null,.$target);.}..if.(true.!==
f47a0 20 40 72 65 6e 61 6d 65 28 24 6f 72 69 67 69 6e 2c 20 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 .@rename($origin,.$target)).{.th
f47c0 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 61 6e row.new.IOException(sprintf('Can
f47e0 6e 6f 74 20 72 65 6e 61 6d 65 20 22 25 73 22 20 74 6f 20 22 25 73 22 2e 27 2c 20 24 6f 72 69 67 not.rename."%s".to."%s".',.$orig
f4800 69 6e 2c 20 24 74 61 72 67 65 74 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 74 61 72 67 65 74 29 3b in,.$target),.0,.null,.$target);
f4820 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 .}.}...........public.function.s
f4840 79 6d 6c 69 6e 6b 28 24 6f 72 69 67 69 6e 44 69 72 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 ymlink($originDir,.$targetDir,.$
f4860 63 6f 70 79 4f 6e 57 69 6e 64 6f 77 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 27 5c 5c copyOnWindows.=.false).{.if.('\\
f4880 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 26 26 20 24 63 6f '.===.DIRECTORY_SEPARATOR.&&.$co
f48a0 70 79 4f 6e 57 69 6e 64 6f 77 73 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 69 72 72 6f 72 28 24 6f 72 pyOnWindows).{.$this->mirror($or
f48c0 69 67 69 6e 44 69 72 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d iginDir,.$targetDir);..return;.}
f48e0 0a 0a 24 74 68 69 73 2d 3e 6d 6b 64 69 72 28 64 69 72 6e 61 6d 65 28 24 74 61 72 67 65 74 44 69 ..$this->mkdir(dirname($targetDi
f4900 72 29 29 3b 0a 0a 24 6f 6b 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 r));..$ok.=.false;.if.(is_link($
f4920 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a 69 66 20 28 72 65 61 64 6c 69 6e 6b 28 24 74 61 72 67 targetDir)).{.if.(readlink($targ
f4940 65 74 44 69 72 29 20 21 3d 20 24 6f 72 69 67 69 6e 44 69 72 29 20 7b 0a 24 74 68 69 73 2d 3e 72 etDir).!=.$originDir).{.$this->r
f4960 65 6d 6f 76 65 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 6b 20 emove($targetDir);.}.else.{.$ok.
f4980 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 6f 6b 20 26 26 20 74 72 75 65 20 21 3d =.true;.}.}..if.(!$ok.&&.true.!=
f49a0 3d 20 40 73 79 6d 6c 69 6e 6b 28 24 6f 72 69 67 69 6e 44 69 72 2c 20 24 74 61 72 67 65 74 44 69 =.@symlink($originDir,.$targetDi
f49c0 72 29 29 20 7b 0a 24 72 65 70 6f 72 74 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 r)).{.$report.=.error_get_last()
f49e0 3b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 72 74 29 29 20 7b 0a 69 66 20 28 27 ;.if.(is_array($report)).{.if.('
f4a00 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 20 26 26 20 66 \\'.===.DIRECTORY_SEPARATOR.&&.f
f4a20 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 70 6f 72 74 5b 27 6d 65 73 73 61 67 65 alse.!==.strpos($report['message
f4a40 27 5d 2c 20 27 65 72 72 6f 72 20 63 6f 64 65 28 31 33 31 34 29 27 29 29 20 7b 0a 74 68 72 6f 77 '],.'error.code(1314)')).{.throw
f4a60 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 63 72 65 61 .new.IOException('Unable.to.crea
f4a80 74 65 20 73 79 6d 6c 69 6e 6b 20 64 75 65 20 74 6f 20 65 72 72 6f 72 20 63 6f 64 65 20 31 33 31 te.symlink.due.to.error.code.131
f4aa0 34 3a 20 5c 27 41 20 72 65 71 75 69 72 65 64 20 70 72 69 76 69 6c 65 67 65 20 69 73 20 6e 6f 74 4:.\'A.required.privilege.is.not
f4ac0 20 68 65 6c 64 20 62 79 20 74 68 65 20 63 6c 69 65 6e 74 5c 27 2e 20 44 6f 20 79 6f 75 20 68 61 .held.by.the.client\'..Do.you.ha
f4ae0 76 65 20 74 68 65 20 72 65 71 75 69 72 65 64 20 41 64 6d 69 6e 69 73 74 72 61 74 6f 72 2d 72 69 ve.the.required.Administrator-ri
f4b00 67 68 74 73 3f 27 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a ghts?',.0,.null,.$targetDir);.}.
f4b20 7d 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 }.throw.new.IOException(sprintf(
f4b40 27 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 20 73 79 6d 62 6f 6c 69 63 20 6c 69 6e 6b 20 'Failed.to.create.symbolic.link.
f4b60 66 72 6f 6d 20 22 25 73 22 20 74 6f 20 22 25 73 22 2e 27 2c 20 24 6f 72 69 67 69 6e 44 69 72 2c from."%s".to."%s".',.$originDir,
f4b80 20 24 74 61 72 67 65 74 44 69 72 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 74 61 72 67 65 74 44 69 .$targetDir),.0,.null,.$targetDi
f4ba0 72 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 6f 6e r);.}.}..........public.function
f4bc0 20 6d 61 6b 65 50 61 74 68 52 65 6c 61 74 69 76 65 28 24 65 6e 64 50 61 74 68 2c 20 24 73 74 61 .makePathRelative($endPath,.$sta
f4be0 72 74 50 61 74 68 29 0a 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f rtPath).{...if.('\\'.===.DIRECTO
f4c00 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 65 6e 64 50 61 74 68 20 3d 20 73 74 72 5f 72 RY_SEPARATOR).{.$endPath.=.str_r
f4c20 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 27 2f 27 2c 20 24 65 6e 64 50 61 74 68 29 3b 0a 24 73 74 eplace('\\',.'/',.$endPath);.$st
f4c40 61 72 74 50 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 27 2f 27 2c artPath.=.str_replace('\\',.'/',
f4c60 20 24 73 74 61 72 74 50 61 74 68 29 3b 0a 7d 0a 0a 0a 20 24 73 74 61 72 74 50 61 74 68 41 72 72 .$startPath);.}....$startPathArr
f4c80 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 74 72 69 6d 28 24 73 74 61 72 74 50 61 74 68 2c .=.explode('/',.trim($startPath,
f4ca0 20 27 2f 27 29 29 3b 0a 24 65 6e 64 50 61 74 68 41 72 72 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f .'/'));.$endPathArr.=.explode('/
f4cc0 27 2c 20 74 72 69 6d 28 24 65 6e 64 50 61 74 68 2c 20 27 2f 27 29 29 3b 0a 0a 0a 20 24 69 6e 64 ',.trim($endPath,.'/'));....$ind
f4ce0 65 78 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 73 74 61 72 74 50 61 74 68 41 ex.=.0;.while.(isset($startPathA
f4d00 72 72 5b 24 69 6e 64 65 78 5d 29 20 26 26 20 69 73 73 65 74 28 24 65 6e 64 50 61 74 68 41 72 72 rr[$index]).&&.isset($endPathArr
f4d20 5b 24 69 6e 64 65 78 5d 29 20 26 26 20 24 73 74 61 72 74 50 61 74 68 41 72 72 5b 24 69 6e 64 65 [$index]).&&.$startPathArr[$inde
f4d40 78 5d 20 3d 3d 3d 20 24 65 6e 64 50 61 74 68 41 72 72 5b 24 69 6e 64 65 78 5d 29 20 7b 0a 2b 2b x].===.$endPathArr[$index]).{.++
f4d60 24 69 6e 64 65 78 3b 0a 7d 0a 0a 0a 20 24 64 65 70 74 68 20 3d 20 63 6f 75 6e 74 28 24 73 74 61 $index;.}....$depth.=.count($sta
f4d80 72 74 50 61 74 68 41 72 72 29 20 2d 20 24 69 6e 64 65 78 3b 0a 0a 0a 20 69 66 20 28 27 2f 27 20 rtPathArr).-.$index;....if.('/'.
f4da0 3d 3d 3d 20 24 73 74 61 72 74 50 61 74 68 5b 30 5d 20 26 26 20 30 20 3d 3d 3d 20 24 69 6e 64 65 ===.$startPath[0].&&.0.===.$inde
f4dc0 78 20 26 26 20 31 20 3d 3d 3d 20 24 64 65 70 74 68 29 20 7b 0a 24 74 72 61 76 65 72 73 65 72 20 x.&&.1.===.$depth).{.$traverser.
f4de0 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 72 61 76 65 72 73 65 72 20 3d 20 73 74 =.'';.}.else.{...$traverser.=.st
f4e00 72 5f 72 65 70 65 61 74 28 27 2e 2e 2f 27 2c 20 24 64 65 70 74 68 29 3b 0a 7d 0a 0a 24 65 6e 64 r_repeat('../',.$depth);.}..$end
f4e20 50 61 74 68 52 65 6d 61 69 6e 64 65 72 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 61 72 72 PathRemainder.=.implode('/',.arr
f4e40 61 79 5f 73 6c 69 63 65 28 24 65 6e 64 50 61 74 68 41 72 72 2c 20 24 69 6e 64 65 78 29 29 3b 0a ay_slice($endPathArr,.$index));.
f4e60 0a 0a 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 24 74 72 61 76 65 72 73 65 72 2e 28 27 ...$relativePath.=.$traverser.('
f4e80 27 20 21 3d 3d 20 24 65 6e 64 50 61 74 68 52 65 6d 61 69 6e 64 65 72 20 3f 20 24 65 6e 64 50 61 '.!==.$endPathRemainder.?.$endPa
f4ea0 74 68 52 65 6d 61 69 6e 64 65 72 2e 27 2f 27 20 3a 20 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 27 thRemainder.'/'.:.'');..return.'
f4ec0 27 20 3d 3d 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3f 20 27 2e 2f 27 20 3a 20 24 72 65 '.===.$relativePath.?.'./'.:.$re
f4ee0 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 lativePath;.}................pub
f4f00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 69 72 72 6f 72 28 24 6f 72 69 67 69 6e 44 69 72 2c 20 lic.function.mirror($originDir,.
f4f20 24 74 61 72 67 65 74 44 69 72 2c 20 5c 54 72 61 76 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 $targetDir,.\Traversable.$iterat
f4f40 6f 72 20 3d 20 6e 75 6c 6c 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b or.=.null,.$options.=.array()).{
f4f60 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 72 74 72 69 6d 28 24 74 61 72 67 65 74 44 69 72 2c 20 .$targetDir.=.rtrim($targetDir,.
f4f80 27 2f 5c 5c 27 29 3b 0a 24 6f 72 69 67 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 '/\\');.$originDir.=.rtrim($orig
f4fa0 69 6e 44 69 72 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 65 78 69 inDir,.'/\\');....if.($this->exi
f4fc0 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 20 26 26 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e sts($targetDir).&&.isset($option
f4fe0 73 5b 27 64 65 6c 65 74 65 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 64 65 6c 65 74 65 s['delete']).&&.$options['delete
f5000 27 5d 29 20 7b 0a 24 64 65 6c 65 74 65 49 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f ']).{.$deleteIterator.=.$iterato
f5020 72 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 6c 65 74 65 49 74 65 72 61 74 6f 72 29 r;.if.(null.===.$deleteIterator)
f5040 20 7b 0a 24 66 6c 61 67 73 20 3d 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a .{.$flags.=.\FilesystemIterator:
f5060 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 24 64 65 6c 65 74 65 49 74 65 72 61 74 6f 72 20 3d 20 6e 65 :SKIP_DOTS;.$deleteIterator.=.ne
f5080 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 w.\RecursiveIteratorIterator(new
f50a0 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 24 74 61 .\RecursiveDirectoryIterator($ta
f50c0 72 67 65 74 44 69 72 2c 20 24 66 6c 61 67 73 29 2c 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 rgetDir,.$flags),.\RecursiveIter
f50e0 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 3b 0a 7d 0a 66 6f atorIterator::CHILD_FIRST);.}.fo
f5100 72 65 61 63 68 20 28 24 64 65 6c 65 74 65 49 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 reach.($deleteIterator.as.$file)
f5120 20 7b 0a 24 6f 72 69 67 69 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 74 61 72 67 65 74 .{.$origin.=.str_replace($target
f5140 44 69 72 2c 20 24 6f 72 69 67 69 6e 44 69 72 2c 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e Dir,.$originDir,.$file->getPathn
f5160 61 6d 65 28 29 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 65 78 69 73 74 73 28 24 6f 72 69 67 ame());.if.(!$this->exists($orig
f5180 69 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 3b 0a 7d 0a 7d in)).{.$this->remove($file);.}.}
f51a0 0a 7d 0a 0a 24 63 6f 70 79 4f 6e 57 69 6e 64 6f 77 73 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 .}..$copyOnWindows.=.false;.if.(
f51c0 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 63 6f 70 79 5f 6f 6e 5f 77 69 6e 64 6f 77 73 27 isset($options['copy_on_windows'
f51e0 5d 29 29 20 7b 0a 24 63 6f 70 79 4f 6e 57 69 6e 64 6f 77 73 20 3d 20 24 6f 70 74 69 6f 6e 73 5b ])).{.$copyOnWindows.=.$options[
f5200 27 63 6f 70 79 5f 6f 6e 5f 77 69 6e 64 6f 77 73 27 5d 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 'copy_on_windows'];.}..if.(null.
f5220 3d 3d 3d 20 24 69 74 65 72 61 74 6f 72 29 20 7b 0a 24 66 6c 61 67 73 20 3d 20 24 63 6f 70 79 4f ===.$iterator).{.$flags.=.$copyO
f5240 6e 57 69 6e 64 6f 77 73 20 3f 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a nWindows.?.\FilesystemIterator::
f5260 53 4b 49 50 5f 44 4f 54 53 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a SKIP_DOTS.|.\FilesystemIterator:
f5280 3a 46 4f 4c 4c 4f 57 5f 53 59 4d 4c 49 4e 4b 53 20 3a 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 :FOLLOW_SYMLINKS.:.\FilesystemIt
f52a0 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e erator::SKIP_DOTS;.$iterator.=.n
f52c0 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 ew.\RecursiveIteratorIterator(ne
f52e0 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 24 6f w.\RecursiveDirectoryIterator($o
f5300 72 69 67 69 6e 44 69 72 2c 20 24 66 6c 61 67 73 29 2c 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 riginDir,.$flags),.\RecursiveIte
f5320 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 7d 0a 0a 69 ratorIterator::SELF_FIRST);.}..i
f5340 66 20 28 24 74 68 69 73 2d 3e 65 78 69 73 74 73 28 24 6f 72 69 67 69 6e 44 69 72 29 29 20 7b 0a f.($this->exists($originDir)).{.
f5360 24 74 68 69 73 2d 3e 6d 6b 64 69 72 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 0a 66 6f 72 $this->mkdir($targetDir);.}..for
f5380 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 0a 24 74 61 72 each.($iterator.as.$file).{.$tar
f53a0 67 65 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 6f 72 69 67 69 6e 44 69 72 2c 20 24 74 get.=.str_replace($originDir,.$t
f53c0 61 72 67 65 74 44 69 72 2c 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b argetDir,.$file->getPathname());
f53e0 0a 0a 69 66 20 28 24 63 6f 70 79 4f 6e 57 69 6e 64 6f 77 73 29 20 7b 0a 69 66 20 28 69 73 5f 6c ..if.($copyOnWindows).{.if.(is_l
f5400 69 6e 6b 28 24 66 69 6c 65 29 20 7c 7c 20 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a ink($file).||.is_file($file)).{.
f5420 24 74 68 69 73 2d 3e 63 6f 70 79 28 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 2c 20 69 73 73 65 $this->copy($file,.$target,.isse
f5440 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6f 76 65 72 72 69 64 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f t($options['override']).?.$optio
f5460 6e 73 5b 27 6f 76 65 72 72 69 64 65 27 5d 20 3a 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 69 ns['override'].:.false);.}.elsei
f5480 66 20 28 69 73 5f 64 69 72 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 6b 64 69 72 f.(is_dir($file)).{.$this->mkdir
f54a0 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f ($target);.}.else.{.throw.new.IO
f54c0 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 67 75 65 Exception(sprintf('Unable.to.gue
f54e0 73 73 20 22 25 73 22 20 66 69 6c 65 20 74 79 70 65 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 ss."%s".file.type.',.$file),.0,.
f5500 6e 75 6c 6c 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 5f null,.$file);.}.}.else.{.if.(is_
f5520 6c 69 6e 6b 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 79 6d 6c 69 6e 6b 28 24 66 link($file)).{.$this->symlink($f
f5540 69 6c 65 2d 3e 67 65 74 4c 69 6e 6b 54 61 72 67 65 74 28 29 2c 20 24 74 61 72 67 65 74 29 3b 0a ile->getLinkTarget(),.$target);.
f5560 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 }.elseif.(is_dir($file)).{.$this
f5580 2d 3e 6d 6b 64 69 72 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 66 ->mkdir($target);.}.elseif.(is_f
f55a0 69 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 28 24 66 69 6c 65 2c ile($file)).{.$this->copy($file,
f55c0 20 24 74 61 72 67 65 74 2c 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6f 76 65 72 72 69 .$target,.isset($options['overri
f55e0 64 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6f 76 65 72 72 69 64 65 27 5d 20 3a 20 66 de']).?.$options['override'].:.f
f5600 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 alse);.}.else.{.throw.new.IOExce
f5620 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 67 75 65 73 73 20 22 ption(sprintf('Unable.to.guess."
f5640 25 73 22 20 66 69 6c 65 20 74 79 70 65 2e 27 2c 20 24 66 69 6c 65 29 2c 20 30 2c 20 6e 75 6c 6c %s".file.type.',.$file),.0,.null
f5660 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ,.$file);.}.}.}.}.........public
f5680 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 66 69 6c 65 29 0a .function.isAbsolutePath($file).
f56a0 7b 0a 72 65 74 75 72 6e 20 28 73 74 72 73 70 6e 28 24 66 69 6c 65 2c 20 27 2f 5c 5c 27 2c 20 30 {.return.(strspn($file,.'/\\',.0
f56c0 2c 20 31 29 0a 7c 7c 20 28 73 74 72 6c 65 6e 28 24 66 69 6c 65 29 20 3e 20 33 20 26 26 20 63 74 ,.1).||.(strlen($file).>.3.&&.ct
f56e0 79 70 65 5f 61 6c 70 68 61 28 24 66 69 6c 65 5b 30 5d 29 0a 26 26 20 73 75 62 73 74 72 28 24 66 ype_alpha($file[0]).&&.substr($f
f5700 69 6c 65 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a 27 0a 26 26 20 28 73 74 72 73 70 6e 28 24 66 ile,.1,.1).===.':'.&&.(strspn($f
f5720 69 6c 65 2c 20 27 2f 5c 5c 27 2c 20 32 2c 20 31 29 29 0a 29 0a 7c 7c 20 6e 75 6c 6c 20 21 3d 3d ile,.'/\\',.2,.1)).).||.null.!==
f5740 20 70 61 72 73 65 5f 75 72 6c 28 24 66 69 6c 65 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 4d 45 .parse_url($file,.PHP_URL_SCHEME
f5760 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ).);.}............public.functio
f5780 6e 20 64 75 6d 70 46 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 6f 6e 74 65 6e 74 2c 20 n.dumpFile($filename,.$content,.
f57a0 24 6d 6f 64 65 20 3d 20 30 36 36 36 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 $mode.=.0666).{.$dir.=.dirname($
f57c0 66 69 6c 65 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b filename);..if.(!is_dir($dir)).{
f57e0 0a 24 74 68 69 73 2d 3e 6d 6b 64 69 72 28 24 64 69 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 .$this->mkdir($dir);.}.elseif.(!
f5800 69 73 5f 77 72 69 74 61 62 6c 65 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 is_writable($dir)).{.throw.new.I
f5820 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 77 72 OException(sprintf('Unable.to.wr
f5840 69 74 65 20 74 6f 20 74 68 65 20 22 25 73 22 20 64 69 72 65 63 74 6f 72 79 2e 27 2c 20 24 64 69 ite.to.the."%s".directory.',.$di
f5860 72 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 64 69 72 29 3b 0a 7d 0a 0a 24 74 6d 70 46 69 6c 65 20 r),.0,.null,.$dir);.}..$tmpFile.
f5880 3d 20 74 65 6d 70 6e 61 6d 28 24 64 69 72 2c 20 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 6e 61 =.tempnam($dir,.basename($filena
f58a0 6d 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 40 66 69 6c 65 5f 70 75 74 5f 63 me));..if.(false.===.@file_put_c
f58c0 6f 6e 74 65 6e 74 73 28 24 74 6d 70 46 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 74 ontents($tmpFile,.$content)).{.t
f58e0 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 hrow.new.IOException(sprintf('Fa
f5900 69 6c 65 64 20 74 6f 20 77 72 69 74 65 20 66 69 6c 65 20 22 25 73 22 2e 27 2c 20 24 66 69 6c 65 iled.to.write.file."%s".',.$file
f5920 6e 61 6d 65 29 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 name),.0,.null,.$filename);.}..$
f5940 74 68 69 73 2d 3e 72 65 6e 61 6d 65 28 24 74 6d 70 46 69 6c 65 2c 20 24 66 69 6c 65 6e 61 6d 65 this->rename($tmpFile,.$filename
f5960 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 69 ,.true);.if.(null.!==.$mode).{.i
f5980 66 20 28 66 75 6e 63 5f 6e 75 6d 5f 61 72 67 73 28 29 20 3e 20 32 29 20 7b 0a 40 74 72 69 67 67 f.(func_num_args().>.2).{.@trigg
f59a0 65 72 5f 65 72 72 6f 72 28 27 53 75 70 70 6f 72 74 20 66 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 er_error('Support.for.modifying.
f59c0 66 69 6c 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 73 file.permissions.is.deprecated.s
f59e0 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 33 2e 31 32 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 ince.version.2.3.12.and.will.be.
f5a00 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 removed.in.3.0.',.E_USER_DEPRECA
f5a20 54 45 44 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 68 6d 6f 64 28 24 66 69 6c 65 6e 61 6d 65 2c TED);.}..$this->chmod($filename,
f5a40 20 24 6d 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .$mode);.}.}.......private.funct
f5a60 69 6f 6e 20 74 6f 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 0a 7b 0a 69 66 20 28 21 24 66 ion.toIterator($files).{.if.(!$f
f5a80 69 6c 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 29 20 7b 0a iles.instanceof.\Traversable).{.
f5aa0 24 66 69 6c 65 73 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 28 69 73 5f 61 72 72 $files.=.new.\ArrayObject(is_arr
f5ac0 61 79 28 24 66 69 6c 65 73 29 20 3f 20 24 66 69 6c 65 73 20 3a 20 61 72 72 61 79 28 24 66 69 6c ay($files).?.$files.:.array($fil
f5ae0 65 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 73 3b 0a 7d 0a 7d 0a 43 6f 70 79 es));.}..return.$files;.}.}.Copy
f5b00 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 6e 20 50 6f 74 65 6e right.(c).2004-2015.Fabien.Poten
f5b20 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 79 20 67 72 61 6e 74 cier..Permission.is.hereby.grant
f5b40 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f ed,.free.of.charge,.to.any.perso
f5b60 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 n.obtaining.a.copy.of.this.softw
f5b80 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e are.and.associated.documentation
f5ba0 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c .files.(the."Software"),.to.deal
f5bc0 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 .in.the.Software.without.restric
f5be0 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 tion,.including.without.limitati
f5c00 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 on.the.rights.to.use,.copy,.modi
f5c20 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 fy,.merge,.publish,.distribute,.
f5c40 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f sublicense,.and/or.sell.copies.o
f5c60 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 f.the.Software,.and.to.permit.pe
f5c80 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 rsons.to.whom.the.Software.is.fu
f5ca0 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 rnished.to.do.so,.subject.to.the
f5cc0 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 .following.conditions:..The.abov
f5ce0 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d e.copyright.notice.and.this.perm
f5d00 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 ission.notice.shall.be.included.
f5d20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 in.all.copies.or.substantial.por
f5d40 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 tions.of.the.Software...THE.SOFT
f5d60 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 WARE.IS.PROVIDED."AS.IS",.WITHOU
f5d80 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 T.WARRANTY.OF.ANY.KIND,.EXPRESS.
f5da0 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 OR.IMPLIED,.INCLUDING.BUT.NOT.LI
f5dc0 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 MITED.TO.THE.WARRANTIES.OF.MERCH
f5de0 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 ANTABILITY,.FITNESS.FOR.A.PARTIC
f5e00 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 ULAR.PURPOSE.AND.NONINFRINGEMENT
f5e20 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 ..IN.NO.EVENT.SHALL.THE.AUTHORS.
f5e40 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 OR.COPYRIGHT.HOLDERS.BE.LIABLE.F
f5e60 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c OR.ANY.CLAIM,.DAMAGES.OR.OTHER.L
f5e80 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f IABILITY,.WHETHER.IN.AN.ACTION.O
f5ea0 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 F.CONTRACT,.TORT.OR.OTHERWISE,.A
f5ec0 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 RISING.FROM,.OUT.OF.OR.IN.CONNEC
f5ee0 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 TION.WITH.THE.SOFTWARE.OR.THE.US
f5f00 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 E.OR.OTHER.DEALINGS.IN.THE.SOFTW
f5f20 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 73 70 61 63 65 20 53 ARE..<?php...........namespace.S
f5f40 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 75 73 ymfony\Component\Filesystem;..us
f5f60 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6c 65 73 79 73 74 65 6d 5c 45 e.Symfony\Component\Filesystem\E
f5f80 78 63 65 70 74 69 6f 6e 5c 49 4f 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a xception\IOException;...........
f5fa0 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 63 6b 48 61 6e 64 6c 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 ....class.LockHandler.{.private.
f5fc0 24 66 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 6e 64 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 $file;.private.$handle;........p
f5fe0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 ublic.function.__construct($name
f6000 2c 20 24 6c 6f 63 6b 50 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6c 6f 63 6b 50 61 74 68 20 ,.$lockPath.=.null).{.$lockPath.
f6020 3d 20 24 6c 6f 63 6b 50 61 74 68 20 3f 3a 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 =.$lockPath.?:.sys_get_temp_dir(
f6040 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 6c 6f 63 6b 50 61 74 68 29 29 20 7b 0a 24 66 );..if.(!is_dir($lockPath)).{.$f
f6060 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 6d 6b 64 69 72 s.=.new.Filesystem();.$fs->mkdir
f6080 28 24 6c 6f 63 6b 50 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 ($lockPath);.}..if.(!is_writable
f60a0 28 24 6c 6f 63 6b 50 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 ($lockPath)).{.throw.new.IOExcep
f60c0 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 22 25 73 22 tion(sprintf('The.directory."%s"
f60e0 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 2e 27 2c 20 24 6c 6f 63 6b 50 61 74 68 29 2c 20 .is.not.writable.',.$lockPath),.
f6100 30 2c 20 6e 75 6c 6c 2c 20 24 6c 6f 63 6b 50 61 74 68 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 0,.null,.$lockPath);.}..$this->f
f6120 69 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 2f 73 66 2e 25 73 2e 25 73 2e 6c 6f 63 6b 27 ile.=.sprintf('%s/sf.%s.%s.lock'
f6140 2c 20 24 6c 6f 63 6b 50 61 74 68 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 61 2d ,.$lockPath,.preg_replace('/[^a-
f6160 7a 30 2d 39 5c 2e 5f 2d 5d 2b 2f 69 27 2c 20 27 2d 27 2c 20 24 6e 61 6d 65 29 2c 20 68 61 73 68 z0-9\._-]+/i',.'-',.$name),.hash
f6180 28 27 73 68 61 32 35 36 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ('sha256',.$name));.}...........
f61a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 28 24 62 6c 6f 63 6b 69 6e 67 20 3d public.function.lock($blocking.=
f61c0 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 6e 64 6c 65 29 20 7b 0a 72 .false).{.if.($this->handle).{.r
f61e0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 65 72 72 6f 72 4c 65 76 65 6c 20 3d 20 65 eturn.true;.}....$errorLevel.=.e
f6200 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 30 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e rror_reporting(0);.set_error_han
f6220 64 6c 65 72 28 27 76 61 72 5f 64 75 6d 70 27 2c 20 30 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 dler('var_dump',.0);..if.(!$this
f6240 2d 3e 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 27 72 ->handle.=.fopen($this->file,.'r
f6260 27 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 ')).{.if.($this->handle.=.fopen(
f6280 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 27 78 27 29 29 20 7b 0a 63 68 6d 6f 64 28 24 74 68 69 73 $this->file,.'x')).{.chmod($this
f62a0 2d 3e 66 69 6c 65 2c 20 30 34 34 34 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d ->file,.0444);.}.elseif.(!$this-
f62c0 3e 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 27 72 27 >handle.=.fopen($this->file,.'r'
f62e0 29 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 29 3b 20 0a 20 24 74 68 69 73 2d 3e 68 61 6e 64 6c )).{.usleep(100);...$this->handl
f6300 65 20 3d 20 66 6f 70 65 6e 28 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 27 72 27 29 3b 0a 7d 0a 7d e.=.fopen($this->file,.'r');.}.}
f6320 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 65 72 72 6f 72 5f .restore_error_handler();.error_
f6340 72 65 70 6f 72 74 69 6e 67 28 24 65 72 72 6f 72 4c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 74 reporting($errorLevel);..if.(!$t
f6360 68 69 73 2d 3e 68 61 6e 64 6c 65 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 his->handle).{.$error.=.error_ge
f6380 74 5f 6c 61 73 74 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 49 4f 45 78 63 65 70 74 69 6f 6e 28 t_last();.throw.new.IOException(
f63a0 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 2c 20 30 2c 20 6e 75 6c 6c 2c 20 24 74 68 69 $error['message'],.0,.null,.$thi
f63c0 73 2d 3e 66 69 6c 65 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 21 66 6c 6f 63 6b 28 24 74 68 69 s->file);.}......if.(!flock($thi
f63e0 73 2d 3e 68 61 6e 64 6c 65 2c 20 4c 4f 43 4b 5f 45 58 20 7c 20 28 24 62 6c 6f 63 6b 69 6e 67 20 s->handle,.LOCK_EX.|.($blocking.
f6400 3f 20 30 20 3a 20 4c 4f 43 4b 5f 4e 42 29 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d ?.0.:.LOCK_NB))).{.fclose($this-
f6420 3e 68 61 6e 64 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 68 61 6e 64 6c 65 20 3d 20 6e 75 6c 6c 3b 0a >handle);.$this->handle.=.null;.
f6440 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d .return.false;.}..return.true;.}
f6460 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 65 61 73 65 28 29 0a 7b .....public.function.release().{
f6480 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 6e 64 6c 65 29 20 7b 0a 66 6c 6f 63 6b 28 24 74 68 69 .if.($this->handle).{.flock($thi
f64a0 73 2d 3e 68 61 6e 64 6c 65 2c 20 4c 4f 43 4b 5f 55 4e 20 7c 20 4c 4f 43 4b 5f 4e 42 29 3b 0a 66 s->handle,.LOCK_UN.|.LOCK_NB);.f
f64c0 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 68 61 6e 64 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 68 61 6e close($this->handle);.$this->han
f64e0 64 6c 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a dle.=.null;.}.}.}.<?php.........
f6500 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
f6520 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 nder\Adapter;.......abstract.cla
f6540 73 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 64 ss.AbstractAdapter.implements.Ad
f6560 61 70 74 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 66 6f 6c 6c apterInterface.{.protected.$foll
f6580 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 6f 64 65 owLinks.=.false;.protected.$mode
f65a0 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 70 .=.0;.protected.$minDepth.=.0;.p
f65c0 72 6f 74 65 63 74 65 64 20 24 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 rotected.$maxDepth.=.PHP_INT_MAX
f65e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a ;.protected.$exclude.=.array();.
f6600 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 protected.$names.=.array();.prot
f6620 65 63 74 65 64 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 ected.$notNames.=.array();.prote
f6640 63 74 65 64 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 cted.$contains.=.array();.protec
f6660 74 65 64 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 ted.$notContains.=.array();.prot
f6680 65 63 74 65 64 20 24 73 69 7a 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ected.$sizes.=.array();.protecte
f66a0 64 20 24 64 61 74 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 66 d.$dates.=.array();.protected.$f
f66c0 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 72 ilters.=.array();.protected.$sor
f66e0 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 74 68 73 20 3d 20 61 72 t.=.false;.protected.$paths.=.ar
f6700 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 50 61 74 68 73 20 3d 20 61 72 72 ray();.protected.$notPaths.=.arr
f6720 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c ay();.protected.$ignoreUnreadabl
f6740 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 24 eDirs.=.false;..private.static.$
f6760 61 72 65 53 75 70 70 6f 72 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c areSupported.=.array();.....publ
f6780 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 6f 72 74 65 64 28 29 0a 7b 0a 24 6e 61 6d ic.function.isSupported().{.$nam
f67a0 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 61 72 72 61 e.=.$this->getName();..if.(!arra
f67c0 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6e 61 6d 65 2c 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 y_key_exists($name,.self::$areSu
f67e0 70 70 6f 72 74 65 64 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b pported)).{.self::$areSupported[
f6800 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a $name].=.$this->canBeUsed();.}..
f6820 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b 24 6e 61 6d 65 return.self::$areSupported[$name
f6840 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 73 65 74 46 6f 6c 6c ];.}.....public.function.setFoll
f6860 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 owLinks($followLinks).{.$this->f
f6880 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 3b 0a 0a 72 65 74 75 ollowLinks.=.$followLinks;..retu
f68a0 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 20 rn.$this;.}.....public.function.
f68c0 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 setMode($mode).{.$this->mode.=.$
f68e0 6d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 mode;..return.$this;.}.....publi
f6900 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 70 74 68 73 28 61 72 72 61 79 20 24 64 65 70 74 c.function.setDepths(array.$dept
f6920 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 hs).{.$this->minDepth.=.0;.$this
f6940 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 0a 66 6f 72 65 61 ->maxDepth.=.PHP_INT_MAX;..forea
f6960 63 68 20 28 24 64 65 70 74 68 73 20 61 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 29 20 7b 0a 73 77 ch.($depths.as.$comparator).{.sw
f6980 69 74 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 itch.($comparator->getOperator()
f69a0 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 ).{.case.'>':.$this->minDepth.=.
f69c0 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 $comparator->getTarget().+.1;.br
f69e0 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 eak;.case.'>=':.$this->minDepth.
f6a00 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 =.$comparator->getTarget();.brea
f6a20 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 k;.case.'<':.$this->maxDepth.=.$
f6a40 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 3b 0a 62 72 65 comparator->getTarget().-.1;.bre
f6a60 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d ak;.case.'<=':.$this->maxDepth.=
f6a80 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b .$comparator->getTarget();.break
f6aa0 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 74 68 ;.default:.$this->minDepth.=.$th
f6ac0 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 54 is->maxDepth.=.$comparator->getT
f6ae0 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a arget();.}.}..return.$this;.}...
f6b00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 28 61 72 72 ..public.function.setExclude(arr
f6b20 61 79 20 24 65 78 63 6c 75 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 ay.$exclude).{.$this->exclude.=.
f6b40 24 65 78 63 6c 75 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 $exclude;..return.$this;.}.....p
f6b60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e ublic.function.setNames(array.$n
f6b80 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 3d 20 24 6e 61 6d 65 73 3b 0a 0a ames).{.$this->names.=.$names;..
f6ba0 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
f6bc0 69 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 ion.setNotNames(array.$notNames)
f6be0 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 20 3d 20 24 6e 6f 74 4e 61 6d 65 73 3b 0a .{.$this->notNames.=.$notNames;.
f6c00 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
f6c20 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 61 69 6e 73 tion.setContains(array.$contains
f6c40 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 3d 20 24 63 6f 6e 74 61 69 6e 73 3b ).{.$this->contains.=.$contains;
f6c60 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..return.$this;.}.....public.fun
f6c80 63 74 69 6f 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 6e 6f 74 43 ction.setNotContains(array.$notC
f6ca0 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 ontains).{.$this->notContains.=.
f6cc0 24 6e 6f 74 43 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 0a 0a $notContains;..return.$this;.}..
f6ce0 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 61 72 72 61 ...public.function.setSizes(arra
f6d00 79 20 24 73 69 7a 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 20 3d 20 24 73 69 7a 65 y.$sizes).{.$this->sizes.=.$size
f6d20 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
f6d40 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b unction.setDates(array.$dates).{
f6d60 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 20 3d 20 24 64 61 74 65 73 3b 0a 0a 72 65 74 75 72 6e 20 .$this->dates.=.$dates;..return.
f6d80 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 74 $this;.}.....public.function.set
f6da0 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d Filters(array.$filters).{.$this-
f6dc0 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 >filters.=.$filters;..return.$th
f6de0 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 53 6f 72 is;.}.....public.function.setSor
f6e00 74 28 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a t($sort).{.$this->sort.=.$sort;.
f6e20 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
f6e40 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 0a 7b 0a 24 74 68 tion.setPath(array.$paths).{.$th
f6e60 69 73 2d 3e 70 61 74 68 73 20 3d 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->paths.=.$paths;..return.$thi
f6e80 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 s;.}.....public.function.setNotP
f6ea0 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f ath(array.$notPaths).{.$this->no
f6ec0 74 50 61 74 68 73 20 3d 20 24 6e 6f 74 50 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 tPaths.=.$notPaths;..return.$thi
f6ee0 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 67 6e 6f 72 65 55 s;.}.....public.function.ignoreU
f6f00 6e 72 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 nreadableDirs($ignore.=.true).{.
f6f20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 62 $this->ignoreUnreadableDirs.=.(b
f6f40 6f 6f 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 ool).$ignore;..return.$this;.}..
f6f60 0a 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
f6f80 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a nction.canBeUsed();.}.<?php.....
f6fa0 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
f6fc0 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Finder\Adapter;..use.Symfony\C
f6fe0 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 5c 41 63 63 65 73 73 omponent\Finder\Exception\Access
f7000 44 65 6e 69 65 64 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 DeniedException;.use.Symfony\Com
f7020 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 ponent\Finder\Iterator;.use.Symf
f7040 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c ony\Component\Finder\Shell\Shell
f7060 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 ;.use.Symfony\Component\Finder\E
f7080 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e xpression\Expression;.use.Symfon
f70a0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 y\Component\Finder\Shell\Command
f70c0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 ;.use.Symfony\Component\Finder\C
f70e0 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 omparator\NumberComparator;.use.
f7100 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 Symfony\Component\Finder\Compara
f7120 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 tor\DateComparator;.......abstra
f7140 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 ct.class.AbstractFindAdapter.ext
f7160 65 6e 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 72 6f 74 65 63 ends.AbstractAdapter.{....protec
f7180 74 65 64 20 24 73 68 65 6c 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ted.$shell;.....public.function.
f71a0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 68 65 6c 6c 20 3d 20 6e __construct().{.$this->shell.=.n
f71c0 65 77 20 53 68 65 6c 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ew.Shell();.}.....public.functio
f71e0 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 7b 0a 0a 20 24 64 n.searchInDirectory($dir).{...$d
f7200 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 64 69 72 29 3b 0a 0a 0a 20 69 66 20 28 49 74 65 72 ir.=.realpath($dir);....if.(Iter
f7220 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c ator\FileTypeFilterIterator::ONL
f7240 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 Y_DIRECTORIES.===.$this->mode.&&
f7260 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 2d 3e 6e 6f 74 43 .($this->contains.||.$this->notC
f7280 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c ontains)).{.return.new.Iterator\
f72a0 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 2c 20 24 64 69 72 29 FilePathsIterator(array(),.$dir)
f72c0 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 43 6f 6d 6d 61 6e 64 3a 3a 63 72 65 61 74 65 28 ;.}..$command.=.Command::create(
f72e0 29 3b 0a 24 66 69 6e 64 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 );.$find.=.$this->buildFindComma
f7300 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e nd($command,.$dir);..if.($this->
f7320 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 66 6f 6c 6c followLinks).{.$find->add('-foll
f7340 6f 77 27 29 3b 0a 7d 0a 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d 69 6e 64 65 70 74 68 27 29 ow');.}..$find->add('-mindepth')
f7360 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 2b 20 31 29 3b 0a 0a 69 66 20 ->add($this->minDepth.+.1);..if.
f7380 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 (PHP_INT_MAX.!==.$this->maxDepth
f73a0 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d 61 78 64 65 70 74 68 27 29 2d 3e 61 64 64 ).{.$find->add('-maxdepth')->add
f73c0 28 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 49 74 ($this->maxDepth.+.1);.}..if.(It
f73e0 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f erator\FileTypeFilterIterator::O
f7400 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 NLY_DIRECTORIES.===.$this->mode)
f7420 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 70 65 20 64 27 29 3b 0a 7d 20 65 6c 73 65 .{.$find->add('-type.d');.}.else
f7440 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 65 72 49 74 65 72 61 if.(Iterator\FileTypeFilterItera
f7460 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 tor::ONLY_FILES.===.$this->mode)
f7480 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 70 65 20 66 27 29 3b 0a 7d 0a 0a 24 74 68 .{.$find->add('-type.f');.}..$th
f74a0 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,.$
f74c0 74 68 69 73 2d 3e 6e 61 6d 65 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 this->names);.$this->buildNamesF
f74e0 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 2c iltering($find,.$this->notNames,
f7500 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 .true);.$this->buildPathsFilteri
f7520 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 73 29 3b 0a 24 ng($find,.$dir,.$this->paths);.$
f7540 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c this->buildPathsFiltering($find,
f7560 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 2c 20 74 72 75 65 29 3b 0a 24 .$dir,.$this->notPaths,.true);.$
f7580 74 68 69 73 2d 3e 62 75 69 6c 64 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c this->buildSizesFiltering($find,
f75a0 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 61 74 65 .$this->sizes);.$this->buildDate
f75c0 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b sFiltering($find,.$this->dates);
f75e0 0a 0a 24 75 73 65 47 72 65 70 20 3d 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 ..$useGrep.=.$this->shell->testC
f7600 6f 6d 6d 61 6e 64 28 27 67 72 65 70 27 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e ommand('grep').&&.$this->shell->
f7620 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 78 61 72 67 73 27 29 3b 0a 24 75 73 65 53 6f 72 74 20 3d testCommand('xargs');.$useSort.=
f7640 20 69 73 5f 69 6e 74 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 26 26 20 24 74 68 69 73 2d 3e 73 .is_int($this->sort).&&.$this->s
f7660 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 73 6f 72 74 27 29 20 26 26 20 24 74 68 hell->testCommand('sort').&&.$th
f7680 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 63 75 74 27 29 3b 0a 0a is->shell->testCommand('cut');..
f76a0 69 66 20 28 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 if.($useGrep.&&.($this->contains
f76c0 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 24 67 72 65 70 .||.$this->notContains)).{.$grep
f76e0 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 67 72 65 70 27 29 3b 0a 24 74 68 69 73 2d .=.$command->ins('grep');.$this-
f7700 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 70 2c 20 24 74 >buildContentFiltering($grep,.$t
f7720 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 his->contains);.$this->buildCont
f7740 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 24 67 72 65 70 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f entFiltering($grep,.$this->notCo
f7760 6e 74 61 69 6e 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 53 6f 72 74 29 20 ntains,.true);.}..if.($useSort).
f7780 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 {.$this->buildSorting($command,.
f77a0 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 45 72 $this->sort);.}..$command->setEr
f77c0 72 6f 72 48 61 6e 64 6c 65 72 28 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 rorHandler(.$this->ignoreUnreada
f77e0 62 6c 65 44 69 72 73 0a 0a 20 3f 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b bleDirs...?.function.($stderr).{
f7800 20 72 65 74 75 72 6e 3b 20 7d 0a 3a 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 .return;.}.:.function.($stderr).
f7820 7b 20 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 {.throw.new.AccessDeniedExceptio
f7840 6e 28 24 73 74 64 65 72 72 29 3b 20 7d 0a 29 3b 0a 0a 24 70 61 74 68 73 20 3d 20 24 74 68 69 73 n($stderr);.}.);..$paths.=.$this
f7860 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 75 6e 69 71 27 29 20 3f 20 24 ->shell->testCommand('uniq').?.$
f7880 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 7c 20 75 6e 69 71 27 29 2d 3e 65 78 65 63 75 74 65 28 command->add('|.uniq')->execute(
f78a0 29 20 3a 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 63 6f 6d 6d 61 6e 64 2d 3e 65 78 65 63 75 ).:.array_unique($command->execu
f78c0 74 65 28 29 29 3b 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 te());.$iterator.=.new.Iterator\
f78e0 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 28 24 70 61 74 68 73 2c 20 24 64 69 72 29 3b FilePathsIterator($paths,.$dir);
f7900 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f ..if.($this->exclude).{.$iterato
f7920 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 r.=.new.Iterator\ExcludeDirector
f7940 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 yFilterIterator($iterator,.$this
f7960 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 75 73 65 47 72 65 70 20 26 26 20 ->exclude);.}..if.(!$useGrep.&&.
f7980 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 2d 3e 6e 6f 74 43 6f ($this->contains.||.$this->notCo
f79a0 6e 74 61 69 6e 73 29 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 ntains)).{.$iterator.=.new.Itera
f79c0 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 74 6f 72 28 24 69 tor\FilecontentFilterIterator($i
f79e0 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 24 74 68 69 73 2d terator,.$this->contains,.$this-
f7a00 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 73 2d 3e 66 69 6c >notContains);.}..if.($this->fil
f7a20 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 ters).{.$iterator.=.new.Iterator
f7a40 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c \CustomFilterIterator($iterator,
f7a60 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 75 73 65 53 6f .$this->filters);.}..if.(!$useSo
f7a80 72 74 20 26 26 20 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 rt.&&.$this->sort).{.$iteratorAg
f7aa0 67 72 65 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 gregate.=.new.Iterator\SortableI
f7ac0 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b terator($iterator,.$this->sort);
f7ae0 0a 24 69 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 .$iterator.=.$iteratorAggregate-
f7b00 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 >getIterator();.}..return.$itera
f7b20 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 tor;.}.....protected.function.ca
f7b40 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d nBeUsed().{.return.$this->shell-
f7b60 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 66 69 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 >testCommand('find');.}........p
f7b80 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 61 rotected.function.buildFindComma
f7ba0 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 72 65 74 nd(Command.$command,.$dir).{.ret
f7bc0 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 69 6e 73 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 urn.$command.->ins('find').->add
f7be0 28 27 66 69 6e 64 20 27 29 0a 2d 3e 61 72 67 28 24 64 69 72 29 0a 2d 3e 61 64 64 28 27 2d 6e 6f ('find.').->arg($dir).->add('-no
f7c00 6c 65 61 66 27 29 3b 20 0a 20 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 leaf');...}.......private.functi
f7c20 6f 6e 20 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 on.buildNamesFiltering(Command.$
f7c40 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6e 61 6d 65 73 2c 20 24 6e 6f 74 20 3d 20 66 61 command,.array.$names,.$not.=.fa
f7c60 6c 73 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6e 61 6d 65 73 29 29 20 lse).{.if.(0.===.count($names)).
f7c80 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 {.return;.}..$command->add($not.
f7ca0 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 ?.'-not'.:.null)->cmd('(');..for
f7cc0 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 69 20 3d 3e 20 24 6e 61 6d 65 29 20 7b 0a 24 each.($names.as.$i.=>.$name).{.$
f7ce0 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 6e 61 6d 65 29 expr.=.Expression::create($name)
f7d00 3b 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 ;....if.($expr->isGlob().&&.$exp
f7d20 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a r->getGlob()->isExpandable()).{.
f7d40 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 65 28 24 65 78 70 72 $expr.=.Expression::create($expr
f7d60 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a ->getGlob()->toRegex(false));.}.
f7d80 0a 0a 20 0a 20 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 29 20 7b 0a 24 .......if.($expr->isRegex()).{.$
f7da0 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 72 65 67 65 regex.=.$expr->getRegex();.$rege
f7dc0 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 6c 61 67 28 x->prepend($regex->hasStartFlag(
f7de0 29 20 3f 20 27 2f 27 20 3a 20 27 2f 5b 5e 2f 5d 2a 27 29 0a 2d 3e 73 65 74 53 74 61 72 74 46 6c ).?.'/'.:.'/[^/]*').->setStartFl
f7e00 61 67 28 66 61 6c 73 65 29 0a 2d 3e 73 65 74 53 74 61 72 74 4a 6f 6b 65 72 28 74 72 75 65 29 0a ag(false).->setStartJoker(true).
f7e20 2d 3e 72 65 70 6c 61 63 65 4a 6f 6b 65 72 73 28 27 5b 5e 2f 5d 27 29 3b 0a 69 66 20 28 21 24 72 ->replaceJokers('[^/]');.if.(!$r
f7e40 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 20 7c 7c 20 24 72 65 67 65 78 2d 3e 68 61 egex->hasEndFlag().||.$regex->ha
f7e60 73 45 6e 64 4a 6f 6b 65 72 28 29 29 20 7b 0a 24 72 65 67 65 78 2d 3e 73 65 74 45 6e 64 4a 6f 6b sEndJoker()).{.$regex->setEndJok
f7e80 65 72 28 66 61 6c 73 65 29 2d 3e 61 70 70 65 6e 64 28 27 5b 5e 2f 5d 2a 27 29 3b 0a 7d 0a 7d 0a er(false)->append('[^/]*');.}.}.
f7ea0 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 27 2d 6f 72 27 20 3a .$command.->add($i.>.0.?.'-or'.:
f7ec0 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 65 78 28 29 0a 3f 20 .null).->add($expr->isRegex().?.
f7ee0 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 2d 72 65 ($expr->isCaseSensitive().?.'-re
f7f00 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 72 2d 3e 69 73 43 61 gex'.:.'-iregex').:.($expr->isCa
f7f20 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 6e 61 6d 65 27 20 3a 20 27 2d 69 6e 61 6d seSensitive().?.'-name'.:.'-inam
f7f40 65 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e e').).->arg($expr->renderPattern
f7f60 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 29 3b 0a 7d 0a 0a 0a ());.}..$command->cmd(')');.}...
f7f80 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 50 61 74 68 73 .....private.function.buildPaths
f7fa0 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 24 64 69 72 Filtering(Command.$command,.$dir
f7fc0 2c 20 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a ,.array.$paths,.$not.=.false).{.
f7fe0 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 70 61 74 68 73 29 29 20 7b 0a 72 65 74 75 72 if.(0.===.count($paths)).{.retur
f8000 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 n;.}..$command->add($not.?.'-not
f8020 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 '.:.null)->cmd('(');..foreach.($
f8040 70 61 74 68 73 20 61 73 20 24 69 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 72 20 3d 20 paths.as.$i.=>.$path).{.$expr.=.
f8060 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 Expression::create($path);....if
f8080 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 72 2d 3e 67 65 74 47 .($expr->isGlob().&&.$expr->getG
f80a0 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 65 78 70 72 20 3d lob()->isExpandable()).{.$expr.=
f80c0 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 2d 3e 67 65 74 47 6c .Expression::create($expr->getGl
f80e0 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 ob()->toRegex(false));.}....if.(
f8100 24 65 78 70 72 2d 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 $expr->isRegex()).{.$regex.=.$ex
f8120 70 72 2d 3e 67 65 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 pr->getRegex();.$regex->prepend(
f8140 24 72 65 67 65 78 2d 3e 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 20 3f 20 70 72 65 67 5f 71 75 $regex->hasStartFlag().?.preg_qu
f8160 6f 74 65 28 24 64 69 72 29 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3a 20 ote($dir).DIRECTORY_SEPARATOR.:.
f8180 27 2e 2a 27 29 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 72 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 '.*')->setEndJoker(!$regex->hasE
f81a0 6e 64 46 6c 61 67 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 70 72 2d 3e 70 72 65 70 65 ndFlag());.}.else.{.$expr->prepe
f81c0 6e 64 28 27 2a 27 29 2d 3e 61 70 70 65 6e 64 28 27 2a 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e nd('*')->append('*');.}..$comman
f81e0 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d d.->add($i.>.0.?.'-or'.:.null).-
f8200 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e >add($expr->isRegex().?.($expr->
f8220 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 isCaseSensitive().?.'-regex'.:.'
f8240 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 -iregex').:.($expr->isCaseSensit
f8260 69 76 65 28 29 20 3f 20 27 2d 70 61 74 68 27 20 3a 20 27 2d 69 70 61 74 68 27 29 0a 29 0a 2d 3e ive().?.'-path'.:.'-ipath').).->
f8280 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a arg($expr->renderPattern());.}..
f82a0 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 $command->cmd(')');.}......priva
f82c0 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 te.function.buildSizesFiltering(
f82e0 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a Command.$command,.array.$sizes).
f8300 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 69 7a 65 73 20 61 73 20 24 69 20 3d 3e 20 24 73 69 7a 65 {.foreach.($sizes.as.$i.=>.$size
f8320 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 ).{.$command->add($i.>.0.?.'-and
f8340 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 69 7a 65 2d 3e 67 65 74 4f 70 '.:.null);..switch.($size->getOp
f8360 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d erator()).{.case.'<=':.$command-
f8380 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 28 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 >add('-size.-'.($size->getTarget
f83a0 28 29 20 2b 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a ().+.1).'c');.break;.case.'>=':.
f83c0 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 28 24 73 69 7a 65 2d 3e $command->add('-size.+'.($size->
f83e0 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 getTarget().-.1).'c');.break;.ca
f8400 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e se.'>':.$command->add('-size.+'.
f8420 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 6b 3b 0a $size->getTarget().'c');.break;.
f8440 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 case.'!=':.$command->add('-size.
f8460 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 24 63 6f 6d -'.$size->getTarget().'c');.$com
f8480 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 mand->add('-size.+'.$size->getTa
f84a0 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 rget().'c');.break;.case.'<':.de
f84c0 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 24 fault:.$command->add('-size.-'.$
f84e0 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a size->getTarget().'c');.}.}.}...
f8500 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 61 74 65 73 46 69 ...private.function.buildDatesFi
f8520 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 72 61 79 20 ltering(Command.$command,.array.
f8540 24 64 61 74 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 65 73 20 61 73 20 24 69 20 $dates).{.foreach.($dates.as.$i.
f8560 3d 3e 20 24 64 61 74 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 =>.$date).{.$command->add($i.>.0
f8580 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 24 6d 69 6e 73 20 3d 20 28 69 6e 74 .?.'-and'.:.null);..$mins.=.(int
f85a0 29 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 20 2d 20 24 64 61 74 65 2d 3e 67 65 74 54 61 72 67 ).round((time().-.$date->getTarg
f85c0 65 74 28 29 29 20 2f 20 36 30 29 3b 0a 0a 69 66 20 28 30 20 3e 20 24 6d 69 6e 73 29 20 7b 0a 0a et())./.60);..if.(0.>.$mins).{..
f85e0 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 20 2d 6d 6d 69 6e 20 2d 30 27 29 3b 0a 0a 20 72 .$command->add('.-mmin.-0');...r
f8600 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 64 61 74 65 2d 3e 67 65 74 4f 70 65 72 eturn;.}..switch.($date->getOper
f8620 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 ator()).{.case.'<=':.$command->a
f8640 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 28 24 6d 69 6e 73 20 2d 20 31 29 29 3b 0a 62 72 65 61 6b dd('-mmin.+'.($mins.-.1));.break
f8660 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 6d 6d 69 ;.case.'>=':.$command->add('-mmi
f8680 6e 20 2d 27 2e 28 24 6d 69 6e 73 20 2b 20 31 29 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 n.-'.($mins.+.1));.break;.case.'
f86a0 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e >':.$command->add('-mmin.-'.$min
f86c0 73 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 6e 64 2d 3e s);.break;.case.'!=':.$command->
f86e0 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 2e 27 20 2d 6f 72 20 2d 6d 6d 69 6e 20 add('-mmin.+'.$mins.'.-or.-mmin.
f8700 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 -'.$mins);.break;.case.'<':.defa
f8720 75 6c 74 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 ult:.$command->add('-mmin.+'.$mi
f8740 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 ns);.}.}.}........private.functi
f8760 6f 6e 20 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 on.buildSorting(Command.$command
f8780 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 ,.$sort).{.$this->buildFormatSor
f87a0 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 61 62 ting($command,.$sort);.}......ab
f87c0 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 62 75 69 6c 64 46 stract.protected.function.buildF
f87e0 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 6e 64 2c 20 24 ormatSorting(Command.$command,.$
f8800 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 sort);.......abstract.protected.
f8820 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 function.buildContentFiltering(C
f8840 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 ommand.$command,.array.$contains
f8860 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ,.$not.=.false);.}.<?php........
f8880 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
f88a0 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 63 65 20 41 64 61 inder\Adapter;.....interface.Ada
f88c0 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 63 20 66 75 6e 63 pterInterface.{......public.func
f88e0 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 6e 6b 73 tion.setFollowLinks($followLinks
f8900 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 4d 6f 64 65 );.......public.function.setMode
f8920 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 74 69 6f 6e 20 73 ($mode);.......public.function.s
f8940 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 0a 0a 0a 0a 0a 0a etExclude(array.$exclude);......
f8960 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 28 61 72 72 61 79 .public.function.setDepths(array
f8980 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 6e 63 74 69 6f 6e .$depths);.......public.function
f89a0 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 0a 0a 0a 0a 0a 70 .setNames(array.$names);.......p
f89c0 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 72 72 61 79 ublic.function.setNotNames(array
f89e0 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 66 75 6e 63 74 69 .$notNames);.......public.functi
f8a00 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 61 69 6e 73 29 3b on.setContains(array.$contains);
f8a20 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 43 6f 6e .......public.function.setNotCon
f8a40 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 0a 0a 0a 0a 0a 0a tains(array.$notContains);......
f8a60 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 61 72 72 61 79 20 .public.function.setSizes(array.
f8a80 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 74 69 6f 6e 20 73 $sizes);.......public.function.s
f8aa0 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 0a 0a 0a 70 75 62 etDates(array.$dates);.......pub
f8ac0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 lic.function.setFilters(array.$f
f8ae0 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 74 69 6f 6e 20 73 ilters);.......public.function.s
f8b00 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 63 20 66 75 6e 63 etSort($sort);.......public.func
f8b20 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 3b 0a 0a 0a 0a 0a tion.setPath(array.$paths);.....
f8b40 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 74 68 28 61 72 72 ..public.function.setNotPath(arr
f8b60 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 63 20 66 75 6e 63 ay.$notPaths);.......public.func
f8b80 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 6e 6f 72 tion.ignoreUnreadableDirs($ignor
f8ba0 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 6e 63 74 69 6f 6e e.=.true);.......public.function
f8bc0 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 0a 0a 0a 0a 0a 0a .searchInDirectory($dir);.......
f8be0 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 64 28 29 3b 0a 0a public.function.isSupported();..
f8c00 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();.
f8c20 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
f8c40 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 75 ony\Component\Finder\Adapter;..u
f8c60 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 6c se.Symfony\Component\Finder\Shel
f8c80 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 46 l\Shell;.use.Symfony\Component\F
f8ca0 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 79 inder\Shell\Command;.use.Symfony
f8cc0 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 61 \Component\Finder\Iterator\Sorta
f8ce0 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 65 bleIterator;.use.Symfony\Compone
f8d00 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 3b nt\Finder\Expression\Expression;
f8d20 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 72 20 65 78 74 65 .......class.BsdFindAdapter.exte
f8d40 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 62 nds.AbstractFindAdapter.{....pub
f8d60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getName().{.return.
f8d80 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 64 20 66 75 6e 63 'bsd_find';.}.....protected.func
f8da0 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 69 6e 5f 61 72 72 tion.canBeUsed().{.return.in_arr
f8dc0 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 2c 20 61 72 72 61 ay($this->shell->getType(),.arra
f8de0 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 54 59 50 45 5f 44 y(Shell::TYPE_BSD,.Shell::TYPE_D
f8e00 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 65 64 28 29 3b 0a ARWIN)).&&.parent::canBeUsed();.
f8e20 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 6c 64 46 6f }.....protected.function.buildFo
f8e40 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 6e 64 2c 20 24 73 rmatSorting(Command.$command,.$s
f8e60 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 73 65 20 53 6f 72 ort).{.switch.($sort).{.case.Sor
f8e80 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f tableIterator::SORT_BY_NAME:.$co
f8ea0 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 20 73 6f 72 74 27 mmand->ins('sort')->add('|.sort'
f8ec0 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 74 65 72 61 74 6f );..return;.case.SortableIterato
f8ee0 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 20 27 25 48 54 27 r::SORT_BY_TYPE:.$format.=.'%HT'
f8f00 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 61 74 6f 72 3a 3a ;.break;.case.SortableIterator::
f8f20 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 72 6d 61 74 20 3d SORT_BY_ACCESSED_TIME:.$format.=
f8f40 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 65 49 74 65 72 61 .'%a';.break;.case.SortableItera
f8f60 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 0a 24 66 6f 72 6d tor::SORT_BY_CHANGED_TIME:.$form
f8f80 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 74 61 62 6c 65 49 at.=.'%c';.break;.case.SortableI
f8fa0 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 54 49 4d 45 3a 0a terator::SORT_BY_MODIFIED_TIME:.
f8fc0 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 61 75 6c 74 3a 0a $format.=.'%m';.break;.default:.
f8fe0 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
f9000 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 6f 70 74 69 6f 6e ion(sprintf('Unknown.sort.option
f9020 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 61 6e 64 0a 2d 3e s:.%s.',.$sort));.}..$command.->
f9040 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 61 74 20 2d 66 27 add('-print0.|.xargs.-0.stat.-f'
f9060 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 61 64 64 28 27 7c ).->arg($format.'%t%N').->add('|
f9080 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 70 72 6f 74 65 63 .sort.|.cut.-f.2');.}.....protec
f90a0 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 61 6e 64 28 43 6f ted.function.buildFindCommand(Co
f90c0 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 72 65 6e 74 3a 3a mmand.$command,.$dir).{.parent::
f90e0 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)
f9100 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 74 75 72 6e 20 24 ->addAtIndex('-E',.1);..return.$
f9120 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f command;.}.....protected.functio
f9140 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 n.buildContentFiltering(Command.
f9160 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 $command,.array.$contains,.$not.
f9180 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 61 69 6e 73 20 61 73 =.false).{.foreach.($contains.as
f91a0 20 24 63 6f 6e 74 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a .$contain).{.$expr.=.Expression:
f91c0 3a 63 72 65 61 74 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d :create($contain);....$command.-
f91e0 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 3e 61 64 64 28 27 >add('|.grep.-v.\'^$\'').->add('
f9200 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 64 64 28 24 65 78 |.xargs.-I{}.grep.-I').->add($ex
f9220 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 20 3a 20 27 pr->isCaseSensitive().?.null.:.'
f9240 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 27 29 0a 2d -i').->add($not.?.'-L'.:.'-l').-
f9260 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 65 72 50 61 >add('-Ee')->arg($expr->renderPa
f9280 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 0a 3c 3f 70 ttern()).->add('{}').;.}.}.}.<?p
f92a0 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
f92c0 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 20 53 79 omponent\Finder\Adapter;..use.Sy
f92e0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 mfony\Component\Finder\Shell\She
f9300 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 46 69 6e 64 65 72 ll;.use.Symfony\Component\Finder
f9320 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 70 \Shell\Command;.use.Symfony\Comp
f9340 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 61 62 6c 65 49 74 onent\Finder\Iterator\SortableIt
f9360 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
f9380 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 0a 0a nder\Expression\Expression;.....
f93a0 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 65 6e 64 73 20 41 ..class.GnuFindAdapter.extends.A
f93c0 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 62 6c 69 63 20 66 bstractFindAdapter.{....public.f
f93e0 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 67 6e 75 5f unction.getName().{.return.'gnu_
f9400 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 63 74 69 6f 6e 20 find';.}.....protected.function.
f9420 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d buildFormatSorting(Command.$comm
f9440 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 73 6f 72 74 29 20 7b 0a 63 and,.$sort).{.switch.($sort).{.c
f9460 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 4e 41 ase.SortableIterator::SORT_BY_NA
f9480 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 73 6f 72 74 27 29 2d 3e 61 64 64 28 27 ME:.$command->ins('sort')->add('
f94a0 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 |.sort');..return;.case.Sortable
f94c0 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3a 0a 24 66 6f 72 6d 61 74 20 Iterator::SORT_BY_TYPE:.$format.
f94e0 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 6c 65 49 74 65 72 =.'%y';.break;.case.SortableIter
f9500 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
f9520 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 53 6f 72 74 61 62 rmat.=.'%A@';.break;.case.Sortab
f9540 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 leIterator::SORT_BY_CHANGED_TIME
f9560 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 63 61 73 65 20 53 :.$format.=.'%C@';.break;.case.S
f9580 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 ortableIterator::SORT_BY_MODIFIE
f95a0 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 72 65 61 6b 3b 0a D_TIME:.$format.=.'%T@';.break;.
f95c0 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
f95e0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 73 6f entException(sprintf('Unknown.so
f9600 72 74 20 6f 70 74 69 6f 6e 73 3a 20 25 73 2e 27 2c 20 24 73 6f 72 74 29 29 3b 0a 7d 0a 0a 24 63 rt.options:.%s.',.$sort));.}..$c
f9620 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 28 27 2d 70 72 69 ommand.->get('find').->add('-pri
f9640 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 66 5c 5c 6e 27 29 ntf').->arg($format.'.%h/%f\\n')
f9660 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 72 67 28 27 2d 64 .->add('|.sort.|.cut').->arg('-d
f9680 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 70 72 6f 74 65 63 .').->arg('-f2-').;.}.....protec
f96a0 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
f96c0 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 3d 3d 3d 20 53 68 n.$this->shell->getType().===.Sh
f96e0 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 63 61 6e 42 65 55 ell::TYPE_UNIX.&&.parent::canBeU
f9700 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 sed();.}.....protected.function.
f9720 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 6e buildFindCommand(Command.$comman
f9740 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 62 75 69 6c 64 46 d,.$dir).{.return.parent::buildF
f9760 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 2d 3e 61 64 64 28 indCommand($command,.$dir)->add(
f9780 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 27 29 3b 0a 7d 0a '-regextype.posix-extended');.}.
f97a0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 ....protected.function.buildCont
f97c0 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 61 6e 64 2c 20 61 entFiltering(Command.$command,.a
f97e0 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 73 65 29 0a 7b 0a rray.$contains,.$not.=.false).{.
f9800 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 74 61 69 6e 29 20 foreach.($contains.as.$contain).
f9820 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 65 28 24 63 6f {.$expr.=.Expression::create($co
f9840 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 27 7c 20 78 61 72 ntain);....$command.->add('|.xar
f9860 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 28 24 65 78 70 72 gs.-I{}.-r.grep.-I').->add($expr
f9880 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 20 3a 20 27 2d 69 ->isCaseSensitive().?.null.:.'-i
f98a0 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 27 29 0a 2d 3e 61 ').->add($not.?.'-L'.:.'-l').->a
f98c0 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 65 72 50 61 74 74 dd('-Ee')->arg($expr->renderPatt
f98e0 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 0a 3c 3f 70 68 70 ern()).->add('{}').;.}.}.}.<?php
f9900 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
f9920 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 20 53 79 6d 66 ponent\Finder\Adapter;..use.Symf
f9940 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;..
f9960 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 64 73 20 41 62 .....class.PhpAdapter.extends.Ab
f9980 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 75 6e 63 74 69 stractAdapter.{....public.functi
f99a0 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 7b 0a 24 66 6c on.searchInDirectory($dir).{.$fl
f99c0 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 65 72 61 74 6f ags.=.\RecursiveDirectoryIterato
f99e0 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 6f 6c 6c 6f 77 r::SKIP_DOTS;..if.($this->follow
f9a00 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 76 65 44 69 72 Links).{.$flags.|=.\RecursiveDir
f9a20 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 49 4e 4b 53 3b ectoryIterator::FOLLOW_SYMLINKS;
f9a40 0a 7d 0a 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 52 65 63 .}..$iterator.=.new.Iterator\Rec
f9a60 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 2c 20 24 66 ursiveDirectoryIterator($dir,.$f
f9a80 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 6c 65 44 69 72 lags,.$this->ignoreUnreadableDir
f9aa0 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 69 74 65 72 s);..if.($this->exclude).{.$iter
f9ac0 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 69 72 65 63 ator.=.new.Iterator\ExcludeDirec
f9ae0 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 toryFilterIterator($iterator,.$t
f9b00 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 his->exclude);.}..$iterator.=.ne
f9b20 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 w.\RecursiveIteratorIterator($it
f9b40 65 72 61 74 6f 72 2c 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 erator,.\RecursiveIteratorIterat
f9b60 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 69 6e or::SELF_FIRST);..if.($this->min
f9b80 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 20 50 Depth.>.0.||.$this->maxDepth.<.P
f9ba0 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 49 74 HP_INT_MAX).{.$iterator.=.new.It
f9bc0 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 72 28 erator\DepthRangeFilterIterator(
f9be0 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 68 69 $iterator,.$this->minDepth,.$thi
f9c00 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 64 65 s->maxDepth);.}..if.($this->mode
f9c20 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 69 6c ).{.$iterator.=.new.Iterator\Fil
f9c40 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 20 24 eTypeFilterIterator($iterator,.$
f9c60 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 6e 61 6d 65 73 this->mode);.}..if.($this->names
f9c80 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 .||.$this->notNames).{.$iterator
f9ca0 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 .=.new.Iterator\FilenameFilterIt
f9cc0 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 2c 20 erator($iterator,.$this->names,.
f9ce0 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e $this->notNames);.}..if.($this->
f9d00 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 20 contains.||.$this->notContains).
f9d20 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 69 6c 65 63 {.$iterator.=.new.Iterator\Filec
f9d40 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 ontentFilterIterator($iterator,.
f9d60 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 $this->contains,.$this->notConta
f9d80 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 20 7b 0a 24 69 74 ins);.}..if.($this->sizes).{.$it
f9da0 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 erator.=.new.Iterator\SizeRangeF
f9dc0 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e ilterIterator($iterator,.$this->
f9de0 73 69 7a 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 20 7b 0a 24 sizes);.}..if.($this->dates).{.$
f9e00 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 iterator.=.new.Iterator\DateRang
f9e20 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 eFilterIterator($iterator,.$this
f9e40 2d 3e 64 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 ->dates);.}..if.($this->filters)
f9e60 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 43 75 73 74 .{.$iterator.=.new.Iterator\Cust
f9e80 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 omFilterIterator($iterator,.$thi
f9ea0 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 68 73 s->filters);.}..if.($this->paths
f9ec0 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
f9ee0 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
f9f00 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
f9f20 73 2d 3e 6e 6f 74 50 61 74 68 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 s->notPaths);.}..if.($this->sort
f9f40 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
f9f60 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
f9f80 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
f9fa0 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();.}
f9fc0 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 75 62 6c 69 63 ..return.$iterator;.}.....public
f9fe0 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 70 68 .function.getName().{.return.'ph
fa000 70 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e p';.}.....protected.function.can
fa020 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 BeUsed().{.return.true;.}.}.<?ph
fa040 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
fa060 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a mponent\Finder\Comparator;......
fa080 0a 63 6c 61 73 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 61 72 .class.Comparator.{.private.$tar
fa0a0 67 65 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 0a get;.private.$operator.=.'==';..
fa0c0 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 28 29 .....public.function.getTarget()
fa0e0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a .{.return.$this->target;.}......
fa100 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 .public.function.setTarget($targ
fa120 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d et).{.$this->target.=.$target;.}
fa140 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 65 72 61 74 .......public.function.getOperat
fa160 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 7d or().{.return.$this->operator;.}
fa180 0a 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 65 72 .........public.function.setOper
fa1a0 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 21 24 6f 70 65 72 61 74 6f 72 ator($operator).{.if.(!$operator
fa1c0 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e ).{.$operator.=.'==';.}..if.(!in
fa1e0 5f 61 72 72 61 79 28 24 6f 70 65 72 61 74 6f 72 2c 20 61 72 72 61 79 28 27 3e 27 2c 20 27 3c 27 _array($operator,.array('>',.'<'
fa200 2c 20 27 3e 3d 27 2c 20 27 3c 3d 27 2c 20 27 3d 3d 27 2c 20 27 21 3d 27 29 29 29 20 7b 0a 74 68 ,.'>=',.'<=',.'==',.'!='))).{.th
fa220 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
fa240 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 25 73 22 n(sprintf('Invalid.operator."%s"
fa260 2e 27 2c 20 24 6f 70 65 72 61 74 6f 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 .',.$operator));.}..$this->opera
fa280 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tor.=.$operator;.}.........publi
fa2a0 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 28 24 74 65 73 74 29 0a 7b 0a 73 77 69 74 63 68 20 c.function.test($test).{.switch.
fa2c0 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 72 65 ($this->operator).{.case.'>':.re
fa2e0 74 75 72 6e 20 24 74 65 73 74 20 3e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 turn.$test.>.$this->target;.case
fa300 20 27 3e 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 3d 20 24 74 68 69 73 2d 3e 74 61 .'>=':.return.$test.>=.$this->ta
fa320 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3c 20 24 rget;.case.'<':.return.$test.<.$
fa340 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 72 65 74 75 72 6e 20 this->target;.case.'<=':.return.
fa360 24 74 65 73 74 20 3c 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 21 3d $test.<=.$this->target;.case.'!=
fa380 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 21 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 ':.return.$test.!=.$this->target
fa3a0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 ;.}..return.$test.==.$this->targ
fa3c0 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 et;.}.}.<?php...........namespac
fa3e0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 e.Symfony\Component\Finder\Compa
fa400 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f rator;.......class.DateComparato
fa420 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 r.extends.Comparator.{........pu
fa440 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 74 65 73 74 29 blic.function.__construct($test)
fa460 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c .{.if.(!preg_match('#^\s*(==|!=|
fa480 5b 3c 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 6e 63 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 [<>]=?|after|since|before|until)
fa4a0 3f 5c 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 ?\s*(.+?)\s*$#i',.$test,.$matche
fa4c0 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 s)).{.throw.new.\InvalidArgument
fa4e0 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 Exception(sprintf('Don\'t.unders
fa500 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 64 61 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 tand."%s".as.a.date.test.',.$tes
fa520 74 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 t));.}..try.{.$date.=.new.\DateT
fa540 69 6d 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 ime($matches[2]);.$target.=.$dat
fa560 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 e->format('U');.}.catch.(\Except
fa580 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 ion.$e).{.throw.new.\InvalidArgu
fa5a0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e mentException(sprintf('"%s".is.n
fa5c0 6f 74 20 61 20 76 61 6c 69 64 20 64 61 74 65 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 ot.a.valid.date.',.$matches[2]))
fa5e0 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b ;.}..$operator.=.isset($matches[
fa600 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 1]).?.$matches[1].:.'==';.if.('s
fa620 69 6e 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d ince'.===.$operator.||.'after'.=
fa640 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b ==.$operator).{.$operator.=.'>';
fa660 0a 7d 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c .}..if.('until'.===.$operator.||
fa680 20 27 62 65 66 6f 72 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 .'before'.===.$operator).{.$oper
fa6a0 61 74 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f ator.=.'<';.}..$this->setOperato
fa6c0 72 28 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 r($operator);.$this->setTarget($
fa6e0 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d target);.}.}.<?php...........nam
fa700 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\
fa720 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a Comparator;.....................
fa740 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 ..class.NumberComparator.extends
fa760 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .Comparator.{........public.func
fa780 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 tion.__construct($test).{.if.(!p
fa7a0 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 29 3f 5c reg_match('#^\s*(==|!=|[<>]=?)?\
fa7c0 73 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 2a 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 2a 24 23 69 27 s*([0-9\.]+)\s*([kmg]i?)?\s*$#i'
fa7e0 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ,.$test,.$matches)).{.throw.new.
fa800 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
fa820 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 6e f('Don\'t.understand."%s".as.a.n
fa840 75 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 umber.test.',.$test));.}..$targe
fa860 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 t.=.$matches[2];.if.(!is_numeric
fa880 28 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ($target)).{.throw.new.\InvalidA
fa8a0 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 49 6e 76 61 6c 69 rgumentException(sprintf('Invali
fa8c0 64 20 6e 75 6d 62 65 72 20 22 25 73 22 2e 27 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 69 66 d.number."%s".',.$target));.}.if
fa8e0 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 77 69 74 63 68 .(isset($matches[3])).{...switch
fa900 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 63 61 73 .(strtolower($matches[3])).{.cas
fa920 65 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 e.'k':.$target.*=.1000;.break;.c
fa940 61 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b ase.'ki':.$target.*=.1024;.break
fa960 3b 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 3b 0a ;.case.'m':.$target.*=.1000000;.
fa980 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 break;.case.'mi':.$target.*=.102
fa9a0 34 20 2a 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 27 3a 0a 24 74 61 72 67 4.*.1024;.break;.case.'g':.$targ
fa9c0 65 74 20 2a 3d 20 31 30 30 30 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 et.*=.1000000000;.break;.case.'g
fa9e0 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 20 2a 20 31 30 32 34 20 2a 20 31 30 32 i':.$target.*=.1024.*.1024.*.102
faa00 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 4;.break;.}.}..$this->setTarget(
faa20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 69 73 73 $target);.$this->setOperator(iss
faa40 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 et($matches[1]).?.$matches[1].:.
faa60 27 3d 3d 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 '==');.}.}.<?php...........names
faa80 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
faaa0 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 ception;.....class.AccessDeniedE
faac0 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 xception.extends.\UnexpectedValu
faae0 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e eException.{.}.<?php...........n
fab00 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
fab20 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 43 6f 6d 70 6f 6e r\Exception;..use.Symfony\Compon
fab40 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
fab60 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 69 6c 75 72 65 45 ace;.......class.AdapterFailureE
fab80 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
faba0 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 on.implements.ExceptionInterface
fabc0 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 0a 0a 0a 0a 70 75 .{....private.$adapter;.......pu
fabe0 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 64 61 70 74 65 blic.function.__construct(Adapte
fac00 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 61 67 65 20 3d 20 rInterface.$adapter,.$message.=.
fac20 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 75 6c null,.\Exception.$previous.=.nul
fac40 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 70 74 65 72 3b 0a l).{.$this->adapter.=.$adapter;.
fac60 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 20 3f 3a 20 parent::__construct($message.?:.
fac80 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 61 70 74 65 72 2d 'Search.failed.with."'.$adapter-
faca0 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 70 72 65 76 69 6f >getName().'".adapter.',.$previo
facc0 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 20 67 65 74 41 64 us);.}.....public.function.getAd
face0 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 61 70 74 65 72 3b apter().{.return.$this->adapter;
fad00 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
fad20 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 69 6f ymfony\Component\Finder\Exceptio
fad40 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 72 66 n;.....interface.ExceptionInterf
fad60 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 61 70 ace.{....public.function.getAdap
fad80 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 70 61 ter();.}.<?php...........namespa
fada0 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 63 65 ce.Symfony\Component\Finder\Exce
fadc0 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 65 72 ption;.....class.OperationNotPer
fade0 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 46 61 mitedException.extends.AdapterFa
fae00 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 0a 0a ilureException.{.}.<?php........
fae20 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
fae40 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 43 6f inder\Exception;..use.Symfony\Co
fae60 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 49 6e mponent\Finder\Adapter\AdapterIn
fae80 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 46 terface;.use.Symfony\Component\F
faea0 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 inder\Shell\Command;.....class.S
faec0 68 65 6c 6c 43 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 hellCommandFailureException.exte
faee0 6e 64 73 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 0a 0a nds.AdapterFailureException.{...
faf00 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .private.$command;.......public.
faf20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 64 61 70 74 65 72 49 6e 74 65 function.__construct(AdapterInte
faf40 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 rface.$adapter,.Command.$command
faf60 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b ,.\Exception.$previous.=.null).{
faf80 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 61 72 65 .$this->command.=.$command;.pare
fafa0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 64 61 70 74 65 72 2c 20 27 53 68 65 6c 6c nt::__construct($adapter,.'Shell
fafc0 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 6a 6f .command.failed:."'.$command->jo
fafe0 69 6e 28 29 2e 27 22 2e 27 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 in().'".',.$previous);.}.....pub
fb000 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 lic.function.getCommand().{.retu
fb020 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a rn.$this->command;.}.}.<?php....
fb040 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
fb060 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 0a 63 6c 61 73 73 20 nt\Finder\Expression;.....class.
fb080 45 78 70 72 65 73 73 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 Expression.implements.ValueInter
fb0a0 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e face.{.const.TYPE_REGEX.=.1;.con
fb0c0 73 74 20 54 59 50 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 st.TYPE_GLOB.=.2;.....private.$v
fb0e0 61 6c 75 65 3b 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 alue;.......public.static.functi
fb100 6f 6e 20 63 72 65 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 on.create($expr).{.return.new.se
fb120 6c 66 28 24 65 78 70 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 lf($expr);.}.....public.function
fb140 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 78 70 72 29 0a 7b 0a 74 72 79 20 7b 0a 24 74 68 69 .__construct($expr).{.try.{.$thi
fb160 73 2d 3e 76 61 6c 75 65 20 3d 20 52 65 67 65 78 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 29 3b s->value.=.Regex::create($expr);
fb180 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
fb1a0 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3d 20 6e 65 77 20 47 6c 6f ion.$e).{.$this->value.=.new.Glo
fb1c0 62 28 24 65 78 70 72 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 b($expr);.}.}.....public.functio
fb1e0 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 72 n.__toString().{.return.$this->r
fb200 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ender();.}.....public.function.r
fb220 65 6e 64 65 72 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 72 ender().{.return.$this->value->r
fb240 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ender();.}.....public.function.r
fb260 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 enderPattern().{.return.$this->v
fb280 61 6c 75 65 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 alue->renderPattern();.}.....pub
fb2a0 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 76 65 28 29 0a 7b lic.function.isCaseSensitive().{
fb2c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 69 73 43 61 73 65 53 65 6e 73 .return.$this->value->isCaseSens
fb2e0 69 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 itive();.}.....public.function.g
fb300 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 76 61 6c 75 65 2d 3e etType().{.return.$this->value->
fb320 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 75 6e 63 74 69 6f 6e getType();.}.....public.function
fb340 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 76 61 6c 75 65 2d 3e .prepend($expr).{.$this->value->
fb360 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d prepend($expr);..return.$this;.}
fb380 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 .....public.function.append($exp
fb3a0 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 61 70 70 65 6e 64 28 24 65 78 70 72 29 r).{.$this->value->append($expr)
fb3c0 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
fb3e0 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a nction.isRegex().{.return.self::
fb400 54 59 50 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 TYPE_REGEX.===.$this->value->get
fb420 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 Type();.}.....public.function.is
fb440 47 6c 6f 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 Glob().{.return.self::TYPE_GLOB.
fb460 3d 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 3b 0a 7d 0a 0a ===.$this->value->getType();.}..
fb480 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 6c 6f 62 28 29 0a 7b .....public.function.getGlob().{
fb4a0 0a 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 21 3d 3d 20 24 74 68 69 73 2d 3e .if.(self::TYPE_GLOB.!==.$this->
fb4c0 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c value->getType()).{.throw.new.\L
fb4e0 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 52 65 67 65 78 20 63 61 6e 5c 27 74 20 62 65 20 74 ogicException('Regex.can\'t.be.t
fb500 72 61 6e 73 66 6f 72 6d 65 64 20 74 6f 20 67 6c 6f 62 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ransformed.to.glob.');.}..return
fb520 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$this->value;.}.....public.func
fb540 74 69 6f 6e 20 67 65 74 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 tion.getRegex().{.return.self::T
fb560 59 50 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 YPE_REGEX.===.$this->value->getT
fb580 79 70 65 28 29 20 3f 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3a 20 24 74 68 69 73 2d 3e 76 61 ype().?.$this->value.:.$this->va
fb5a0 6c 75 65 2d 3e 74 6f 52 65 67 65 78 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a lue->toRegex();.}.}.<?php.......
fb5c0 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\
fb5e0 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c Finder\Expression;..use.Symfony\
fb600 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 47 6c 6f 62 20 61 73 20 46 69 6e 64 65 72 47 Component\Finder\Glob.as.FinderG
fb620 6c 6f 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 lob;.....class.Glob.implements.V
fb640 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 74 alueInterface.{....private.$patt
fb660 65 72 6e 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ern;.....public.function.__const
fb680 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 ruct($pattern).{.$this->pattern.
fb6a0 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f =.$pattern;.}.....public.functio
fb6c0 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 2d 3e 70 61 74 74 65 n.render().{.return.$this->patte
fb6e0 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 65 72 rn;.}.....public.function.render
fb700 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 Pattern().{.return.$this->patter
fb720 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 n;.}.....public.function.getType
fb740 28 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 54 59 50 45 5f 47 4c 4f ().{.return.Expression::TYPE_GLO
fb760 42 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 B;.}.....public.function.isCaseS
fb780 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a ensitive().{.return.true;.}.....
fb7a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b public.function.prepend($expr).{
fb7c0 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 72 2e 24 74 68 69 73 2d 3e 70 .$this->pattern.=.$expr.$this->p
fb7e0 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 70 75 62 attern;..return.$this;.}.....pub
fb800 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 lic.function.append($expr).{.$th
fb820 69 73 2d 3e 70 61 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 is->pattern..=.$expr;..return.$t
fb840 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 73 45 his;.}.......public.function.isE
fb860 78 70 61 6e 64 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 xpandable().{.return.false.!==.s
fb880 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 7b 27 29 0a 26 26 20 66 61 trpos($this->pattern,.'{').&&.fa
fb8a0 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 lse.!==.strpos($this->pattern,.'
fb8c0 7d 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f }');.}........public.function.to
fb8e0 52 65 67 65 78 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 Regex($strictLeadingDot.=.true,.
fb900 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 $strictWildcardSlash.=.true).{.$
fb920 72 65 67 65 78 20 3d 20 46 69 6e 64 65 72 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 74 68 69 regex.=.FinderGlob::toRegex($thi
fb940 73 2d 3e 70 61 74 74 65 72 6e 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 2c 20 24 s->pattern,.$strictLeadingDot,.$
fb960 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 2c 20 27 27 29 3b 0a 0a 72 65 74 75 72 strictWildcardSlash,.'');..retur
fb980 6e 20 6e 65 77 20 52 65 67 65 78 28 24 72 65 67 65 78 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a n.new.Regex($regex);.}.}.<?php..
fb9a0 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
fb9c0 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 0a 63 6c 61 73 nent\Finder\Expression;.....clas
fb9e0 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 74 65 72 66 61 63 s.Regex.implements.ValueInterfac
fba00 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 3b 0a 63 6f 6e 73 e.{.const.START_FLAG.=.'^';.cons
fba20 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 55 4e 44 41 52 59 t.END_FLAG.=.'$';.const.BOUNDARY
fba40 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 3b 0a 63 6f 6e 73 .=.'~';.const.JOKER.=.'.*';.cons
fba60 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 76 61 74 65 20 24 t.ESCAPING.=.'\\';.....private.$
fba80 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 6f 6e 73 3b 0a 0a pattern;.....private.$options;..
fbaa0 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 0a 70 72 69 76 61 ...private.$startFlag;.....priva
fbac0 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 73 74 61 72 74 4a te.$endFlag;.....private.$startJ
fbae0 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 72 3b 0a 0a 0a 0a oker;.....private.$endJoker;....
fbb00 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
fbb20 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 28 27 2f 5e 28 2e te($expr).{.if.(preg_match('/^(.
fbb40 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 78 70 72 2c 20 24 {3,}?)([imsxuADU]*)$/',.$expr,.$
fbb60 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 30 2c 20 m)).{.$start.=.substr($m[1],.0,.
fbb80 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 29 3b 0a 0a 69 1);.$end.=.substr($m[1],.-1);..i
fbba0 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 72 65 67 5f 6d 61 f.(.($start.===.$end.&&.!preg_ma
fbbc0 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 2c 20 24 73 74 61 tch('/[*?[:alnum:].\\\\]/',.$sta
fbbe0 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 20 24 65 6e 64 20 rt)).||.($start.===.'{'.&&.$end.
fbc00 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 27 20 26 26 20 24 ===.'}').||.($start.===.'('.&&.$
fbc20 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 77 20 73 65 6c 66 end.===.')').).{.return.new.self
fbc40 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 32 5d 2c 20 24 65 (substr($m[1],.1,.-1),.$m[2],.$e
fbc60 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 69 64 41 72 67 75 nd);.}.}..throw.new.\InvalidArgu
fbc80 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 73 73 69 6f 6e 20 mentException('Given.expression.
fbca0 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 0a 70 75 62 6c 69 is.not.a.regex.');.}.......publi
fbcc0 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 74 65 72 6e 2c c.function.__construct($pattern,
fbce0 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 20 3d 20 6e 75 6c .$options.=.'',.$delimiter.=.nul
fbd00 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 65 72 29 20 7b 0a l).{.if.(null.!==.$delimiter).{.
fbd20 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 5c 5c 27 2e 24 64 ..$pattern.=.str_replace('\\'.$d
fbd40 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 74 65 72 6e 29 3b elimiter,.$delimiter,.$pattern);
fbd60 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 61 74 74 65 72 6e .}..$this->parsePattern($pattern
fbd80 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 6e 73 3b 0a 7d 0a );.$this->options.=.$options;.}.
fbda0 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()
fbdc0 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 0a 7d 0a 0a 0a 0a .{.return.$this->render();.}....
fbde0 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 7b 0a 72 65 74 75 .public.function.render().{.retu
fbe00 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 72 65 6e 64 65 72 rn.self::BOUNDARY..$this->render
fbe20 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 2e 24 74 68 69 73 Pattern()..self::BOUNDARY..$this
fbe40 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 6e 63 74 69 6f 6e ->options;.}.....public.function
fbe60 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 28 24 74 68 69 73 .renderPattern().{.return.($this
fbe80 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 46 4c 41 47 20 3a ->startFlag.?.self::START_FLAG.:
fbea0 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 20 73 65 6c 66 3a .'')..($this->startJoker.?.self:
fbec0 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 73 65 6c 66 3a 3a :JOKER.:.'')..str_replace(self::
fbee0 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 41 52 59 2c 20 24 BOUNDARY,.'\\'.self::BOUNDARY,.$
fbf00 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 64 4a 6f 6b 65 72 this->pattern)..($this->endJoker
fbf20 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 69 73 2d 3e 65 6e .?.self::JOKER.:.'')..($this->en
fbf40 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 27 29 3b 0a 7d 0a dFlag.?.self::END_FLAG.:.'');.}.
fbf60 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 73 69 74 ....public.function.isCaseSensit
fbf80 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 4f 70 74 69 6f 6e ive().{.return.!$this->hasOption
fbfa0 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 6f 6e 20 67 65 74 ('i');.}.....public.function.get
fbfc0 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 3a 3a 54 59 50 45 Type().{.return.Expression::TYPE
fbfe0 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 69 6f 6e 20 70 72 _REGEX;.}.....public.function.pr
fc000 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 65 72 6e 20 3d 20 epend($expr).{.$this->pattern.=.
fc020 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 75 72 6e 20 24 74 $expr.$this->pattern;..return.$t
fc040 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 70 70 65 6e his;.}.....public.function.appen
fc060 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 2e 3d 20 24 65 78 d($expr).{.$this->pattern..=.$ex
fc080 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 0a 70 75 62 6c 69 pr;..return.$this;.}.......publi
fc0a0 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 6f 6e 29 0a 7b 0a c.function.hasOption($option).{.
fc0c0 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 68 69 73 2d 3e 6f return.false.!==.strpos($this->o
fc0e0 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 70 75 62 6c 69 63 ptions,.$option);.}.......public
fc100 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 6e 29 0a 7b 0a 69 .function.addOption($option).{.i
fc120 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 6f 6e 29 29 20 7b f.(!$this->hasOption($option)).{
fc140 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 3b 0a 7d 0a 0a 72 .$this->options..=.$option;.}..r
fc160 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
fc180 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 0a 7b 0a 24 74 68 tion.removeOption($option).{.$th
fc1a0 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 24 6f 70 74 69 6f is->options.=.str_replace($optio
fc1c0 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 65 74 75 72 6e 20 n,.'',.$this->options);..return.
fc1e0 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 73 $this;.}.......public.function.s
fc200 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 24 74 68 69 73 2d etStartFlag($startFlag).{.$this-
fc220 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 72 65 74 75 72 6e >startFlag.=.$startFlag;..return
fc240 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 68 61 .$this;.}.....public.function.ha
fc260 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 73 2d 3e 73 74 61 sStartFlag().{.return.$this->sta
fc280 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 63 74 69 6f 6e 20 rtFlag;.}.......public.function.
fc2a0 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 69 73 2d 3e 65 6e setEndFlag($endFlag).{.$this->en
fc2c0 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 72 65 74 75 72 6e dFlag.=.(bool).$endFlag;..return
fc2e0 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 68 61 .$this;.}.....public.function.ha
fc300 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 3e 65 6e 64 46 6c sEndFlag().{.return.$this->endFl
fc320 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 6e 20 73 65 74 53 ag;.}.......public.function.setS
fc340 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 74 68 69 73 2d 3e tartJoker($startJoker).{.$this->
fc360 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 0a 72 65 74 75 72 startJoker.=.$startJoker;..retur
fc380 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 68 n.$this;.}.....public.function.h
fc3a0 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 68 69 73 2d 3e 73 asStartJoker().{.return.$this->s
fc3c0 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 66 75 6e 63 74 69 tartJoker;.}.......public.functi
fc3e0 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 7b 0a 24 74 68 69 on.setEndJoker($endJoker).{.$thi
fc400 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 6f 6b 65 72 3b 0a s->endJoker.=.(bool).$endJoker;.
fc420 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
fc440 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 6e 20 24 74 68 69 tion.hasEndJoker().{.return.$thi
fc460 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 63 20 66 75 6e 63 s->endJoker;.}.......public.func
fc480 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 65 6d 65 6e 74 29 tion.replaceJokers($replacement)
fc4a0 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 75 62 6a 65 63 74 .{.$replace.=.function.($subject
fc4c0 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 62 6a 65 63 74 20 ).use.($replacement).{.$subject.
fc4e0 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 30 20 3d 3d 3d 20 =.$subject[0];.$replace.=.0.===.
fc500 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 27 29 20 25 20 32 substr_count($subject,.'\\').%.2
fc520 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 65 70 6c 61 63 65 ;..return.$replace.?.str_replace
fc540 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 63 74 29 20 3a 20 ('.',.$replacement,.$subject).:.
fc560 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 72 6e 20 3d 20 70 $subject;.};..$this->pattern.=.p
fc580 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 5c 5c 5d 2a 5c 5c reg_replace_callback('~[\\\\]*\\
fc5a0 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 65 72 6e 29 3b 0a .~',.$replace,.$this->pattern);.
fc5c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e .return.$this;.}.....private.fun
fc5e0 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 6e 29 0a 7b 0a 69 ction.parsePattern($pattern).{.i
fc600 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 3a 3a 53 54 41 52 f.($this->startFlag.=.self::STAR
fc620 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 2c 20 30 2c 20 31 T_FLAG.===.substr($pattern,.0,.1
fc640 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c )).{.$pattern.=.substr($pattern,
fc660 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 6b 65 72 20 3d 20 .1);.}..if.($this->startJoker.=.
fc680 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 6e 2c self::JOKER.===.substr($pattern,
fc6a0 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 72 28 24 70 61 74 .0,.2)).{.$pattern.=.substr($pat
fc6c0 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 64 46 6c 61 67 20 tern,.2);.}..if.($this->endFlag.
fc6e0 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 74 72 28 24 70 61 =.(self::END_FLAG.===.substr($pa
fc700 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 4e 47 20 21 3d 3d ttern,.-1).&&.self::ESCAPING.!==
fc720 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 29 20 7b 0a 24 70 .substr($pattern,.-2,.-1))).{.$p
fc740 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 2d 31 29 attern.=.substr($pattern,.0,.-1)
fc760 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 20 28 73 65 6c 66 ;.}..if.($this->endJoker.=.(self
fc780 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 6e 2c 20 2d 32 29 ::JOKER.===.substr($pattern,.-2)
fc7a0 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 73 74 72 28 24 70 .&&.self::ESCAPING.!==.substr($p
fc7c0 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 72 6e 20 3d 20 73 attern,.-3,.-2))).{.$pattern.=.s
fc7e0 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 0a 24 74 68 69 73 ubstr($pattern,.0,.-2);.}..$this
fc800 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 3c 3f 70 68 70 0a ->pattern.=.$pattern;.}.}.<?php.
fc820 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
fc840 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 0a 69 6e 74 onent\Finder\Expression;.....int
fc860 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 0a 70 75 62 erface.ValueInterface.{......pub
fc880 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 0a 70 75 62 lic.function.render();.......pub
fc8a0 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 3b 0a 0a 0a lic.function.renderPattern();...
fc8c0 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 73 69 74 ....public.function.isCaseSensit
fc8e0 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 20 67 65 74 ive();.......public.function.get
fc900 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 Type();.......public.function.pr
fc920 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 75 6e 63 74 epend($expr);.......public.funct
fc940 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 0a 0a 0a 0a ion.append($expr);.}.<?php......
fc960 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
fc980 5c 46 69 6e 64 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Finder;..use.Symfony\Component\
fc9a0 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;
fc9c0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 .use.Symfony\Component\Finder\Ad
fc9e0 61 70 74 65 72 5c 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e apter\GnuFindAdapter;.use.Symfon
fca00 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 42 73 64 46 69 y\Component\Finder\Adapter\BsdFi
fca20 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 ndAdapter;.use.Symfony\Component
fca40 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 50 68 70 41 64 61 70 74 65 72 3b 0a 75 73 65 20 \Finder\Adapter\PhpAdapter;.use.
fca60 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 Symfony\Component\Finder\Compara
fca80 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 6f 6e 79 5c tor\DateComparator;.use.Symfony\
fcaa0 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
fcac0 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 6d 70 6f 6e erComparator;.use.Symfony\Compon
fcae0 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 6f 6e 49 6e ent\Finder\Exception\ExceptionIn
fcb00 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 46 terface;.use.Symfony\Component\F
fcb20 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 74 65 72 61 inder\Iterator\CustomFilterItera
fcb40 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 64 65 tor;.use.Symfony\Component\Finde
fcb60 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 65 72 61 74 r\Iterator\DateRangeFilterIterat
fcb80 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 64 65 72 or;.use.Symfony\Component\Finder
fcba0 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 65 72 61 74 \Iterator\DepthRangeFilterIterat
fcbc0 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 64 65 72 or;.use.Symfony\Component\Finder
fcbe0 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 6c 74 65 72 \Iterator\ExcludeDirectoryFilter
fcc00 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 74 5c Iterator;.use.Symfony\Component\
fcc20 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 69 6c 74 65 Finder\Iterator\FilecontentFilte
fcc40 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 74 rIterator;.use.Symfony\Component
fcc60 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 74 65 72 49 \Finder\Iterator\FilenameFilterI
fcc80 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
fcca0 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 65 72 49 74 inder\Iterator\SizeRangeFilterIt
fccc0 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
fcce0 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 6f 72 3b 0a nder\Iterator\SortableIterator;.
fcd00 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 20 69 6d 70 6c 65 ..............class.Finder.imple
fcd20 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 5c 43 6f 75 6e 74 ments.\IteratorAggregate,.\Count
fcd40 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 4c 45 53 20 3d 20 able.{.const.IGNORE_VCS_FILES.=.
fcd60 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 3d 20 32 3b 0a 0a 1;.const.IGNORE_DOT_FILES.=.2;..
fcd80 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 20 24 6e 61 6d 65 private.$mode.=.0;.private.$name
fcda0 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 61 6d 65 73 20 3d s.=.array();.private.$notNames.=
fcdc0 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 20 3d 20 61 72 72 .array();.private.$exclude.=.arr
fcde0 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 72 72 61 79 28 29 ay();.private.$filters.=.array()
fce00 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 29 3b 0a 70 72 69 ;.private.$depths.=.array();.pri
fce20 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 76 61 74 65 20 24 vate.$sizes.=.array();.private.$
fce40 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 74 65 20 24 73 6f followLinks.=.false;.private.$so
fce60 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 65 20 3d 20 30 3b rt.=.false;.private.$ignore.=.0;
fce80 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 70 72 69 76 61 74 .private.$dirs.=.array();.privat
fcea0 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 65 20 24 69 74 65 e.$dates.=.array();.private.$ite
fcec0 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 24 63 6f 6e 74 61 rators.=.array();.private.$conta
fcee0 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 74 43 6f 6e 74 61 ins.=.array();.private.$notConta
fcf00 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 61 70 74 65 72 73 ins.=.array();.private.$adapters
fcf20 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 20 3d 20 61 72 72 .=.array();.private.$paths.=.arr
fcf40 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 61 72 72 61 79 28 ay();.private.$notPaths.=.array(
fcf60 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 6c 65 44 69 72 73 );.private.$ignoreUnreadableDirs
fcf80 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 24 76 63 73 50 61 .=.false;..private.static.$vcsPa
fcfa0 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 76 6e 27 2c 20 27 tterns.=.array('.svn',.'_svn',.'
fcfc0 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 CVS',.'_darcs',.'.arch-params',.
fcfe0 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 '.monotone',.'.bzr',.'.git',.'.h
fd000 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 5f 63 6f 6e 73 74 g');.....public.function.__const
fd020 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 74 61 74 69 63 3a ruct().{.$this->ignore.=.static:
fd040 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 3a 3a 49 47 4e 4f :IGNORE_VCS_FILES.|.static::IGNO
fd060 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 41 64 61 70 74 65 RE_DOT_FILES;..$this.->addAdapte
fd080 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 61 64 64 41 64 61 r(new.GnuFindAdapter()).->addAda
fd0a0 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 0a 2d 3e 61 64 64 pter(new.BsdFindAdapter()).->add
fd0c0 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 2d 35 30 29 0a 2d Adapter(new.PhpAdapter(),.-50).-
fd0e0 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 0a 0a 0a 70 75 62 >setAdapter('php').;.}.......pub
fd100 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 29 0a 7b 0a 72 lic.static.function.create().{.r
fd120 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 eturn.new.static();.}..........p
fd140 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 ublic.function.addAdapter(Adapte
fd160 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 70 72 69 6f 72 69 74 79 20 3d rInterface.$adapter,.$priority.=
fd180 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 61 64 61 70 74 65 72 2d 3e .0).{.$this->adapters[$adapter->
fd1a0 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 64 61 70 74 65 72 27 20 3d 3e getName()].=.array(.'adapter'.=>
fd1c0 20 24 61 64 61 70 74 65 72 2c 0a 27 70 72 69 6f 72 69 74 79 27 20 3d 3e 20 24 70 72 69 6f 72 69 .$adapter,.'priority'.=>.$priori
fd1e0 74 79 2c 0a 27 73 65 6c 65 63 74 65 64 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 29 3b 0a 0a 72 65 74 ty,.'selected'.=>.false,.);..ret
fd200 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a urn.$this->sortAdapters();.}....
fd220 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 42 65 73 74 41 64 61 70 74 65 ...public.function.useBestAdapte
fd240 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 r().{.$this->resetAdapterSelecti
fd260 6f 6e 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 on();..return.$this->sortAdapter
fd280 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e s();.}...........public.function
fd2a0 20 73 65 74 41 64 61 70 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 .setAdapter($name).{.if.(!isset(
fd2c0 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 $this->adapters[$name])).{.throw
fd2e0 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
fd300 70 72 69 6e 74 66 28 27 41 64 61 70 74 65 72 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 printf('Adapter."%s".does.not.ex
fd320 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 41 ist.',.$name));.}..$this->resetA
fd340 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 dapterSelection();.$this->adapte
fd360 72 73 5b 24 6e 61 6d 65 5d 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 0a 72 rs[$name]['selected'].=.true;..r
fd380 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a eturn.$this->sortAdapters();.}..
fd3a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 41 64 61 70 74 .....public.function.removeAdapt
fd3c0 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 ers().{.$this->adapters.=.array(
fd3e0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 );..return.$this;.}.......public
fd400 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getAdapters().{.return
fd420 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e .array_values(array_map(function
fd440 20 28 61 72 72 61 79 20 24 61 64 61 70 74 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 .(array.$adapter).{.return.$adap
fd460 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 ter['adapter'];.},.$this->adapte
fd480 72 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 6e 20 64 69 rs));.}.......public.function.di
fd4a0 72 65 63 74 6f 72 69 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 rectories().{.$this->mode.=.Iter
fd4c0 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c ator\FileTypeFilterIterator::ONL
fd4e0 59 5f 44 49 52 45 43 54 4f 52 49 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a Y_DIRECTORIES;..return.$this;.}.
fd500 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 73 28 29 0a 7b 0a ......public.function.files().{.
fd520 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 $this->mode.=.Iterator\FileTypeF
fd540 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 3b 0a 0a 72 65 74 75 ilterIterator::ONLY_FILES;..retu
fd560 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rn.$this;.}.................publ
fd580 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 70 74 68 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 ic.function.depth($level).{.$thi
fd5a0 73 2d 3e 64 65 70 74 68 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d s->depths[].=.new.Comparator\Num
fd5c0 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 6c 65 76 65 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 berComparator($level);..return.$
fd5e0 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 70 75 62 6c 69 this;.}....................publi
fd600 63 20 66 75 6e 63 74 69 6f 6e 20 64 61 74 65 28 24 64 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e c.function.date($date).{.$this->
fd620 64 61 74 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d dates[].=.new.Comparator\DateCom
fd640 70 61 72 61 74 6f 72 28 24 64 61 74 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d parator($date);..return.$this;.}
fd660 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 6e .................public.function
fd680 20 6e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 5b 5d .name($pattern).{.$this->names[]
fd6a0 20 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 .=.$pattern;..return.$this;.}...
fd6c0 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 4e 61 6d 65 28 ........public.function.notName(
fd6e0 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 $pattern).{.$this->notNames[].=.
fd700 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;.}......
fd720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 ..........public.function.contai
fd740 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 5b 5d ns($pattern).{.$this->contains[]
fd760 20 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 .=.$pattern;..return.$this;.}...
fd780 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 6e 6f 74 .............public.function.not
fd7a0 43 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 Contains($pattern).{.$this->notC
fd7c0 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ontains[].=.$pattern;..return.$t
fd7e0 68 69 73 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 his;.}..................public.f
fd800 75 6e 63 74 69 6f 6e 20 70 61 74 68 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e unction.path($pattern).{.$this->
fd820 70 61 74 68 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 paths[].=.$pattern;..return.$thi
fd840 73 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 s;.}..................public.fun
fd860 63 74 69 6f 6e 20 6e 6f 74 50 61 74 68 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d ction.notPath($pattern).{.$this-
fd880 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 >notPaths[].=.$pattern;..return.
fd8a0 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $this;.}................public.f
fd8c0 75 6e 63 74 69 6f 6e 20 73 69 7a 65 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a unction.size($size).{.$this->siz
fd8e0 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 es[].=.new.Comparator\NumberComp
fd900 61 72 61 74 6f 72 28 24 73 69 7a 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a arator($size);..return.$this;.}.
fd920 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 63 6c 75 64 ..........public.function.exclud
fd940 65 28 24 64 69 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 e($dirs).{.$this->exclude.=.arra
fd960 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 28 61 72 72 61 79 29 20 y_merge($this->exclude,.(array).
fd980 24 64 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a $dirs);..return.$this;.}........
fd9a0 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 44 6f 74 46 69 6c 65 ...public.function.ignoreDotFile
fd9c0 73 28 24 69 67 6e 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 s($ignoreDotFiles).{.if.($ignore
fd9e0 44 6f 74 46 69 6c 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 DotFiles).{.$this->ignore.|=.sta
fda00 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a tic::IGNORE_DOT_FILES;.}.else.{.
fda20 24 74 68 69 73 2d 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 $this->ignore.&=.~static::IGNORE
fda40 5f 44 4f 54 5f 46 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 _DOT_FILES;.}..return.$this;.}..
fda60 0a 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 67 6e 6f 72 65 56 .........public.function.ignoreV
fda80 43 53 28 24 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 CS($ignoreVCS).{.if.($ignoreVCS)
fdaa0 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 47 4e 4f .{.$this->ignore.|=.static::IGNO
fdac0 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 67 RE_VCS_FILES;.}.else.{.$this->ig
fdae0 6e 6f 72 65 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 nore.&=.~static::IGNORE_VCS_FILE
fdb00 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 0a 70 75 S;.}..return.$this;.}.........pu
fdb20 62 6c 69 63 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 blic.static.function.addVCSPatte
fdb40 72 6e 28 24 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 rn($pattern).{.foreach.((array).
fdb60 24 70 61 74 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 $pattern.as.$p).{.self::$vcsPatt
fdb80 65 72 6e 73 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 erns[].=.$p;.}..self::$vcsPatter
fdba0 6e 73 20 3d 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 ns.=.array_unique(self::$vcsPatt
fdbc0 65 72 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 erns);.}...............public.fu
fdbe0 6e 63 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 nction.sort(\Closure.$closure).{
fdc00 0a 24 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 .$this->sort.=.$closure;..return
fdc20 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this;.}...........public.funct
fdc40 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.=
fdc60 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
fdc80 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;.}......
fdca0 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 65 28 .....public.function.sortByType(
fdcc0 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 74 61 ).{.$this->sort.=.Iterator\Sorta
fdce0 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 74 75 bleIterator::SORT_BY_TYPE;..retu
fdd00 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rn.$this;.}.............public.f
fdd20 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 0a 7b 0a 24 unction.sortByAccessedTime().{.$
fdd40 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 this->sort.=.Iterator\SortableIt
fdd60 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3b 0a 0a erator::SORT_BY_ACCESSED_TIME;..
fdd80 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 70 75 return.$this;.}...............pu
fdda0 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 64 54 69 6d 65 28 blic.function.sortByChangedTime(
fddc0 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 74 61 ).{.$this->sort.=.Iterator\Sorta
fdde0 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d bleIterator::SORT_BY_CHANGED_TIM
fde00 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;.}.............
fde20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 4d 6f 64 69 66 69 65 64 54 69 public.function.sortByModifiedTi
fde40 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f me().{.$this->sort.=.Iterator\So
fde60 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 rtableIterator::SORT_BY_MODIFIED
fde80 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a _TIME;..return.$this;.}.........
fdea0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 28 5c 43 6c 6f .....public.function.filter(\Clo
fdec0 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 5b sure.$closure).{.$this->filters[
fdee0 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a ].=.$closure;..return.$this;.}..
fdf00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 .....public.function.followLinks
fdf20 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 74 72 75 65 3b 0a ().{.$this->followLinks.=.true;.
fdf40 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .return.$this;.}...........publi
fdf60 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(
fdf80 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 $ignore.=.true).{.$this->ignoreU
fdfa0 6e 72 65 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 nreadableDirs.=.(bool).$ignore;.
fdfc0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .return.$this;.}...........publi
fdfe0 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 28 24 64 69 72 73 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 64 c.function.in($dirs).{.$resolved
fe000 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 Dirs.=.array();..foreach.((array
fe020 29 20 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 64 ).$dirs.as.$dir).{.if.(is_dir($d
fe040 69 72 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 5b 5d 20 3d 20 24 64 69 72 3b 0a 7d ir)).{.$resolvedDirs[].=.$dir;.}
fe060 20 65 6c 73 65 69 66 20 28 24 67 6c 6f 62 20 3d 20 67 6c 6f 62 28 24 64 69 72 2c 20 28 64 65 66 .elseif.($glob.=.glob($dir,.(def
fe080 69 6e 65 64 28 27 47 4c 4f 42 5f 42 52 41 43 45 27 29 20 3f 20 47 4c 4f 42 5f 42 52 41 43 45 20 ined('GLOB_BRACE').?.GLOB_BRACE.
fe0a0 3a 20 30 29 20 7c 20 47 4c 4f 42 5f 4f 4e 4c 59 44 49 52 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 :.0).|.GLOB_ONLYDIR)).{.$resolve
fe0c0 64 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 6f 6c 76 65 64 44 69 72 dDirs.=.array_merge($resolvedDir
fe0e0 73 2c 20 24 67 6c 6f 62 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 s,.$glob);.}.else.{.throw.new.\I
fe100 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(
fe120 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 'The."%s".directory.does.not.exi
fe140 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d st.',.$dir));.}.}..$this->dirs.=
fe160 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 69 72 73 2c 20 24 72 65 73 6f 6c .array_merge($this->dirs,.$resol
fe180 76 65 64 44 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a vedDirs);..return.$this;.}......
fe1a0 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 74 65 72 61 74 6f 72 .....public.function.getIterator
fe1c0 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 ().{.if.(0.===.count($this->dirs
fe1e0 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
fe200 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 s)).{.throw.new.\LogicException(
fe220 27 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 6f 6e 65 20 6f 66 20 69 6e 28 29 20 6f 72 20 61 70 'You.must.call.one.of.in().or.ap
fe240 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 73 20 62 65 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 pend().methods.before.iterating.
fe260 6f 76 65 72 20 61 20 46 69 6e 64 65 72 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 over.a.Finder.');.}..if.(1.===.c
fe280 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
fe2a0 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 ($this->iterators)).{.return.$th
fe2c0 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 64 69 72 is->searchInDirectory($this->dir
fe2e0 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 41 70 70 65 6e s[0]);.}..$iterator.=.new.\Appen
fe300 64 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 69 72 dIterator();.foreach.($this->dir
fe320 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 s.as.$dir).{.$iterator->append($
fe340 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 3b 0a this->searchInDirectory($dir));.
fe360 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 20 61 73 20 }..foreach.($this->iterators.as.
fe380 24 69 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 69 74 29 3b 0a 7d $it).{.$iterator->append($it);.}
fe3a0 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 0a 0a 0a 0a 0a 0a ..return.$iterator;.}...........
fe3c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 ..public.function.append($iterat
fe3e0 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c or).{.if.($iterator.instanceof.\
fe400 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 IteratorAggregate).{.$this->iter
fe420 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 ators[].=.$iterator->getIterator
fe440 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 ();.}.elseif.($iterator.instance
fe460 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 of.\Iterator).{.$this->iterators
fe480 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 [].=.$iterator;.}.elseif.($itera
fe4a0 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 tor.instanceof.\Traversable.||.i
fe4c0 73 5f 61 72 72 61 79 28 24 69 74 65 72 61 74 6f 72 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 s_array($iterator)).{.$it.=.new.
fe4e0 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 \ArrayIterator();.foreach.($iter
fe500 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 ator.as.$file).{.$it->append($fi
fe520 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 le.instanceof.\SplFileInfo.?.$fi
fe540 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d le.:.new.\SplFileInfo($file));.}
fe560 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 3b 0a 7d 20 65 6c 73 .$this->iterators[].=.$it;.}.els
fe580 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
fe5a0 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 65 72 3a 3a 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 ception('Finder::append().method
fe5c0 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 6e 74 20 74 79 70 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 .wrong.argument.type.');.}..retu
fe5e0 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
fe600 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 63 6f 75 6e n.count().{.return.iterator_coun
fe620 74 28 24 74 68 69 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 t($this->getIterator());.}.....p
fe640 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 0a 7b rivate.function.sortAdapters().{
fe660 0a 75 61 73 6f 72 74 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 2c 20 66 75 6e 63 74 69 6f .uasort($this->adapters,.functio
fe680 6e 20 28 61 72 72 61 79 20 24 61 2c 20 61 72 72 61 79 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b n.(array.$a,.array.$b).{.if.($a[
fe6a0 27 73 65 6c 65 63 74 65 64 27 5d 20 7c 7c 20 24 62 5b 27 73 65 6c 65 63 74 65 64 27 5d 29 20 7b 'selected'].||.$b['selected']).{
fe6c0 0a 72 65 74 75 72 6e 20 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3f 20 2d 31 20 3a 20 31 3b .return.$a['selected'].?.-1.:.1;
fe6e0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3e 20 24 62 5b 27 .}..return.$a['priority'].>.$b['
fe700 70 72 69 6f 72 69 74 79 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e priority'].?.-1.:.1;.});..return
fe720 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 .$this;.}.........private.functi
fe740 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 7b 0a 69 66 20 on.searchInDirectory($dir).{.if.
fe760 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 (static::IGNORE_VCS_FILES.===.(s
fe780 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d tatic::IGNORE_VCS_FILES.&.$this-
fe7a0 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 >ignore)).{.$this->exclude.=.arr
fe7c0 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 73 65 6c 66 3a 3a 24 ay_merge($this->exclude,.self::$
fe7e0 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e vcsPatterns);.}..if.(static::IGN
fe800 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 ORE_DOT_FILES.===.(static::IGNOR
fe820 45 5f 44 4f 54 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a E_DOT_FILES.&.$this->ignore)).{.
fe840 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 5c 2e 2e 2b 28 $this->notPaths[].=.'#(^|/)\..+(
fe860 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 64 61 70 74 /|$)#';.}..foreach.($this->adapt
fe880 65 72 73 20 61 73 20 24 61 64 61 70 74 65 72 29 20 7b 0a 69 66 20 28 24 61 64 61 70 74 65 72 5b ers.as.$adapter).{.if.($adapter[
fe8a0 27 61 64 61 70 74 65 72 27 5d 2d 3e 69 73 53 75 70 70 6f 72 74 65 64 28 29 29 20 7b 0a 74 72 79 'adapter']->isSupported()).{.try
fe8c0 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 0a 2d 3e 62 75 69 6c 64 41 64 61 70 74 65 72 28 24 .{.return.$this.->buildAdapter($
fe8e0 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 29 0a 2d 3e 73 65 61 72 63 68 49 6e 44 69 adapter['adapter']).->searchInDi
fe900 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f rectory($dir);.}.catch.(Exceptio
fe920 6e 49 6e 74 65 72 66 61 63 65 20 24 65 29 20 7b 0a 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 nInterface.$e).{.}.}.}..throw.ne
fe940 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 73 75 70 70 6f 72 74 65 w.\RuntimeException('No.supporte
fe960 64 20 61 64 61 70 74 65 72 20 66 6f 75 6e 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 d.adapter.found.');.}.......priv
fe980 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 ate.function.buildAdapter(Adapte
fe9a0 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 61 rInterface.$adapter).{.return.$a
fe9c0 64 61 70 74 65 72 0a 2d 3e 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 74 68 69 73 2d 3e 66 dapter.->setFollowLinks($this->f
fe9e0 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 2d 3e 73 65 74 44 65 70 74 68 73 28 24 74 68 69 73 2d 3e 64 ollowLinks).->setDepths($this->d
fea00 65 70 74 68 73 29 0a 2d 3e 73 65 74 4d 6f 64 65 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 0a 2d 3e epths).->setMode($this->mode).->
fea20 73 65 74 45 78 63 6c 75 64 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 0a 2d 3e 73 65 74 setExclude($this->exclude).->set
fea40 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 29 0a 2d 3e 73 65 74 4e 6f 74 4e 61 6d 65 Names($this->names).->setNotName
fea60 73 28 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 0a 2d 3e 73 65 74 43 6f 6e 74 61 69 6e 73 s($this->notNames).->setContains
fea80 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 4e 6f 74 43 6f 6e 74 61 69 ($this->contains).->setNotContai
feaa0 6e 73 28 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 53 69 7a 65 ns($this->notContains).->setSize
feac0 73 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 0a 2d 3e 73 65 74 44 61 74 65 73 28 24 74 68 69 73 s($this->sizes).->setDates($this
feae0 2d 3e 64 61 74 65 73 29 0a 2d 3e 73 65 74 46 69 6c 74 65 72 73 28 24 74 68 69 73 2d 3e 66 69 6c ->dates).->setFilters($this->fil
feb00 74 65 72 73 29 0a 2d 3e 73 65 74 53 6f 72 74 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 0a 2d 3e 73 ters).->setSort($this->sort).->s
feb20 65 74 50 61 74 68 28 24 74 68 69 73 2d 3e 70 61 74 68 73 29 0a 2d 3e 73 65 74 4e 6f 74 50 61 74 etPath($this->paths).->setNotPat
feb40 68 28 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 0a 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 h($this->notPaths).->ignoreUnrea
feb60 64 61 62 6c 65 44 69 72 73 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c dableDirs($this->ignoreUnreadabl
feb80 65 44 69 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 eDirs);.}.....private.function.r
feba0 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e esetAdapterSelection().{.$this->
febc0 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 61 adapters.=.array_map(function.(a
febe0 72 72 61 79 20 24 70 72 6f 70 65 72 74 69 65 73 29 20 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 5b rray.$properties).{.$properties[
fec00 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 'selected'].=.false;..return.$pr
fec20 6f 70 65 72 74 69 65 73 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 29 3b 0a 7d operties;.},.$this->adapters);.}
fec40 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
fec60 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a fony\Component\Finder;..........
fec80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a 0a 0a ..............class.Glob.{......
feca0 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 74 6f 52 65 .....public.static.function.toRe
fecc0 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 44 6f 74 20 3d 20 74 gex($glob,.$strictLeadingDot.=.t
fece0 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 20 3d 20 74 72 75 65 rue,.$strictWildcardSlash.=.true
fed00 2c 20 24 64 65 6c 69 6d 69 74 65 72 20 3d 20 27 23 27 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 ,.$delimiter.=.'#').{.$firstByte
fed20 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 69 6e 43 .=.true;.$escaping.=.false;.$inC
fed40 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 65 47 6c urlies.=.0;.$regex.=.'';.$sizeGl
fed60 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b ob.=.strlen($glob);.for.($i.=.0;
fed80 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 2b 2b 24 69 29 20 7b 0a 24 63 61 72 20 3d 20 .$i.<.$sizeGlob;.++$i).{.$car.=.
feda0 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 7b 0a 69 66 20 $glob[$i];.if.($firstByte).{.if.
fedc0 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 ($strictLeadingDot.&&.'.'.!==.$c
fede0 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a 7d 0a 0a ar).{.$regex..=.'(?=[^\.])';.}..
fee00 24 66 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d $firstByte.=.false;.}..if.('/'.=
fee20 3d 3d 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 7d 0a ==.$car).{.$firstByte.=.true;.}.
fee40 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 24 63 61 .if.('.'.===.$car.||.'('.===.$ca
fee60 72 20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 24 63 61 r.||.')'.===.$car.||.'|'.===.$ca
fee80 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 24 63 61 r.||.'+'.===.$car.||.'^'.===.$ca
feea0 72 20 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 22 r.||.'$'.===.$car).{.$regex..=."
feec0 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d 3d 20 24 63 61 72 29 \\$car";.}.elseif.('*'.===.$car)
feee0 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 2a 27 20 3a .{.$regex..=.$escaping.?.'\\*'.:
fef00 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 2a 27 .($strictWildcardSlash.?.'[^/]*'
fef20 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 3d 3d 3d 20 24 63 61 72 .:.'.*');.}.elseif.('?'.===.$car
fef40 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 3f 27 20 ).{.$regex..=.$escaping.?.'\\?'.
fef60 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 27 :.($strictWildcardSlash.?.'[^/]'
fef80 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 61 72 29 .:.'.');.}.elseif.('{'.===.$car)
fefa0 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 7b 27 20 3a .{.$regex..=.$escaping.?.'\\{'.:
fefc0 20 27 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e 43 75 72 .'(';.if.(!$escaping).{.++$inCur
fefe0 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d 20 24 63 61 72 20 26 lies;.}.}.elseif.('}'.===.$car.&
ff000 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
ff020 69 6e 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 ing.?.'}'.:.')';.if.(!$escaping)
ff040 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 2c 27 .{.--$inCurlies;.}.}.elseif.(','
ff060 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 .===.$car.&&.$inCurlies).{.$rege
ff080 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d 20 65 6c x..=.$escaping.?.','.:.'|';.}.el
ff0a0 73 65 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 20 28 24 65 73 63 61 seif.('\\'.===.$car).{.if.($esca
ff0c0 70 69 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 63 61 70 ping).{.$regex..=.'\\\\';.$escap
ff0e0 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 69 6e 67 20 ing.=.false;.}.else.{.$escaping.
ff100 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 =.true;.}..continue;.}.else.{.$r
ff120 65 67 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 egex..=.$car;.}.$escaping.=.fals
ff140 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 6c 69 6d 69 74 65 72 2e 27 5e 27 2e 24 72 65 67 e;.}..return.$delimiter.'^'.$reg
ff160 65 78 2e 27 24 27 2e 24 64 65 6c 69 6d 69 74 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ex.'$'.$delimiter;.}.}.<?php....
ff180 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
ff1a0 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 0a 0a 0a 63 6c 61 nt\Finder\Iterator;..........cla
ff1c0 73 73 20 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 ss.CustomFilterIterator.extends.
ff1e0 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 66 69 6c 74 65 72 FilterIterator.{.private.$filter
ff200 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e s.=.array();..........public.fun
ff220 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 ction.__construct(\Iterator.$ite
ff240 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 rator,.array.$filters).{.foreach
ff260 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 21 69 73 .($filters.as.$filter).{.if.(!is
ff280 5f 63 61 6c 6c 61 62 6c 65 28 24 66 69 6c 74 65 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 _callable($filter)).{.throw.new.
ff2a0 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 49 6e 76 61 6c \InvalidArgumentException('Inval
ff2c0 69 64 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 66 id.PHP.callback.');.}.}.$this->f
ff2e0 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ilters.=.$filters;..parent::__co
ff300 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 62 6c nstruct($iterator);.}.......publ
ff320 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f ic.function.accept().{.$fileinfo
ff340 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 .=.$this->current();..foreach.($
ff360 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 this->filters.as.$filter).{.if.(
ff380 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 66 69 6c 74 65 72 false.===.call_user_func($filter
ff3a0 2c 20 24 66 69 6c 65 69 6e 66 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a ,.$fileinfo)).{.return.false;.}.
ff3c0 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a }..return.true;.}.}.<?php.......
ff3e0 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\
ff400 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 43 6f Finder\Iterator;..use.Symfony\Co
ff420 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 44 61 74 65 43 6f mponent\Finder\Comparator\DateCo
ff440 6d 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 mparator;.......class.DateRangeF
ff460 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 65 72 ilterIterator.extends.FilterIter
ff480 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 ator.{.private.$comparators.=.ar
ff4a0 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ray();........public.function.__
ff4c0 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
ff4e0 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 rray.$comparators).{.$this->comp
ff500 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a arators.=.$comparators;..parent:
ff520 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a :__construct($iterator);.}......
ff540 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c .public.function.accept().{.$fil
ff560 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 einfo.=.$this->current();..if.(!
ff580 66 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 file_exists($fileinfo->getRealPa
ff5a0 74 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 th())).{.return.false;.}..$filed
ff5c0 61 74 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a 66 6f 72 ate.=.$fileinfo->getMTime();.for
ff5e0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d each.($this->comparators.as.$com
ff600 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c pare).{.if.(!$compare->test($fil
ff620 65 64 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 edate)).{.return.false;.}.}..ret
ff640 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 urn.true;.}.}.<?php...........na
ff660 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 mespace.Symfony\Component\Finder
ff680 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 74 68 52 61 6e 67 \Iterator;.......class.DepthRang
ff6a0 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 eFilterIterator.extends.FilterIt
ff6c0 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a erator.{.private.$minDepth.=.0;.
ff6e0 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
ff700 75 63 74 28 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 20 24 uct(\RecursiveIteratorIterator.$
ff720 69 74 65 72 61 74 6f 72 2c 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 2c 20 24 6d 61 78 44 65 70 iterator,.$minDepth.=.0,.$maxDep
ff740 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 th.=.PHP_INT_MAX).{.$this->minDe
ff760 70 74 68 20 3d 20 24 6d 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 73 65 74 4d pth.=.$minDepth;.$iterator->setM
ff780 61 78 44 65 70 74 68 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3d 3d 3d 20 24 6d 61 78 44 65 70 74 axDepth(PHP_INT_MAX.===.$maxDept
ff7a0 68 20 3f 20 2d 31 20 3a 20 24 6d 61 78 44 65 70 74 68 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f h.?.-1.:.$maxDepth);..parent::__
ff7c0 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
ff7e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 blic.function.accept().{.return.
ff800 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 67 65 74 44 65 $this->getInnerIterator()->getDe
ff820 70 74 68 28 29 20 3e 3d 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 3b 0a 7d 0a 7d 0a 3c 3f pth().>=.$this->minDepth;.}.}.<?
ff840 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\
ff860 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a Component\Finder\Iterator;......
ff880 0a 63 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 .class.ExcludeDirectoryFilterIte
ff8a0 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 69 6d 70 rator.extends.FilterIterator.imp
ff8c0 6c 65 6d 65 6e 74 73 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 lements.\RecursiveIterator.{.pri
ff8e0 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 69 73 52 65 63 75 72 vate.$iterator;.private.$isRecur
ff900 73 69 76 65 3b 0a 70 72 69 76 61 74 65 20 24 65 78 63 6c 75 64 65 64 44 69 72 73 20 3d 20 61 72 sive;.private.$excludedDirs.=.ar
ff920 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 65 78 63 6c 75 64 65 64 50 61 74 74 65 72 6e 3b ray();.private.$excludedPattern;
ff940 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
ff960 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 uct(\Iterator.$iterator,.array.$
ff980 64 69 72 65 63 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d directories).{.$this->iterator.=
ff9a0 20 24 69 74 65 72 61 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 69 73 52 65 63 75 72 73 69 76 65 20 3d .$iterator;.$this->isRecursive.=
ff9c0 20 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 52 65 63 75 72 73 69 76 65 .$iterator.instanceof.\Recursive
ff9e0 49 74 65 72 61 74 6f 72 3b 0a 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 Iterator;.$patterns.=.array();.f
ffa00 6f 72 65 61 63 68 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 24 64 69 72 65 63 74 6f oreach.($directories.as.$directo
ffa20 72 79 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 52 65 63 75 72 73 69 76 65 20 7c 7c ry).{.if.(!$this->isRecursive.||
ffa40 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 64 69 72 65 63 74 6f 72 79 2c 20 27 2f .false.!==.strpos($directory,.'/
ffa60 27 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 70 72 65 67 5f 71 75 6f 74 65 28 24 ')).{.$patterns[].=.preg_quote($
ffa80 64 69 72 65 63 74 6f 72 79 2c 20 27 23 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d directory,.'#');.}.else.{.$this-
ffaa0 3e 65 78 63 6c 75 64 65 64 44 69 72 73 5b 24 64 69 72 65 63 74 6f 72 79 5d 20 3d 20 74 72 75 65 >excludedDirs[$directory].=.true
ffac0 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 74 74 65 72 6e 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 ;.}.}.if.($patterns).{.$this->ex
ffae0 63 6c 75 64 65 64 50 61 74 74 65 72 6e 20 3d 20 27 23 28 3f 3a 5e 7c 2f 29 28 3f 3a 27 2e 69 6d cludedPattern.=.'#(?:^|/)(?:'.im
ffb00 70 6c 6f 64 65 28 27 7c 27 2c 20 24 70 61 74 74 65 72 6e 73 29 2e 27 29 28 3f 3a 2f 7c 24 29 23 plode('|',.$patterns).')(?:/|$)#
ffb20 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 ';.}..parent::__construct($itera
ffb40 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 tor);.}.......public.function.ac
ffb60 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 65 63 75 72 73 69 76 65 20 cept().{.if.($this->isRecursive.
ffb80 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 64 44 69 72 73 5b 24 74 68 &&.isset($this->excludedDirs[$th
ffba0 69 73 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 is->getFilename()]).&&.$this->is
ffbc0 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 Dir()).{.return.false;.}..if.($t
ffbe0 68 69 73 2d 3e 65 78 63 6c 75 64 65 64 50 61 74 74 65 72 6e 29 20 7b 0a 24 70 61 74 68 20 3d 20 his->excludedPattern).{.$path.=.
ffc00 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 28 $this->isDir().?.$this->current(
ffc20 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 73 )->getRelativePathname().:.$this
ffc40 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 0a ->current()->getRelativePath();.
ffc60 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 27 2f 27 2c 20 24 $path.=.str_replace('\\',.'/',.$
ffc80 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 74 68 69 73 path);..return.!preg_match($this
ffca0 2d 3e 65 78 63 6c 75 64 65 64 50 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 ->excludedPattern,.$path);.}..re
ffcc0 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 turn.true;.}..public.function.ha
ffce0 73 43 68 69 6c 64 72 65 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 sChildren().{.return.$this->isRe
ffd00 63 75 72 73 69 76 65 20 26 26 20 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 2d 3e 68 61 73 43 cursive.&&.$this->iterator->hasC
ffd20 68 69 6c 64 72 65 6e 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 hildren();.}..public.function.ge
ffd40 74 43 68 69 6c 64 72 65 6e 28 29 0a 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 6e 65 77 20 73 65 tChildren().{.$children.=.new.se
ffd60 6c 66 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 43 68 69 6c 64 72 65 6e 28 lf($this->iterator->getChildren(
ffd80 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 24 63 68 69 6c 64 72 65 6e 2d 3e 65 78 63 6c 75 64 65 64 ),.array());.$children->excluded
ffda0 44 69 72 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 64 44 69 72 73 3b 0a 24 63 68 69 Dirs.=.$this->excludedDirs;.$chi
ffdc0 6c 64 72 65 6e 2d 3e 65 78 63 6c 75 64 65 64 50 61 74 74 65 72 6e 20 3d 20 24 74 68 69 73 2d 3e ldren->excludedPattern.=.$this->
ffde0 65 78 63 6c 75 64 65 64 50 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 63 68 69 6c 64 72 excludedPattern;..return.$childr
ffe00 65 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 61 63 en;.}.}.<?php...........namespac
ffe20 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
ffe40 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 tor;..use.Symfony\Component\Find
ffe60 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 65 er\SplFileInfo;.......class.File
ffe80 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 72 PathsIterator.extends.\ArrayIter
ffea0 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 0a ator.{....private.$baseDir;.....
ffec0 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 76 private.$baseDirLength;.....priv
ffee0 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 61 ate.$subPath;.....private.$subPa
fff00 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 0a thname;.....private.$current;...
fff20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ...public.function.__construct(a
fff40 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 3e rray.$paths,.$baseDir).{.$this->
fff60 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 44 baseDir.=.$baseDir;.$this->baseD
fff80 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 61 irLength.=.strlen($baseDir);..pa
fffa0 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 0a rent::__construct($paths);.}....
fffc0 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 65 ....public.function.__call($name
fffe0 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 6c ,.array.$arguments).{.return.cal
100000 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 63 l_user_func_array(array($this->c
100020 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 7d urrent(),.$name),.$arguments);.}
100040 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 29 .......public.function.current()
100060 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 0a .{.return.$this->current;.}.....
100080 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 24 public.function.key().{.return.$
1000a0 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 0a this->current->getPathname();.}.
1000c0 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 74 .public.function.next().{.parent
1000e0 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 73 ::next();.$this->buildProperties
100100 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 0a ();.}..public.function.rewind().
100120 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 64 {.parent::rewind();.$this->build
100140 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 74 Properties();.}.....public.funct
100160 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 2d ion.getSubPath().{.return.$this-
100180 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 20 >subPath;.}.....public.function.
1001a0 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 2d getSubPathname().{.return.$this-
1001c0 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 6f >subPathname;.}..private.functio
1001e0 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 50 n.buildProperties().{.$absoluteP
100200 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 74 ath.=.parent::current();..if.($t
100220 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 74 his->baseDir.===.substr($absolut
100240 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 29 ePath,.0,.$this->baseDirLength))
100260 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 75 .{.$this->subPathname.=.ltrim(su
100280 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 44 bstr($absolutePath,.$this->baseD
1002a0 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 6d irLength),.'/\\');.$dir.=.dirnam
1002c0 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 75 e($this->subPathname);.$this->su
1002e0 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 72 bPath.=.'.'.===.$dir.?.''.:.$dir
100300 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 69 ;.}.else.{.$this->subPath.=.$thi
100320 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 63 s->subPathname.=.'';.}..$this->c
100340 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 3a urrent.=.new.SplFileInfo(parent:
100360 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 69 :current(),.$this->subPath,.$thi
100380 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 0a s->subPathname);.}.}.<?php......
1003a0 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
1003c0 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 \Finder\Iterator;.......class.Fi
1003e0 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c leTypeFilterIterator.extends.Fil
100400 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d terIterator.{.const.ONLY_FILES.=
100420 20 31 3b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a .1;.const.ONLY_DIRECTORIES.=.2;.
100440 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .private.$mode;........public.fu
100460 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 nction.__construct(\Iterator.$it
100480 65 72 61 74 6f 72 2c 20 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 erator,.$mode).{.$this->mode.=.$
1004a0 6d 6f 64 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 mode;..parent::__construct($iter
1004c0 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 ator);.}.......public.function.a
1004e0 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 ccept().{.$fileinfo.=.$this->cur
100500 72 65 6e 74 28 29 3b 0a 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 rent();.if.(self::ONLY_DIRECTORI
100520 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 ES.===.(self::ONLY_DIRECTORIES.&
100540 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 46 69 .$this->mode).&&.$fileinfo->isFi
100560 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 le()).{.return.false;.}.elseif.(
100580 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 self::ONLY_FILES.===.(self::ONLY
1005a0 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e _FILES.&.$this->mode).&&.$filein
1005c0 66 6f 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a fo->isDir()).{.return.false;.}..
1005e0 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..........
100600 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
100620 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 der\Iterator;........class.Filec
100640 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c ontentFilterIterator.extends.Mul
100660 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 tiplePcreFilterIterator.{......p
100680 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 ublic.function.accept().{.if.(!$
1006a0 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f this->matchRegexps.&&.!$this->no
1006c0 4d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a MatchRegexps).{.return.true;.}..
1006e0 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 0a 69 $fileinfo.=.$this->current();..i
100700 66 20 28 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 69 72 28 29 20 7c 7c 20 21 24 66 69 6c 65 69 f.($fileinfo->isDir().||.!$filei
100720 6e 66 6f 2d 3e 69 73 52 65 61 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 nfo->isReadable()).{.return.fals
100740 65 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 43 e;.}..$content.=.$fileinfo->getC
100760 6f 6e 74 65 6e 74 73 28 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 72 65 74 75 ontents();.if.(!$content).{.retu
100780 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e rn.false;.}....foreach.($this->n
1007a0 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 oMatchRegexps.as.$regex).{.if.(p
1007c0 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 reg_match($regex,.$content)).{.r
1007e0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 eturn.false;.}.}....$match.=.tru
100800 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d e;.if.($this->matchRegexps).{.$m
100820 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 atch.=.false;.foreach.($this->ma
100840 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
100860 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 _match($regex,.$content)).{.retu
100880 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d rn.true;.}.}.}..return.$match;.}
1008a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 .........protected.function.toRe
1008c0 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 gex($str).{.return.$this->isRege
1008e0 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 x($str).?.$str.:.'/'.preg_quote(
100900 24 73 74 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a $str,.'/').'/';.}.}.<?php.......
100920 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\
100940 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 43 6f Finder\Iterator;..use.Symfony\Co
100960 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 73 mponent\Finder\Expression\Expres
100980 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 sion;.......class.FilenameFilter
1009a0 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 6c Iterator.extends.MultiplePcreFil
1009c0 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 69 terIterator.{......public.functi
1009e0 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d on.accept().{.$filename.=.$this-
100a00 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f >current()->getFilename();....fo
100a20 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 reach.($this->noMatchRegexps.as.
100a40 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c $regex).{.if.(preg_match($regex,
100a60 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d .$filename)).{.return.false;.}.}
100a80 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 ....$match.=.true;.if.($this->ma
100aa0 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f tchRegexps).{.$match.=.false;.fo
100ac0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 reach.($this->matchRegexps.as.$r
100ae0 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 egex).{.if.(preg_match($regex,.$
100b00 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a filename)).{.return.true;.}.}.}.
100b20 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f .return.$match;.}............pro
100b40 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 0a tected.function.toRegex($str).{.
100b60 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 72 29 2d return.Expression::create($str)-
100b80 3e 67 65 74 52 65 67 65 78 28 29 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 >getRegex()->render();.}.}.<?php
100ba0 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
100bc0 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 0a 0a ponent\Finder\Iterator;.........
100be0 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 abstract.class.FilterIterator.ex
100c00 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 tends.\FilterIterator.{.......pu
100c20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 69 74 65 72 61 74 blic.function.rewind().{.$iterat
100c40 6f 72 20 3d 20 24 74 68 69 73 3b 0a 77 68 69 6c 65 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 or.=.$this;.while.($iterator.ins
100c60 74 61 6e 63 65 6f 66 20 5c 4f 75 74 65 72 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 6e 6e 65 72 tanceof.\OuterIterator).{.$inner
100c80 49 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 Iterator.=.$iterator->getInnerIt
100ca0 65 72 61 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 69 6e erator();..if.($innerIterator.in
100cc0 73 74 61 6e 63 65 6f 66 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 stanceof.RecursiveDirectoryItera
100ce0 74 6f 72 29 20 7b 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 69 73 52 65 77 tor).{.if.($innerIterator->isRew
100d00 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 6e 65 78 indable()).{.$innerIterator->nex
100d20 74 28 29 3b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d t();.$innerIterator->rewind();.}
100d40 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 .}.elseif.($iterator->getInnerIt
100d60 65 72 61 74 6f 72 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 erator().instanceof.\FilesystemI
100d80 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 terator).{.$iterator->getInnerIt
100da0 65 72 61 74 6f 72 28 29 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 erator()->next();.$iterator->get
100dc0 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 24 69 74 InnerIterator()->rewind();.}.$it
100de0 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 erator.=.$iterator->getInnerIter
100e00 61 74 6f 72 28 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 7d ator();.}..parent::rewind();.}.}
100e20 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
100e40 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 75 ny\Component\Finder\Iterator;..u
100e60 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 78 70 72 se.Symfony\Component\Finder\Expr
100e80 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 ession\Expression;.......abstrac
100ea0 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 t.class.MultiplePcreFilterIterat
100ec0 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 6f 74 or.extends.FilterIterator.{.prot
100ee0 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 ected.$matchRegexps.=.array();.p
100f00 72 6f 74 65 63 74 65 64 20 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 rotected.$noMatchRegexps.=.array
100f20 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ();.........public.function.__co
100f40 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 72 nstruct(\Iterator.$iterator,.arr
100f60 61 79 20 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 ay.$matchPatterns,.array.$noMatc
100f80 68 50 61 74 74 65 72 6e 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 hPatterns).{.foreach.($matchPatt
100fa0 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 erns.as.$pattern).{.$this->match
100fc0 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 Regexps[].=.$this->toRegex($patt
100fe0 65 72 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 ern);.}..foreach.($noMatchPatter
101000 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 ns.as.$pattern).{.$this->noMatch
101020 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 Regexps[].=.$this->toRegex($patt
101040 65 72 6e 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 ern);.}..parent::__construct($it
101060 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e erator);.}.........protected.fun
101080 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 ction.isRegex($str).{.return.Exp
1010a0 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 72 29 2d 3e 69 73 52 65 67 65 78 28 29 ression::create($str)->isRegex()
1010c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 ;.}.........abstract.protected.f
1010e0 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a unction.toRegex($str);.}.<?php..
101100 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
101120 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 0a 63 6c 61 nent\Finder\Iterator;........cla
101140 73 73 20 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 ss.PathFilterIterator.extends.Mu
101160 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a ltiplePcreFilterIterator.{......
101180 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
1011a0 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 name.=.$this->current()->getRela
1011c0 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 tivePathname();..if.('\\'.===.DI
1011e0 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d RECTORY_SEPARATOR).{.$filename.=
101200 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 27 2f 27 2c 20 24 66 69 6c 65 6e 61 6d .str_replace('\\',.'/',.$filenam
101220 65 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 74 63 68 e);.}....foreach.($this->noMatch
101240 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 61 Regexps.as.$regex).{.if.(preg_ma
101260 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 6e tch($regex,.$filename)).{.return
101280 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 .false;.}.}....$match.=.true;.if
1012a0 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 .($this->matchRegexps).{.$match.
1012c0 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 =.false;.foreach.($this->matchRe
1012e0 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 gexps.as.$regex).{.if.(preg_matc
101300 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 6e 20 74 h($regex,.$filename)).{.return.t
101320 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a rue;.}.}.}..return.$match;.}....
101340 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 74 ............protected.function.t
101360 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 oRegex($str).{.return.$this->isR
101380 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f egex($str).?.$str.:.'/'.preg_quo
1013a0 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a te($str,.'/').'/';.}.}.<?php....
1013c0 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
1013e0 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
101400 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 5c 41 63 63 65 \Component\Finder\Exception\Acce
101420 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ssDeniedException;.use.Symfony\C
101440 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a omponent\Finder\SplFileInfo;....
101460 0a 0a 0a 63 6c 61 73 73 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 ...class.RecursiveDirectoryItera
101480 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 tor.extends.\RecursiveDirectoryI
1014a0 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 terator.{....private.$ignoreUnre
1014c0 61 64 61 62 6c 65 44 69 72 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 77 69 6e 64 61 adableDirs;.....private.$rewinda
1014e0 62 6c 65 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 72 6f 6f 74 50 61 74 68 3b 0a 70 72 69 76 61 ble;....private.$rootPath;.priva
101500 74 65 20 24 73 75 62 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 64 69 72 65 63 74 6f 72 79 53 te.$subPath;.private.$directoryS
101520 65 70 61 72 61 74 6f 72 20 3d 20 27 2f 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 eparator.=.'/';...........public
101540 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 24 66 6c .function.__construct($path,.$fl
101560 61 67 73 2c 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 66 61 6c ags,.$ignoreUnreadableDirs.=.fal
101580 73 65 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 6c 66 3a 3a 43 55 52 52 45 4e se).{.if.($flags.&.(self::CURREN
1015a0 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 T_AS_PATHNAME.|.self::CURRENT_AS
1015c0 5f 53 45 4c 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 _SELF)).{.throw.new.\RuntimeExce
1015e0 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f 6e 6c 79 20 73 75 70 70 6f 72 ption('This.iterator.only.suppor
101600 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 20 66 69 6c 65 69 6e 66 6f 2e t.returning.current.as.fileinfo.
101620 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 ');.}..parent::__construct($path
101640 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 ,.$flags);.$this->ignoreUnreadab
101660 6c 65 44 69 72 73 20 3d 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 3b 0a leDirs.=.$ignoreUnreadableDirs;.
101680 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 74 68 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 74 68 $this->rootPath.=.(string).$path
1016a0 3b 0a 69 66 20 28 27 2f 27 20 21 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f ;.if.('/'.!==.DIRECTORY_SEPARATO
1016c0 52 20 26 26 20 21 28 24 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 55 4e 49 58 5f 50 41 54 48 53 R.&&.!($flags.&.self::UNIX_PATHS
1016e0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 72 65 63 74 6f 72 79 53 65 70 61 72 61 74 6f 72 20 3d )).{.$this->directorySeparator.=
101700 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a .DIRECTORY_SEPARATOR;.}.}.......
101720 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 0a 0a 69 66 public.function.current().{...if
101740 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d .(null.===.$subPathname.=.$this-
101760 3e 73 75 62 50 61 74 68 29 20 7b 0a 24 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 24 74 68 69 73 >subPath).{.$subPathname.=.$this
101780 2d 3e 73 75 62 50 61 74 68 20 3d 20 28 73 74 72 69 6e 67 29 20 24 74 68 69 73 2d 3e 67 65 74 53 ->subPath.=.(string).$this->getS
1017a0 75 62 50 61 74 68 28 29 3b 0a 7d 0a 69 66 20 28 27 27 20 21 3d 3d 20 24 73 75 62 50 61 74 68 6e ubPath();.}.if.(''.!==.$subPathn
1017c0 61 6d 65 29 20 7b 0a 24 73 75 62 50 61 74 68 6e 61 6d 65 20 2e 3d 20 24 74 68 69 73 2d 3e 64 69 ame).{.$subPathname..=.$this->di
1017e0 72 65 63 74 6f 72 79 53 65 70 61 72 61 74 6f 72 3b 0a 7d 0a 24 73 75 62 50 61 74 68 6e 61 6d 65 rectorySeparator;.}.$subPathname
101800 20 2e 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 72 65 74 75 72 ..=.$this->getFilename();..retur
101820 6e 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 74 n.new.SplFileInfo($this->rootPat
101840 68 2e 24 74 68 69 73 2d 3e 64 69 72 65 63 74 6f 72 79 53 65 70 61 72 61 74 6f 72 2e 24 73 75 62 h.$this->directorySeparator.$sub
101860 50 61 74 68 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 2c 20 24 73 75 62 50 61 Pathname,.$this->subPath,.$subPa
101880 74 68 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e thname);.}.......public.function
1018a0 20 67 65 74 43 68 69 6c 64 72 65 6e 28 29 0a 7b 0a 74 72 79 20 7b 0a 24 63 68 69 6c 64 72 65 6e .getChildren().{.try.{.$children
1018c0 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 68 69 6c 64 72 65 6e 28 29 3b 0a 0a 69 66 20 28 24 .=.parent::getChildren();..if.($
1018e0 63 68 69 6c 64 72 65 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c 66 29 20 7b 0a 0a 20 24 63 children.instanceof.self).{...$c
101900 68 69 6c 64 72 65 6e 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 hildren->ignoreUnreadableDirs.=.
101920 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 3b 0a 0a 0a 20 $this->ignoreUnreadableDirs;....
101940 24 63 68 69 6c 64 72 65 6e 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 26 24 74 68 69 73 2d 3e $children->rewindable.=.&$this->
101960 72 65 77 69 6e 64 61 62 6c 65 3b 0a 24 63 68 69 6c 64 72 65 6e 2d 3e 72 6f 6f 74 50 61 74 68 20 rewindable;.$children->rootPath.
101980 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 68 =.$this->rootPath;.}..return.$ch
1019a0 69 6c 64 72 65 6e 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 ildren;.}.catch.(\UnexpectedValu
1019c0 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 67 6e 6f eException.$e).{.if.($this->igno
1019e0 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 reUnreadableDirs).{...return.new
101a00 20 5c 52 65 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 .\RecursiveArrayIterator(array()
101a20 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 41 63 63 65 73 73 44 65 6e 69 );.}.else.{.throw.new.AccessDeni
101a40 65 64 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 24 65 edException($e->getMessage(),.$e
101a60 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ->getCode(),.$e);.}.}.}.....publ
101a80 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 ic.function.rewind().{.if.(false
101aa0 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 .===.$this->isRewindable()).{.re
101ac0 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 70 61 72 65 6e 74 3a 3a 6e 65 78 74 28 29 3b 0a 0a 70 61 72 65 turn;.}....parent::next();..pare
101ae0 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e nt::rewind();.}.......public.fun
101b00 63 74 69 6f 6e 20 69 73 52 65 77 69 6e 64 61 62 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 ction.isRewindable().{.if.(null.
101b20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 !==.$this->rewindable).{.return.
101b40 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 $this->rewindable;.}..if.(false.
101b60 21 3d 3d 20 24 73 74 72 65 61 6d 20 3d 20 40 6f 70 65 6e 64 69 72 28 24 74 68 69 73 2d 3e 67 65 !==.$stream.=.@opendir($this->ge
101b80 74 50 61 74 68 28 29 29 29 20 7b 0a 24 69 6e 66 6f 73 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f tPath())).{.$infos.=.stream_get_
101ba0 6d 65 74 61 5f 64 61 74 61 28 24 73 74 72 65 61 6d 29 3b 0a 63 6c 6f 73 65 64 69 72 28 24 73 74 meta_data($stream);.closedir($st
101bc0 72 65 61 6d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 73 5b 27 73 65 65 6b 61 62 6c 65 27 5d 29 20 ream);..if.($infos['seekable']).
101be0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 74 72 75 {.return.$this->rewindable.=.tru
101c00 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 e;.}.}..return.$this->rewindable
101c20 20 3d 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 6e 61 .=.false;.}.}.<?php...........na
101c40 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 mespace.Symfony\Component\Finder
101c60 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e \Iterator;..use.Symfony\Componen
101c80 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 6f 6d 70 61 72 t\Finder\Comparator\NumberCompar
101ca0 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 ator;.......class.SizeRangeFilte
101cc0 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 rIterator.extends.FilterIterator
101ce0 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 61 79 28 .{.private.$comparators.=.array(
101d00 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 );........public.function.__cons
101d20 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 truct(\Iterator.$iterator,.array
101d40 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 72 61 74 .$comparators).{.$this->comparat
101d60 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 5f 5f 63 ors.=.$comparators;..parent::__c
101d80 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 62 onstruct($iterator);.}.......pub
101da0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 lic.function.accept().{.$fileinf
101dc0 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 o.=.$this->current();.if.(!$file
101de0 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d info->isFile()).{.return.true;.}
101e00 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 53 69 7a 65 ..$filesize.=.$fileinfo->getSize
101e20 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 ();.foreach.($this->comparators.
101e40 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 as.$compare).{.if.(!$compare->te
101e60 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d st($filesize)).{.return.false;.}
101e80 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .}..return.true;.}.}.<?php......
101ea0 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
101ec0 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f \Finder\Iterator;.......class.So
101ee0 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 rtableIterator.implements.\Itera
101f00 74 6f 72 41 67 67 72 65 67 61 74 65 0a 7b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4e 41 4d torAggregate.{.const.SORT_BY_NAM
101f20 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 20 32 3b 0a 63 E.=.1;.const.SORT_BY_TYPE.=.2;.c
101f40 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 20 33 3b 0a onst.SORT_BY_ACCESSED_TIME.=.3;.
101f60 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 20 34 3b 0a const.SORT_BY_CHANGED_TIME.=.4;.
101f80 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 20 35 3b const.SORT_BY_MODIFIED_TIME.=.5;
101fa0 0a 0a 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 73 6f ..private.$iterator;.private.$so
101fc0 72 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 rt;..........public.function.__c
101fe0 6f 6e 73 74 72 75 63 74 28 5c 54 72 61 76 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 6f 72 2c onstruct(\Traversable.$iterator,
102000 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 .$sort).{.$this->iterator.=.$ite
102020 72 61 74 6f 72 3b 0a 0a 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d rator;..if.(self::SORT_BY_NAME.=
102040 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 ==.$sort).{.$this->sort.=.functi
102060 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e on.($a,.$b).{.return.strcmp($a->
102080 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 getRealpath(),.$b->getRealpath()
1020a0 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 );.};.}.elseif.(self::SORT_BY_TY
1020c0 50 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 PE.===.$sort).{.$this->sort.=.fu
1020e0 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 69 66 20 28 24 61 2d 3e 69 73 44 69 72 28 nction.($a,.$b).{.if.($a->isDir(
102100 29 20 26 26 20 24 62 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a ).&&.$b->isFile()).{.return.-1;.
102120 7d 20 65 6c 73 65 69 66 20 28 24 61 2d 3e 69 73 46 69 6c 65 28 29 20 26 26 20 24 62 2d 3e 69 73 }.elseif.($a->isFile().&&.$b->is
102140 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 Dir()).{.return.1;.}..return.str
102160 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 cmp($a->getRealpath(),.$b->getRe
102180 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f alpath());.};.}.elseif.(self::SO
1021a0 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b RT_BY_ACCESSED_TIME.===.$sort).{
1021c0 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 .$this->sort.=.function.($a,.$b)
1021e0 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 41 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e .{.return.($a->getATime().-.$b->
102200 67 65 74 41 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a getATime());.};.}.elseif.(self::
102220 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 SORT_BY_CHANGED_TIME.===.$sort).
102240 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 {.$this->sort.=.function.($a,.$b
102260 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 43 54 69 6d 65 28 29 20 2d 20 24 62 2d ).{.return.($a->getCTime().-.$b-
102280 3e 67 65 74 43 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a >getCTime());.};.}.elseif.(self:
1022a0 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 :SORT_BY_MODIFIED_TIME.===.$sort
1022c0 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 ).{.$this->sort.=.function.($a,.
1022e0 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 4d 54 69 6d 65 28 29 20 2d 20 24 $b).{.return.($a->getMTime().-.$
102300 62 2d 3e 67 65 74 4d 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f b->getMTime());.};.}.elseif.(is_
102320 63 61 6c 6c 61 62 6c 65 28 24 73 6f 72 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d callable($sort)).{.$this->sort.=
102340 20 24 73 6f 72 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 .$sort;.}.else.{.throw.new.\Inva
102360 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 6f 72 74 61 62 lidArgumentException('The.Sortab
102380 6c 65 49 74 65 72 61 74 6f 72 20 74 61 6b 65 73 20 61 20 50 48 50 20 63 61 6c 6c 61 62 6c 65 20 leIterator.takes.a.PHP.callable.
1023a0 6f 72 20 61 20 76 61 6c 69 64 20 62 75 69 6c 74 2d 69 6e 20 73 6f 72 74 20 61 6c 67 6f 72 69 74 or.a.valid.built-in.sort.algorit
1023c0 68 6d 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 hm.as.an.argument.');.}.}..publi
1023e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 24 61 72 72 61 c.function.getIterator().{.$arra
102400 79 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 69 74 65 y.=.iterator_to_array($this->ite
102420 72 61 74 6f 72 2c 20 74 72 75 65 29 3b 0a 75 61 73 6f 72 74 28 24 61 72 72 61 79 2c 20 24 74 68 rator,.true);.uasort($array,.$th
102440 69 73 2d 3e 73 6f 72 74 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 is->sort);..return.new.\ArrayIte
102460 72 61 74 6f 72 28 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 rator($array);.}.}.Copyright.(c)
102480 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 0a 50 65 72 .2004-2015.Fabien.Potencier..Per
1024a0 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 72 65 65 20 mission.is.hereby.granted,.free.
1024c0 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 61 69 6e 69 of.charge,.to.any.person.obtaini
1024e0 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 6e 64 20 61 ng.a.copy.of.this.software.and.a
102500 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 73 20 28 74 ssociated.documentation.files.(t
102520 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 68 65 20 53 he."Software"),.to.deal.in.the.S
102540 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 20 69 6e 63 oftware.without.restriction,.inc
102560 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 65 20 72 69 luding.without.limitation.the.ri
102580 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 65 72 67 65 ghts.to.use,.copy,.modify,.merge
1025a0 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 63 65 6e 73 ,.publish,.distribute,.sublicens
1025c0 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 20 53 6f 66 e,.and/or.sell.copies.of.the.Sof
1025e0 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 20 74 6f 20 tware,.and.to.permit.persons.to.
102600 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 65 64 0a 74 whom.the.Software.is.furnished.t
102620 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 6f 77 69 6e o.do.so,.subject.to.the.followin
102640 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 79 72 69 67 g.conditions:..The.above.copyrig
102660 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 6e 20 6e 6f ht.notice.and.this.permission.no
102680 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 6c 0a 63 6f tice.shall.be.included.in.all.co
1026a0 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 20 6f 66 20 pies.or.substantial.portions.of.
1026c0 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 49 53 20 50 the.Software...THE.SOFTWARE.IS.P
1026e0 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 52 41 4e 54 ROVIDED."AS.IS",.WITHOUT.WARRANT
102700 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 50 4c 49 45 Y.OF.ANY.KIND,.EXPRESS.OR.IMPLIE
102720 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 20 54 4f 20 D,.INCLUDING.BUT.NOT.LIMITED.TO.
102740 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 49 4c 49 54 THE.WARRANTIES.OF.MERCHANTABILIT
102760 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 50 55 52 50 Y,.FITNESS.FOR.A.PARTICULAR.PURP
102780 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 4e 4f 20 45 OSE.AND.NONINFRINGEMENT..IN.NO.E
1027a0 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 50 59 52 49 VENT.SHALL.THE.AUTHORS.OR.COPYRI
1027c0 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 59 20 43 4c GHT.HOLDERS.BE.LIABLE.FOR.ANY.CL
1027e0 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 49 54 59 2c AIM,.DAMAGES.OR.OTHER.LIABILITY,
102800 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 54 52 41 43 .WHETHER.IN.AN.ACTION.OF.CONTRAC
102820 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 47 20 46 52 T,.TORT.OR.OTHERWISE,.ARISING.FR
102840 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 57 49 54 48 OM,.OUT.OF.OR.IN.CONNECTION.WITH
102860 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 4f 54 48 45 .THE.SOFTWARE.OR.THE.USE.OR.OTHE
102880 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 3c 3f 70 68 R.DEALINGS.IN.THE.SOFTWARE..<?ph
1028a0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
1028c0 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 mponent\Finder\Shell;.....class.
1028e0 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 65 6e 74 3b 0a 0a 0a Command.{....private.$parent;...
102900 0a 0a 70 72 69 76 61 74 65 20 24 62 69 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 ..private.$bits.=.array();.....p
102920 72 69 76 61 74 65 20 24 6c 61 62 65 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 rivate.$labels.=.array();.....pr
102940 69 76 61 74 65 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ivate.$errorHandler;.......publi
102960 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 24 c.function.__construct(Command.$
102980 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 20 3d parent.=.null).{.$this->parent.=
1029a0 20 24 70 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$parent;.}.......public.functio
1029c0 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 6a n.__toString().{.return.$this->j
1029e0 6f 69 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 oin();.}.........public.static.f
102a00 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d unction.create(Command.$parent.=
102a20 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 70 61 72 65 6e 74 .null).{.return.new.self($parent
102a40 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 74 );.}.........public.static.funct
102a60 69 6f 6e 20 65 73 63 61 70 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 ion.escape($input).{.return.esca
102a80 70 65 73 68 65 6c 6c 63 6d 64 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 peshellcmd($input);.}.........pu
102aa0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 69 6e 70 75 blic.static.function.quote($inpu
102ac0 74 29 0a 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 6e 70 75 t).{.return.escapeshellarg($inpu
102ae0 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 61 64 t);.}.........public.function.ad
102b00 64 28 24 62 69 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 24 62 69 74 3b 0a d($bit).{.$this->bits[].=.$bit;.
102b20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
102b40 66 75 6e 63 74 69 6f 6e 20 74 6f 70 28 24 62 69 74 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 function.top($bit).{.array_unshi
102b60 66 74 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 62 69 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ft($this->bits,.$bit);..foreach.
102b80 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 20 61 73 20 24 6c 61 62 65 6c 20 3d 3e 20 24 69 6e 64 ($this->labels.as.$label.=>.$ind
102ba0 65 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 2b 3d 20 31 ex).{.$this->labels[$label].+=.1
102bc0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ;.}..return.$this;.}.........pub
102be0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 28 24 61 72 67 29 0a 7b 0a 24 74 68 69 73 2d 3e lic.function.arg($arg).{.$this->
102c00 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 71 75 6f 74 65 28 24 61 72 67 29 3b 0a 0a 72 65 74 bits[].=.self::quote($arg);..ret
102c20 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
102c40 74 69 6f 6e 20 63 6d 64 28 24 65 73 63 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d tion.cmd($esc).{.$this->bits[].=
102c60 20 73 65 6c 66 3a 3a 65 73 63 61 70 65 28 24 65 73 63 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 .self::escape($esc);..return.$th
102c80 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 is;.}...........public.function.
102ca0 69 6e 73 28 24 6c 61 62 65 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c ins($label).{.if.(isset($this->l
102cc0 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e abels[$label])).{.throw.new.\Run
102ce0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 timeException(sprintf('Label."%s
102d00 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a ".already.exists.',.$label));.}.
102d20 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 65 28 24 74 .$this->bits[].=.self::create($t
102d40 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 3d 20 63 6f his);.$this->labels[$label].=.co
102d60 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 74 73 29 20 2d 20 31 3b 0a 0a 72 65 74 75 72 6e 20 24 74 unt($this->bits).-.1;..return.$t
102d80 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d his->bits[$this->labels[$label]]
102da0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ;.}...........public.function.ge
102dc0 74 28 24 6c 61 62 65 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 t($label).{.if.(!isset($this->la
102de0 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 bels[$label])).{.throw.new.\Runt
102e00 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 imeException(sprintf('Label."%s"
102e20 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a .does.not.exist.',.$label));.}..
102e40 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 return.$this->bits[$this->labels
102e60 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 [$label]];.}.........public.func
102e80 74 69 6f 6e 20 65 6e 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d tion.end().{.if.(null.===.$this-
102ea0 3e 70 61 72 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 >parent).{.throw.new.\RuntimeExc
102ec0 65 70 74 69 6f 6e 28 27 43 61 6c 6c 69 6e 67 20 65 6e 64 20 6f 6e 20 72 6f 6f 74 20 63 6f 6d 6d eption('Calling.end.on.root.comm
102ee0 61 6e 64 20 64 6f 65 73 6e 5c 27 74 20 6d 61 6b 65 20 73 65 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 72 and.doesn\'t.make.sense.');.}..r
102f00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 eturn.$this->parent;.}.......pub
102f20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 6e 67 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 lic.function.length().{.return.c
102f40 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ount($this->bits);.}.......publi
102f60 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 5c 43 6c 6f 73 c.function.setErrorHandler(\Clos
102f80 75 72 65 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f ure.$errorHandler).{.$this->erro
102fa0 72 48 61 6e 64 6c 65 72 20 3d 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 72 65 74 75 72 rHandler.=.$errorHandler;..retur
102fc0 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 n.$this;.}.....public.function.g
102fe0 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d etErrorHandler().{.return.$this-
103000 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 >errorHandler;.}.........public.
103020 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d function.execute().{.if.(null.==
103040 3d 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 =.$errorHandler.=.$this->errorHa
103060 6e 64 6c 65 72 29 20 7b 0a 65 78 65 63 28 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 24 6f 75 ndler).{.exec($this->join(),.$ou
103080 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f tput);.}.else.{.$process.=.proc_
1030a0 6f 70 65 6e 28 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 61 72 72 61 79 28 30 20 3d 3e 20 61 open($this->join(),.array(0.=>.a
1030c0 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 20 31 20 3d 3e 20 61 72 72 61 79 28 27 70 rray('pipe',.'r'),.1.=>.array('p
1030e0 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',.'
103100 77 27 29 29 2c 20 24 70 69 70 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f 73 70 w')),.$pipes);.$output.=.preg_sp
103120 6c 69 74 28 27 7e 28 5c 72 5c 6e 7c 5c 72 7c 5c 6e 29 7e 27 2c 20 73 74 72 65 61 6d 5f 67 65 74 lit('~(\r\n|\r|\n)~',.stream_get
103140 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 2c 20 2d 31 2c 20 50 52 45 47 5f 53 _contents($pipes[1]),.-1,.PREG_S
103160 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 29 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 20 3d 20 73 74 PLIT_NO_EMPTY);..if.($error.=.st
103180 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 32 5d 29 29 20 7b 0a ream_get_contents($pipes[2])).{.
1031a0 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 63 5f 63 $errorHandler($error);.}..proc_c
1031c0 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 lose($process);.}..return.$outpu
1031e0 74 20 3f 3a 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 t.?:.array();.}.......public.fun
103200 63 74 69 6f 6e 20 6a 6f 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 ction.join().{.return.implode('.
103220 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 ',.array_filter(.array_map(funct
103240 69 6f 6e 20 28 24 62 69 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 69 74 20 69 6e 73 74 61 6e 63 ion.($bit).{.return.$bit.instanc
103260 65 6f 66 20 43 6f 6d 6d 61 6e 64 20 3f 20 24 62 69 74 2d 3e 6a 6f 69 6e 28 29 20 3a 20 28 24 62 eof.Command.?.$bit->join().:.($b
103280 69 74 20 3f 3a 20 6e 75 6c 6c 29 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 62 69 74 73 29 2c 0a 66 75 it.?:.null);.},.$this->bits),.fu
1032a0 6e 63 74 69 6f 6e 20 28 24 62 69 74 29 20 7b 20 72 65 74 75 72 6e 20 6e 75 6c 6c 20 21 3d 3d 20 nction.($bit).{.return.null.!==.
1032c0 24 62 69 74 3b 20 7d 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $bit;.}.));.}..........public.fu
1032e0 6e 63 74 69 6f 6e 20 61 64 64 41 74 49 6e 64 65 78 28 24 62 69 74 2c 20 24 69 6e 64 65 78 29 0a nction.addAtIndex($bit,.$index).
103300 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 69 6e 64 {.array_splice($this->bits,.$ind
103320 65 78 2c 20 30 2c 20 24 62 69 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c 66 20 3f 20 61 72 ex,.0,.$bit.instanceof.self.?.ar
103340 72 61 79 28 24 62 69 74 29 20 3a 20 24 62 69 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ray($bit).:.$bit);..return.$this
103360 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.
103380 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a Symfony\Component\Finder\Shell;.
1033a0 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 55 4e 49 ....class.Shell.{.const.TYPE_UNI
1033c0 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 44 41 52 57 49 4e 20 3d 20 32 3b 0a 63 6f X.=.1;.const.TYPE_DARWIN.=.2;.co
1033e0 6e 73 74 20 54 59 50 45 5f 43 59 47 57 49 4e 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f nst.TYPE_CYGWIN.=.3;.const.TYPE_
103400 57 49 4e 44 4f 57 53 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 42 53 44 20 3d 20 35 3b WINDOWS.=.4;.const.TYPE_BSD.=.5;
103420 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .....private.$type;.......public
103440 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d .function.getType().{.if.(null.=
103460 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 ==.$this->type).{.$this->type.=.
103480 24 74 68 69 73 2d 3e 67 75 65 73 73 54 79 70 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 $this->guessType();.}..return.$t
1034a0 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->type;.}.........public.func
1034c0 74 69 6f 6e 20 74 65 73 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 69 66 20 tion.testCommand($command).{.if.
1034e0 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 65 78 65 63 27 29 29 20 7b 0a 72 65 74 (!function_exists('exec')).{.ret
103500 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 24 74 65 73 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 urn.false;.}....$testCommand.=.'
103520 77 68 69 63 68 20 27 3b 0a 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 which.';.if.(self::TYPE_WINDOWS.
103540 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 7b 0a 24 74 65 73 74 43 6f 6d 6d 61 6e 64 20 ===.$this->type).{.$testCommand.
103560 3d 20 27 77 68 65 72 65 20 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 65 73 63 61 70 65 =.'where.';.}..$command.=.escape
103580 73 68 65 6c 6c 63 6d 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 0a 65 78 65 63 28 24 74 65 73 74 43 shellcmd($command);..exec($testC
1035a0 6f 6d 6d 61 6e 64 2e 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 6f 64 65 29 ommand.$command,.$output,.$code)
1035c0 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 63 6f 64 65 20 26 26 20 63 6f 75 6e 74 28 24 ;..return.0.===.$code.&&.count($
1035e0 6f 75 74 70 75 74 29 20 3e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e output).>.0;.}.......private.fun
103600 63 74 69 6f 6e 20 67 75 65 73 73 54 79 70 65 28 29 0a 7b 0a 24 6f 73 20 3d 20 73 74 72 74 6f 6c ction.guessType().{.$os.=.strtol
103620 6f 77 65 72 28 50 48 50 5f 4f 53 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 ower(PHP_OS);..if.(false.!==.str
103640 70 6f 73 28 24 6f 73 2c 20 27 63 79 67 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c pos($os,.'cygwin')).{.return.sel
103660 66 3a 3a 54 59 50 45 5f 43 59 47 57 49 4e 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d f::TYPE_CYGWIN;.}..if.(false.!==
103680 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 64 61 72 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e .strpos($os,.'darwin')).{.return
1036a0 20 73 65 6c 66 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 .self::TYPE_DARWIN;.}..if.(false
1036c0 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 62 73 64 27 29 29 20 7b 0a 72 65 74 75 72 .!==.strpos($os,.'bsd')).{.retur
1036e0 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 42 53 44 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 n.self::TYPE_BSD;.}..if.(0.===.s
103700 74 72 70 6f 73 28 24 6f 73 2c 20 27 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 trpos($os,.'win')).{.return.self
103720 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a ::TYPE_WINDOWS;.}..return.self::
103740 54 59 50 45 5f 55 4e 49 58 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e TYPE_UNIX;.}.}.<?php...........n
103760 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
103780 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 6c 46 69 6c 65 49 6e 66 6f 20 65 78 74 65 6e r;.......class.SplFileInfo.exten
1037a0 64 73 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 ds.\SplFileInfo.{.private.$relat
1037c0 69 76 65 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 ivePath;.private.$relativePathna
1037e0 6d 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 5f 63 6f me;.........public.function.__co
103800 6e 73 74 72 75 63 74 28 24 66 69 6c 65 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 72 nstruct($file,.$relativePath,.$r
103820 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e elativePathname).{.parent::__con
103840 73 74 72 75 63 74 28 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 struct($file);.$this->relativePa
103860 74 68 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 th.=.$relativePath;.$this->relat
103880 69 76 65 50 61 74 68 6e 61 6d 65 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b ivePathname.=.$relativePathname;
1038a0 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 52 65 6c 61 .}.......public.function.getRela
1038c0 74 69 76 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 tivePath().{.return.$this->relat
1038e0 69 76 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 ivePath;.}.......public.function
103900 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .getRelativePathname().{.return.
103920 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a $this->relativePathname;.}......
103940 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 ...public.function.getContents()
103960 0a 7b 0a 24 6c 65 76 65 6c 20 3d 20 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 30 29 3b 0a .{.$level.=.error_reporting(0);.
103980 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 24 74 68 $content.=.file_get_contents($th
1039a0 69 73 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 is->getPathname());.error_report
1039c0 69 6e 67 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 74 ing($level);.if.(false.===.$cont
1039e0 65 6e 74 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 73 74 28 29 ent).{.$error.=.error_get_last()
103a00 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 ;.throw.new.\RuntimeException($e
103a20 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e rror['message']);.}..return.$con
103a40 74 65 6e 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 tent;.}.}.<?php...........namesp
103a60 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 ace.Symfony\Component\Process\Ex
103a80 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 ception;.......interface.Excepti
103aa0 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a onInterface.{.}.<?php...........
103ac0 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 namespace.Symfony\Component\Proc
103ae0 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c ess\Exception;.......class.Inval
103b00 69 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 idArgumentException.extends.\Inv
103b20 61 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 alidArgumentException.implements
103b40 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .ExceptionInterface.{.}.<?php...
103b60 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
103b80 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 ent\Process\Exception;.......cla
103ba0 73 73 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 4c 6f 67 69 63 ss.LogicException.extends.\Logic
103bc0 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e Exception.implements.ExceptionIn
103be0 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 terface.{.}.<?php...........name
103c00 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c space.Symfony\Component\Process\
103c20 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e Exception;..use.Symfony\Componen
103c40 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 t\Process\Process;.......class.P
103c60 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 rocessFailedException.extends.Ru
103c80 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 ntimeException.{.private.$proces
103ca0 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 s;..public.function.__construct(
103cc0 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a 69 66 20 28 24 70 72 6f 63 65 73 73 Process.$process).{.if.($process
103ce0 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e ->isSuccessful()).{.throw.new.In
103d00 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 74 65 64 validArgumentException('Expected
103d20 20 61 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 62 75 74 20 74 68 65 20 67 69 76 65 6e .a.failed.process,.but.the.given
103d40 20 70 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 2e 27 29 3b 0a 7d 0a 0a 24 .process.was.successful.');.}..$
103d60 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 61 6e 64 20 22 25 73 error.=.sprintf('The.command."%s
103d80 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 25 73 28 25 73 29 22 ".failed.'."\nExit.Code:.%s(%s)"
103da0 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 2c 0a 24 70 ,.$process->getCommandLine(),.$p
103dc0 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 72 6f 63 65 73 73 2d rocess->getExitCode(),.$process-
103de0 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 20 28 21 24 70 72 6f >getExitCodeText().);..if.(!$pro
103e00 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 20 7b 0a 24 65 72 72 cess->isOutputDisabled()).{.$err
103e20 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 3a 5c 6e 3d 3d 3d 3d or..=.sprintf("\n\nOutput:\n====
103e40 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 20 4f 75 74 70 75 74 ============\n%s\n\nError.Output
103e60 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 0a 24 70 72 6f 63 65 :\n================\n%s",.$proce
103e80 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 2d 3e 67 65 74 45 72 ss->getOutput(),.$process->getEr
103ea0 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 3a 5f 5f 63 6f 6e 73 rorOutput().);.}..parent::__cons
103ec0 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 6f 63 65 73 73 20 3d truct($error);..$this->process.=
103ee0 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 .$process;.}..public.function.ge
103f00 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 6f 63 65 tProcess().{.return.$this->proce
103f20 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ss;.}.}.<?php...........namespac
103f40 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 e.Symfony\Component\Process\Exce
103f60 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 50 72 ption;..use.Symfony\Component\Pr
103f80 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 ocess\Process;.......class.Proce
103fa0 73 73 54 69 6d 65 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 ssTimedOutException.extends.Runt
103fc0 69 6d 65 45 78 63 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 imeException.{.const.TYPE_GENERA
103fe0 4c 20 3d 20 31 3b 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 L.=.1;.const.TYPE_IDLE.=.2;..pri
104000 76 61 74 65 20 24 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 vate.$process;.private.$timeoutT
104020 79 70 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ype;..public.function.__construc
104040 74 28 50 72 6f 63 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 t(Process.$process,.$timeoutType
104060 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 ).{.$this->process.=.$process;.$
104080 74 68 69 73 2d 3e 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 this->timeoutType.=.$timeoutType
1040a0 3b 0a 0a 70 61 72 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 ;..parent::__construct(sprintf(.
1040c0 27 54 68 65 20 70 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 'The.process."%s".exceeded.the.t
1040e0 69 6d 65 6f 75 74 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 imeout.of.%s.seconds.',.$process
104100 2d 3e 67 65 74 43 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 ->getCommandLine(),.$this->getEx
104120 63 65 65 64 65 64 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 ceededTimeout().));.}..public.fu
104140 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.getProcess().{.return.$th
104160 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 is->process;.}..public.function.
104180 69 73 47 65 6e 65 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 isGeneralTimeout().{.return.$thi
1041a0 73 2d 3e 74 69 6d 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 s->timeoutType.===.self::TYPE_GE
1041c0 4e 45 52 41 4c 3b 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 NERAL;.}..public.function.isIdle
1041e0 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 65 6f 75 Timeout().{.return.$this->timeou
104200 74 54 79 70 65 20 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 tType.===.self::TYPE_IDLE;.}..pu
104220 62 6c 69 63 20 66 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 blic.function.getExceededTimeout
104240 28 29 0a 7b 0a 73 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 ().{.switch.($this->timeoutType)
104260 20 7b 0a 63 61 73 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 .{.case.self::TYPE_GENERAL:.retu
104280 72 6e 20 24 74 68 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 rn.$this->process->getTimeout();
1042a0 0a 0a 63 61 73 65 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 ..case.self::TYPE_IDLE:.return.$
1042c0 74 68 69 73 2d 3e 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 this->process->getIdleTimeout();
1042e0 0a 0a 64 65 66 61 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 ..default:.throw.new.\LogicExcep
104300 74 69 6f 6e 28 73 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 tion(sprintf('Unknown.timeout.ty
104320 70 65 20 22 25 64 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 pe."%d".',.$this->timeoutType));
104340 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 .}.}.}.<?php...........namespace
104360 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
104380 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
1043a0 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
1043c0 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.{.}.<
1043e0 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
104400 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 73 \Component\Process;........class
104420 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 75 66 .ExecutableFinder.{.private.$suf
104440 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e fixes.=.array('.exe',.'.bat',.'.
104460 63 6d 64 27 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 cmd',.'.com');.......public.func
104480 74 69 6f 6e 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 tion.setSuffixes(array.$suffixes
1044a0 29 0a 7b 0a 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 ).{.$this->suffixes.=.$suffixes;
1044c0 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 53 75 66 66 .}.......public.function.addSuff
1044e0 69 78 28 24 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 ix($suffix).{.$this->suffixes[].
104500 3d 20 24 73 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 =.$suffix;.}...........public.fu
104520 6e 63 74 69 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 nction.find($name,.$default.=.nu
104540 6c 6c 2c 20 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 ll,.array.$extraDirs.=.array()).
104560 7b 0a 69 66 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 {.if.(ini_get('open_basedir')).{
104580 0a 24 73 65 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 .$searchPath.=.explode(PATH_SEPA
1045a0 52 41 54 4f 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 RATOR,.ini_get('open_basedir'));
1045c0 0a 24 64 69 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 .$dirs.=.array();.foreach.($sear
1045e0 63 68 50 61 74 68 20 61 73 20 24 70 61 74 68 29 20 7b 0a 0a 20 69 66 20 28 40 69 73 5f 64 69 72 chPath.as.$path).{...if.(@is_dir
104600 28 24 70 61 74 68 29 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 ($path)).{.$dirs[].=.$path;.}.el
104620 73 65 20 7b 0a 69 66 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 se.{.if.(basename($path).==.$nam
104640 65 20 26 26 20 69 73 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 e.&&.is_executable($path)).{.ret
104660 75 72 6e 20 24 70 61 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 urn.$path;.}.}.}.}.else.{.$dirs.
104680 3d 20 61 72 72 61 79 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 =.array_merge(.explode(PATH_SEPA
1046a0 52 41 54 4f 52 2c 20 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 RATOR,.getenv('PATH').?:.getenv(
1046c0 27 50 61 74 68 27 29 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 'Path')),.$extraDirs.);.}..$suff
1046e0 69 78 65 73 20 3d 20 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 ixes.=.array('');.if.('\\'.===.D
104700 49 52 45 43 54 4f 52 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 IRECTORY_SEPARATOR).{.$pathExt.=
104720 20 67 65 74 65 6e 76 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 .getenv('PATHEXT');.$suffixes.=.
104740 24 70 61 74 68 45 78 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 $pathExt.?.explode(PATH_SEPARATO
104760 52 2c 20 24 70 61 74 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 R,.$pathExt).:.$this->suffixes;.
104780 7d 0a 66 6f 72 65 61 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 }.foreach.($suffixes.as.$suffix)
1047a0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 .{.foreach.($dirs.as.$dir).{.if.
1047c0 28 69 73 5f 66 69 6c 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 (is_file($file.=.$dir.DIRECTORY_
1047e0 53 45 50 41 52 41 54 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 SEPARATOR.$name.$suffix).&&.('\\
104800 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 7c 7c 20 69 73 5f '.===.DIRECTORY_SEPARATOR.||.is_
104820 65 78 65 63 75 74 61 62 6c 65 28 24 66 69 6c 65 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 executable($file))).{.return.$fi
104840 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 7d 0a le;.}.}.}..return.$default;.}.}.
104860 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 6e 20 50 Copyright.(c).2004-2015.Fabien.P
104880 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 79 20 67 otencier..Permission.is.hereby.g
1048a0 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 ranted,.free.of.charge,.to.any.p
1048c0 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 erson.obtaining.a.copy.of.this.s
1048e0 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 oftware.and.associated.documenta
104900 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 tion.files.(the."Software"),.to.
104920 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 deal.in.the.Software.without.res
104940 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 triction,.including.without.limi
104960 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 tation.the.rights.to.use,.copy,.
104980 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 modify,.merge,.publish,.distribu
1049a0 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 te,.sublicense,.and/or.sell.copi
1049c0 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 es.of.the.Software,.and.to.permi
1049e0 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 t.persons.to.whom.the.Software.i
104a00 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f s.furnished.to.do.so,.subject.to
104a20 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 .the.following.conditions:..The.
104a40 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 above.copyright.notice.and.this.
104a60 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 permission.notice.shall.be.inclu
104a80 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c ded.in.all.copies.or.substantial
104aa0 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 .portions.of.the.Software...THE.
104ac0 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 SOFTWARE.IS.PROVIDED."AS.IS",.WI
104ae0 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 THOUT.WARRANTY.OF.ANY.KIND,.EXPR
104b00 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f ESS.OR.IMPLIED,.INCLUDING.BUT.NO
104b20 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d T.LIMITED.TO.THE.WARRANTIES.OF.M
104b40 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 ERCHANTABILITY,.FITNESS.FOR.A.PA
104b60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 RTICULAR.PURPOSE.AND.NONINFRINGE
104b80 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 MENT..IN.NO.EVENT.SHALL.THE.AUTH
104ba0 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 ORS.OR.COPYRIGHT.HOLDERS.BE.LIAB
104bc0 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 LE.FOR.ANY.CLAIM,.DAMAGES.OR.OTH
104be0 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 ER.LIABILITY,.WHETHER.IN.AN.ACTI
104c00 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 ON.OF.CONTRACT,.TORT.OR.OTHERWIS
104c20 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f E,.ARISING.FROM,.OUT.OF.OR.IN.CO
104c40 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 NNECTION.WITH.THE.SOFTWARE.OR.TH
104c60 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 E.USE.OR.OTHER.DEALINGS.IN.THE.S
104c80 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 73 70 61 OFTWARE..<?php...........namespa
104ca0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a ce.Symfony\Component\Process;...
104cc0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b .....class.PhpExecutableFinder.{
104ce0 0a 70 72 69 76 61 74 65 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 70 75 62 .private.$executableFinder;..pub
104d00 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 74 68 lic.function.__construct().{.$th
104d20 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 is->executableFinder.=.new.Execu
104d40 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tableFinder();.}.........public.
104d60 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 69 6e 63 6c 75 64 65 41 72 67 73 20 3d 20 74 72 75 function.find($includeArgs.=.tru
104d80 65 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e e).{...if.(defined('HHVM_VERSION
104da0 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 28 67 65 74 65 6e 76 28 27 50 48 50 5f 42 49 4e 41 52 59 ')).{.return.(getenv('PHP_BINARY
104dc0 27 29 20 3f 3a 20 50 48 50 5f 42 49 4e 41 52 59 29 2e 28 24 69 6e 63 6c 75 64 65 41 72 67 73 20 ').?:.PHP_BINARY).($includeArgs.
104de0 3f 20 27 20 27 2e 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 72 ?.'.'.implode('.',.$this->findAr
104e00 67 75 6d 65 6e 74 73 28 29 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 64 65 66 69 6e guments()).:.'');.}....if.(defin
104e20 65 64 28 27 50 48 50 5f 42 49 4e 41 52 59 27 29 20 26 26 20 50 48 50 5f 42 49 4e 41 52 59 20 26 ed('PHP_BINARY').&&.PHP_BINARY.&
104e40 26 20 69 6e 5f 61 72 72 61 79 28 50 48 50 5f 53 41 50 49 2c 20 61 72 72 61 79 28 27 63 6c 69 27 &.in_array(PHP_SAPI,.array('cli'
104e60 2c 20 27 63 6c 69 2d 73 65 72 76 65 72 27 29 29 20 26 26 20 69 73 5f 66 69 6c 65 28 50 48 50 5f ,.'cli-server')).&&.is_file(PHP_
104e80 42 49 4e 41 52 59 29 29 20 7b 0a 72 65 74 75 72 6e 20 50 48 50 5f 42 49 4e 41 52 59 3b 0a 7d 0a BINARY)).{.return.PHP_BINARY;.}.
104ea0 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 41 54 48 27 29 29 20 .if.($php.=.getenv('PHP_PATH')).
104ec0 7b 0a 69 66 20 28 21 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a 72 65 {.if.(!is_executable($php)).{.re
104ee0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 0a 69 turn.false;.}..return.$php;.}..i
104f00 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 45 41 52 5f 50 48 50 5f 42 f.($php.=.getenv('PHP_PEAR_PHP_B
104f20 49 4e 27 29 29 20 7b 0a 69 66 20 28 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 IN')).{.if.(is_executable($php))
104f40 20 7b 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 7d 0a 0a 24 64 69 72 73 20 3d 20 61 72 72 .{.return.$php;.}.}..$dirs.=.arr
104f60 61 79 28 50 48 50 5f 42 49 4e 44 49 52 29 3b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 ay(PHP_BINDIR);.if.('\\'.===.DIR
104f80 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 ECTORY_SEPARATOR).{.$dirs[].=.'C
104fa0 3a 5c 78 61 6d 70 70 5c 70 68 70 5c 5c 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d :\xampp\php\\';.}..return.$this-
104fc0 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 70 68 70 27 2c 20 66 >executableFinder->find('php',.f
104fe0 61 6c 73 65 2c 20 24 64 69 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e alse,.$dirs);.}.......public.fun
105000 63 74 69 6f 6e 20 66 69 6e 64 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 24 61 72 67 75 6d 65 6e ction.findArguments().{.$argumen
105020 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 ts.=.array();....if.(defined('HH
105040 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 27 VM_VERSION')).{.$arguments[].=.'
105060 2d 2d 70 68 70 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a --php';.}..return.$arguments;.}.
105080 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
1050a0 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 6d 66 ony\Component\Process;..use.Symf
1050c0 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 5c ony\Component\Process\Exception\
1050e0 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 63 6c 61 73 RuntimeException;...........clas
105100 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 0a 7b 0a 0a s.PhpProcess.extends.Process.{..
105120 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
105140 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 61 72 72 61 79 20 uct($script,.$cwd.=.null,.array.
105160 24 65 6e 76 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 72 61 $env.=.null,.$timeout.=.60,.arra
105180 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 65 78 65 63 75 74 61 y.$options.=.array()).{.$executa
1051a0 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e bleFinder.=.new.PhpExecutableFin
1051c0 64 65 72 28 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 68 70 20 3d 20 24 65 78 65 der();.if.(false.===.$php.=.$exe
1051e0 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 29 20 7b 0a 24 70 68 70 20 3d 20 cutableFinder->find()).{.$php.=.
105200 6e 75 6c 6c 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 68 null;.}..parent::__construct($ph
105220 70 2c 20 24 63 77 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c 20 24 74 69 6d 65 6f 75 74 p,.$cwd,.$env,.$script,.$timeout
105240 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ,.$options);.}.....public.functi
105260 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 79 28 24 70 68 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 on.setPhpBinary($php).{.$this->s
105280 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 etCommandLine($php);.}.....publi
1052a0 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c c.function.start($callback.=.nul
1052c0 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d l).{.if.(null.===.$this->getComm
1052e0 61 6e 64 4c 69 6e 65 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 andLine()).{.throw.new.RuntimeEx
105300 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 50 48 50 20 ception('Unable.to.find.the.PHP.
105320 65 78 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 73 74 61 72 74 28 executable.');.}..parent::start(
105340 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $callback);.}.}.<?php...........
105360 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 namespace.Symfony\Component\Proc
105380 65 73 73 5c 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 ess\Pipes;.......abstract.class.
1053a0 41 62 73 74 72 61 63 74 50 69 70 65 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 69 70 65 73 49 6e AbstractPipes.implements.PipesIn
1053c0 74 65 72 66 61 63 65 0a 7b 0a 0a 70 75 62 6c 69 63 20 24 70 69 70 65 73 20 3d 20 61 72 72 61 79 terface.{..public.$pipes.=.array
1053e0 28 29 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 42 75 66 66 65 72 20 3d 20 27 ();...protected.$inputBuffer.=.'
105400 27 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 0a 0a 70 72 69 76 61 74 65 20 ';..protected.$input;...private.
105420 24 62 6c 6f 63 6b 65 64 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $blocked.=.true;.....public.func
105440 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 tion.close().{.foreach.($this->p
105460 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a ipes.as.$pipe).{.fclose($pipe);.
105480 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a }.$this->pipes.=.array();.}.....
1054a0 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 79 73 74 65 6d 43 61 ..protected.function.hasSystemCa
1054c0 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 29 0a 7b 0a 24 6c 61 73 74 45 72 72 6f 72 llBeenInterrupted().{.$lastError
1054e0 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 0a 0a 20 72 65 74 75 72 6e 20 69 .=.error_get_last();....return.i
105500 73 73 65 74 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 20 26 26 20 66 sset($lastError['message']).&&.f
105520 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 73 alse.!==.stripos($lastError['mes
105540 73 61 67 65 27 5d 2c 20 27 69 6e 74 65 72 72 75 70 74 65 64 20 73 79 73 74 65 6d 20 63 61 6c 6c sage'],.'interrupted.system.call
105560 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 75 6e 62 ');.}.....protected.function.unb
105580 6c 6f 63 6b 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 62 6c 6f 63 6b 65 64 29 20 7b 0a lock().{.if.(!$this->blocked).{.
1055a0 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 return;.}..foreach.($this->pipes
1055c0 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 6c 6f 63 6b 69 6e 67 .as.$pipe).{.stream_set_blocking
1055e0 28 24 70 69 70 65 2c 20 30 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 ($pipe,.0);.}.if.(null.!==.$this
105600 2d 3e 69 6e 70 75 74 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 6c 6f 63 6b 69 6e 67 28 24 ->input).{.stream_set_blocking($
105620 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 6c 6f 63 6b this->input,.0);.}..$this->block
105640 65 64 20 3d 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 ed.=.false;.}.}.<?php...........
105660 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 namespace.Symfony\Component\Proc
105680 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 20 50 69 70 ess\Pipes;.........interface.Pip
1056a0 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 5a 45 20 3d esInterface.{.const.CHUNK_SIZE.=
1056c0 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 6e 20 67 65 .16384;.......public.function.ge
1056e0 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 20 66 75 6e tDescriptors();.......public.fun
105700 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 75 62 6c 69 ction.getFiles();..........publi
105720 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 6e c.function.readAndWrite($blockin
105740 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 62 6c 69 63 g,.$close.=.false);.......public
105760 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 6c 69 63 20 .function.areOpen();.....public.
105780 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 0a 0a 0a 0a function.close();.}.<?php.......
1057a0 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\
1057c0 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 70 Process\Pipes;..use.Symfony\Comp
1057e0 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 63 onent\Process\Process;.........c
105800 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 50 lass.UnixPipes.extends.AbstractP
105820 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 61 ipes.{..private.$ttyMode;..priva
105840 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 75 te.$ptyMode;..private.$disableOu
105860 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 75 tput;..public.function.__constru
105880 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 24 ct($ttyMode,.$ptyMode,.$input,.$
1058a0 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 20 disableOutput).{.$this->ttyMode.
1058c0 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 64 =.(bool).$ttyMode;.$this->ptyMod
1058e0 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 61 e.=.(bool).$ptyMode;.$this->disa
105900 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 75 bleOutput.=.(bool).$disableOutpu
105920 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 24 t;..if.(is_resource($input)).{.$
105940 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 24 this->input.=.$input;.}.else.{.$
105960 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 6e this->inputBuffer.=.(string).$in
105980 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 74 put;.}.}..public.function.__dest
1059a0 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 70 ruct().{.$this->close();.}.....p
1059c0 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 0a ublic.function.getDescriptors().
1059e0 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 6e {.if.($this->disableOutput).{.$n
105a00 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 27 ullstream.=.fopen('/dev/null',.'
105a20 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 27 c');..return.array(.array('pipe'
105a40 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 6d ,.'r'),.$nullstream,.$nullstream
105a60 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 65 ,.);.}..if.($this->ttyMode).{.re
105a80 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 2f turn.array(.array('file',.'/dev/
105aa0 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 2f tty',.'r'),.array('file',.'/dev/
105ac0 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 2f tty',.'w'),.array('file',.'/dev/
105ae0 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 79 tty',.'w'),.);.}..if.($this->pty
105b00 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 28 Mode.&&.Process::isPtySupported(
105b20 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 2c )).{.return.array(.array('pty'),
105b40 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 0a .array('pty'),.array('pty'),.);.
105b60 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 27 }..return.array(.array('pipe',.'
105b80 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 79 r'),.array('pipe',.'w'),...array
105ba0 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 63 ('pipe',.'w'),...);.}.....public
105bc0 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 72 .function.getFiles().{.return.ar
105be0 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 61 ray();.}.....public.function.rea
105c00 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 61 dAndWrite($blocking,.$close.=.fa
105c20 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 73 lse).{.....if.(1.===.count($this
105c40 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 6b ->pipes).&&.array(0).===.array_k
105c60 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 69 eys($this->pipes)).{.fclose($thi
105c80 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 73 s->pipes[0]);.unset($this->pipes
105ca0 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 29 [0]);.}..if.(empty($this->pipes)
105cc0 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 6e ).{.return.array();.}..$this->un
105ce0 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 28 block();..$read.=.array();..if.(
105d00 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 20 null.!==.$this->input).{.....$r.
105d20 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 61 =.array_merge($this->pipes,.arra
105d40 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 65 y('input'.=>.$this->input));.}.e
105d60 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 73 lse.{.$r.=.$this->pipes;.}...uns
105d80 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 69 et($r[0]);..$w.=.isset($this->pi
105da0 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 29 pes[0]).?.array($this->pipes[0])
105dc0 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 65 .:.null;.$e.=.null;....if.(false
105de0 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 2c .===.$n.=.@stream_select($r,.$w,
105e00 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 4d .$e,.0,.$blocking.?.Process::TIM
105e20 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 0a EOUT_PRECISION.*.1E6.:.0)).{....
105e40 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 6e .if.(!$this->hasSystemCallBeenIn
105e60 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 72 terrupted()).{.$this->pipes.=.ar
105e80 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 20 ray();.}..return.$read;.}....if.
105ea0 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 6f (0.===.$n).{.return.$read;.}..fo
105ec0 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 20 reach.($r.as.$pipe).{.....$type.
105ee0 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 72 =.(false.!==.$found.=.array_sear
105f00 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 6e ch($pipe,.$this->pipes)).?.$foun
105f20 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 28 d.:.'input';.$data.=.'';.while.(
105f40 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 61 ''.!==.$dataread.=.(string).frea
105f60 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 64 d($pipe,.self::CHUNK_SIZE)).{.$d
105f80 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 20 ata..=.$dataread;.}..if.(''.!==.
105fa0 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 20 $data).{.if.($type.===.'input').
105fc0 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 7d {.$this->inputBuffer..=.$data;.}
105fe0 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 0a .else.{.$read[$type].=.$data;.}.
106000 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 20 }..if.(false.===.$data.||.(true.
106020 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 20 ===.$close.&&.feof($pipe).&&.''.
106040 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 70 ===.$data)).{.if.($type.===.'inp
106060 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 0a ut').{.....$this->input.=.null;.
106080 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 79 }.else.{.fclose($this->pipes[$ty
1060a0 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 29 pe]);.unset($this->pipes[$type])
1060c0 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 20 ;.}.}.}..if.(null.!==.$w.&&.0.<.
1060e0 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 73 count($w)).{.while.(strlen($this
106100 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 72 ->inputBuffer)).{.$written.=.fwr
106120 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 32 ite($w[0],.$this->inputBuffer,.2
106140 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 24 .<<.18);...if.($written.>.0).{.$
106160 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 62 this->inputBuffer.=.(string).sub
106180 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 6e str($this->inputBuffer,.$written
1061a0 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 28 );.}.else.{.break;.}.}.}....if.(
1061c0 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 6c ''.===.$this->inputBuffer.&&.nul
1061e0 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 69 l.===.$this->input.&&.isset($thi
106200 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 69 s->pipes[0])).{.fclose($this->pi
106220 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 3b pes[0]);.unset($this->pipes[0]);
106240 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
106260 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
106280 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 69 ).$this->pipes;.}..........publi
1062a0 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 73 c.static.function.create(Process
1062c0 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 20 .$process,.$input).{.return.new.
1062e0 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 65 static($process->isTty(),.$proce
106300 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 69 ss->isPty(),.$input,.$process->i
106320 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 0a sOutputDisabled());.}.}.<?php...
106340 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
106360 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\
106380 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
1063a0 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
1063c0 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;............
1063e0 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
106400 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
106420 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
106440 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
106460 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
106480 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
1064a0 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
1064c0 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)
1064e0 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)
106500 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
106520 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
106540 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.=>.
106560 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 6f 75 74 tempnam(sys_get_temp_dir(),.'out
106580 5f 73 66 5f 70 72 6f 63 27 29 2c 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 45 52 52 20 3d 3e 20 74 _sf_proc'),.Process::STDERR.=>.t
1065a0 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 65 72 72 5f empnam(sys_get_temp_dir(),.'err_
1065c0 73 66 5f 70 72 6f 63 27 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 sf_proc'),.);.foreach.($this->fi
1065e0 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 0a 69 66 20 28 66 les.as.$offset.=>.$file).{.if.(f
106600 61 6c 73 65 20 3d 3d 3d 20 24 66 69 6c 65 20 7c 7c 20 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 alse.===.$file.||.false.===.$thi
106620 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 6f 70 65 6e 28 s->fileHandles[$offset].=.fopen(
106640 24 66 69 6c 65 2c 20 27 72 62 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d $file,.'rb')).{.throw.new.Runtim
106660 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
106680 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
1066a0 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
1066c0 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
1066e0 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
106700 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
106720 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.
106740 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._
106760 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
106780 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
1067a0 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.
1067c0 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
1067e0 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
106800 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
106820 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,.);.}.....
106840 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',.'
106860 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'),.
106880 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'),.);.}.
1068a0 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().{
1068c0 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
1068e0 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
106900 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
106920 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.=.
106940 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
106960 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
106980 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
1069a0 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])
1069c0 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
1069e0 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
106a00 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
106a20 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
106a40 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;
106a60 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
106a80 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].
106aa0 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
106ac0 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.||.
106ae0 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
106b00 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
106b20 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
106b40 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]);.}
106b60 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
106b80 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
106ba0 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->
106bc0 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
106be0 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
106c00 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
106c20 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
106c40 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();.}......
106c60 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
106c80 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
106ca0 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
106cc0 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
106ce0 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
106d00 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
106d20 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)).
106d40 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-
106d60 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
106d80 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
106da0 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)).
106dc0 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();..
106de0 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
106e00 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
106e20 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]).
106e40 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;
106e60 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.
106e80 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,.
106ea0 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
106ec0 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
106ee0 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
106f00 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();.}
106f20 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
106f40 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.<
106f60 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.
106f80 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'],.
106fa0 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
106fc0 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..
106fe0 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.||
107000 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
107020 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)).{.....$
107040 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
107060 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
107080 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)).
1070a0 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
1070c0 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
1070e0 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.
107100 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
107120 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;
107140 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
107160 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
107180 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
1071a0 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
1071c0 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......
1071e0 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
107200 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
107220 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
107240 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
107260 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
107280 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
1072a0 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 63 65 70 74 ss\Exception\ProcessFailedExcept
1072c0 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
1072e0 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 45 78 63 65 ss\Exception\ProcessTimedOutExce
107300 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 72 6f ption;.use.Symfony\Component\Pro
107320 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b cess\Exception\RuntimeException;
107340 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
107360 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 66 6f 6e 79 ipes\PipesInterface;.use.Symfony
107380 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 78 50 69 70 \Component\Process\Pipes\UnixPip
1073a0 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 6f 63 65 73 es;.use.Symfony\Component\Proces
1073c0 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 0a 0a 63 6c s\Pipes\WindowsPipes;.........cl
1073e0 61 73 73 20 50 72 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 27 65 72 72 27 3b ass.Process.{.const.ERR.=.'err';
107400 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 54 55 .const.OUT.=.'out';..const.STATU
107420 53 5f 52 45 41 44 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f S_READY.=.'ready';.const.STATUS_
107440 53 54 41 52 54 45 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 STARTED.=.'started';.const.STATU
107460 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 27 3b 0a 0a 63 6f S_TERMINATED.=.'terminated';..co
107480 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 54 20 3d 20 31 3b nst.STDIN.=.0;.const.STDOUT.=.1;
1074a0 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 74 20 54 49 4d 45 .const.STDERR.=.2;....const.TIME
1074c0 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 61 74 65 20 24 63 OUT_PRECISION.=.0.2;..private.$c
1074e0 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 69 6e 65 3b 0a 70 allback;.private.$commandline;.p
107500 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 0a 70 72 69 76 61 rivate.$cwd;.private.$env;.priva
107520 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 69 6d 65 3b 0a 70 te.$input;.private.$starttime;.p
107540 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 69 76 61 74 65 20 rivate.$lastOutputTime;.private.
107560 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 65 6f 75 74 3b 0a $timeout;.private.$idleTimeout;.
107580 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 24 65 78 69 74 63 private.$options;.private.$exitc
1075a0 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 63 6f 64 65 3b 0a ode;.private.$fallbackExitcode;.
1075c0 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 6e 3b 0a 70 72 69 private.$processInformation;.pri
1075e0 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 73 65 3b 0a 70 72 vate.$outputDisabled.=.false;.pr
107600 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 64 65 72 72 3b 0a ivate.$stdout;.private.$stderr;.
107620 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 70 61 74 69 62 69 private.$enhanceWindowsCompatibi
107640 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 6e 63 65 53 69 67 lity.=.true;.private.$enhanceSig
107660 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 65 20 24 70 72 6f childCompatibility;.private.$pro
107680 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 6c 66 3a 3a 53 54 cess;.private.$status.=.self::ST
1076a0 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 6d 65 6e 74 61 6c ATUS_READY;.private.$incremental
1076c0 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 24 69 6e 63 72 65 OutputOffset.=.0;.private.$incre
1076e0 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 30 3b 0a 70 72 69 mentalErrorOutputOffset.=.0;.pri
107700 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 70 72 69 76 61 74 vate.$tty;.private.$pty;..privat
107720 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 0a 0a 70 72 69 76 e.$useFileHandles.=.false;..priv
107740 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 65 20 24 6c 61 74 ate.$processPipes;..private.$lat
107760 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 20 24 73 69 67 63 estSignal;..private.static.$sigc
107780 68 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 65 78 69 hild;.........public.static.$exi
1077a0 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 4f 4b 27 2c 0a 31 20 3d 3e 20 tCodes.=.array(.0.=>.'OK',.1.=>.
1077c0 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 27 2c 0a 32 20 3d 3e 20 27 4d 69 73 75 73 65 20 6f 66 'General.error',.2.=>.'Misuse.of
1077e0 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e 73 27 2c 0a 0a 31 32 36 20 3d 3e 20 27 49 6e 76 6f 6b .shell.builtins',..126.=>.'Invok
107800 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 6e 6f 74 20 65 78 65 63 75 74 65 27 2c 0a 31 32 37 20 ed.command.cannot.execute',.127.
107820 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 31 32 38 20 3d 3e 20 27 =>.'Command.not.found',.128.=>.'
107840 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 72 67 75 6d 65 6e 74 27 2c 0a 0a 0a 20 31 32 39 20 3d Invalid.exit.argument',....129.=
107860 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 30 20 3d 3e 20 27 49 6e 74 65 72 72 75 70 74 27 2c 0a >.'Hangup',.130.=>.'Interrupt',.
107880 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 6e 64 20 64 75 6d 70 20 63 6f 72 65 27 2c 0a 31 33 32 131.=>.'Quit.and.dump.core',.132
1078a0 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 27 2c 0a 31 33 33 20 3d .=>.'Illegal.instruction',.133.=
1078c0 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 70 27 2c 0a 31 33 34 20 3d >.'Trace/breakpoint.trap',.134.=
1078e0 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f 72 74 65 64 27 2c 0a 31 33 35 20 3d 3e 20 27 42 75 73 >.'Process.aborted',.135.=>.'Bus
107900 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 73 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 70 6f 72 .error:."access.to.undefined.por
107920 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 62 6a 65 63 74 22 27 2c 0a 31 33 36 20 3d 3e 20 tion.of.memory.object"',.136.=>.
107940 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 78 63 65 70 74 69 6f 6e 3a 20 22 65 72 72 6f 'Floating.point.exception:."erro
107960 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 69 6f 6e 22 27 2c 0a 31 33 neous.arithmetic.operation"',.13
107980 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 72 6d 69 6e 61 74 65 20 69 6d 6d 65 64 69 61 74 65 6c 7.=>.'Kill.(terminate.immediatel
1079a0 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 31 27 2c 0a 31 33 y)',.138.=>.'User-defined.1',.13
1079c0 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e 27 2c 0a 31 9.=>.'Segmentation.violation',.1
1079e0 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 32 27 2c 0a 31 34 31 20 3d 3e 20 27 40.=>.'User-defined.2',.141.=>.'
107a00 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 77 69 74 68 20 6e 6f 20 6f 6e 65 20 72 65 61 64 69 6e Write.to.pipe.with.no.one.readin
107a20 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 61 6c 61 g',.142.=>.'Signal.raised.by.ala
107a40 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 65 72 6d 69 6e 61 74 69 6f 6e 20 28 72 65 71 75 65 73 rm',.143.=>.'Termination.(reques
107a60 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 29 27 2c 0a 0a 20 31 34 35 20 3d 3e 20 27 43 68 69 6c t.to.terminate)',...145.=>.'Chil
107a80 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 73 74 6f 70 70 65 64 20 28 6f d.process.terminated,.stopped.(o
107aa0 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 2c 0a 31 34 36 20 3d 3e 20 27 43 6f 6e 74 69 6e 75 65 r.continued*)',.146.=>.'Continue
107ac0 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a 31 34 37 20 3d 3e 20 27 53 74 6f 70 20 65 78 65 63 75 .if.stopped',.147.=>.'Stop.execu
107ae0 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 6c 79 27 2c 0a 31 34 38 20 3d 3e 20 27 54 65 72 6d 69 ting.temporarily',.148.=>.'Termi
107b00 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 6c 27 2c 0a 31 34 39 20 3d 3e 20 27 42 61 63 6b 67 72 nal.stop.signal',.149.=>.'Backgr
107b20 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 72 65 61 64 20 ound.process.attempting.to.read.
107b40 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 29 27 2c 0a 31 35 30 20 3d 3e 20 27 42 61 63 6b 67 72 from.tty.("in")',.150.=>.'Backgr
107b60 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 77 72 69 74 65 ound.process.attempting.to.write
107b80 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 29 27 2c 0a 31 35 31 20 3d 3e 20 27 55 72 67 65 6e 74 .to.tty.("out")',.151.=>.'Urgent
107ba0 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 73 6f 63 6b 65 74 27 2c 0a 31 35 32 20 .data.available.on.socket',.152.
107bc0 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 =>.'CPU.time.limit.exceeded',.15
107be0 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 3.=>.'File.size.limit.exceeded',
107c00 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 74 69 6d 65 72 20 .154.=>.'Signal.raised.by.timer.
107c20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 61 6c 20 74 69 6d 65 3a 20 22 76 69 72 74 75 61 6c 20 counting.virtual.time:."virtual.
107c40 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 27 2c 0a 31 35 35 20 3d 3e 20 27 50 72 6f 66 69 6c 69 timer.expired"',.155.=>.'Profili
107c60 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 27 2c 0a 0a 20 31 35 37 20 3d 3e 20 27 50 6f 6c ng.timer.expired',...157.=>.'Pol
107c80 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a 0a 20 31 35 39 20 3d 3e 20 27 42 61 64 20 73 79 73 63 lable.event',...159.=>.'Bad.sysc
107ca0 61 6c 6c 27 2c 0a 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 all',.);..............public.fun
107cc0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 ction.__construct($commandline,.
107ce0 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 6e 75 6c 6c 2c 20 $cwd.=.null,.array.$env.=.null,.
107d00 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 $input.=.null,.$timeout.=.60,.ar
107d20 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 21 66 ray.$options.=.array()).{.if.(!f
107d40 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 74 unction_exists('proc_open')).{.t
107d60 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 hrow.new.RuntimeException('The.P
107d80 72 6f 63 65 73 73 20 63 6c 61 73 73 20 72 65 6c 69 65 73 20 6f 6e 20 70 72 6f 63 5f 6f 70 65 6e rocess.class.relies.on.proc_open
107da0 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 79 6f 75 72 ,.which.is.not.available.on.your
107dc0 20 50 48 50 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e .PHP.installation.');.}..$this->
107de0 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 24 74 68 69 commandline.=.$commandline;.$thi
107e00 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 6e 75 6c 6c s->cwd.=.$cwd;..........if.(null
107e20 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 64 20 26 26 20 28 64 65 66 69 6e 65 64 28 27 5a 45 4e .===.$this->cwd.&&.(defined('ZEN
107e40 44 5f 54 48 52 45 41 44 5f 53 41 46 45 27 29 20 7c 7c 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 D_THREAD_SAFE').||.'\\'.===.DIRE
107e60 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d CTORY_SEPARATOR)).{.$this->cwd.=
107e80 20 67 65 74 63 77 64 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 6e 76 29 20 .getcwd();.}.if.(null.!==.$env).
107ea0 7b 0a 24 74 68 69 73 2d 3e 73 65 74 45 6e 76 28 24 65 6e 76 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d {.$this->setEnv($env);.}..$this-
107ec0 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 69 6d 65 6f >input.=.$input;.$this->setTimeo
107ee0 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 48 61 6e 64 ut($timeout);.$this->useFileHand
107f00 6c 65 73 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 les.=.'\\'.===.DIRECTORY_SEPARAT
107f20 4f 52 3b 0a 24 74 68 69 73 2d 3e 70 74 79 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 65 OR;.$this->pty.=.false;.$this->e
107f40 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 74 72 75 nhanceWindowsCompatibility.=.tru
107f60 65 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 e;.$this->enhanceSigchildCompati
107f80 62 69 6c 69 74 79 20 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 bility.=.'\\'.!==.DIRECTORY_SEPA
107fa0 52 41 54 4f 52 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 RATOR.&&.$this->isSigchildEnable
107fc0 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c d();.$this->options.=.array_repl
107fe0 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 ace(array('suppress_errors'.=>.t
108000 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d 3e 20 74 72 75 65 29 2c 20 24 6f rue,.'binary_pipes'.=>.true),.$o
108020 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 64 65 ptions);.}..public.function.__de
108040 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 6f 70 28 29 3b 0a 7d 0a 0a 70 struct().{...$this->stop();.}..p
108060 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 ublic.function.__clone().{.$this
108080 2d 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ->resetProcessData();.}.........
1080a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 ............public.function.run(
1080c0 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 $callback.=.null).{.$this->start
1080e0 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 69 74 ($callback);..return.$this->wait
108100 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ();.}...............public.funct
108120 69 6f 6e 20 6d 75 73 74 52 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ion.mustRun($callback.=.null).{.
108140 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 20 26 if.($this->isSigchildEnabled().&
108160 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 74 69 &.!$this->enhanceSigchildCompati
108180 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 65 70 bility).{.throw.new.RuntimeExcep
1081a0 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 65 64 tion('This.PHP.has.been.compiled
1081c0 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 75 73 .with.--enable-sigchild..You.mus
1081e0 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 69 62 t.use.setEnhanceSigchildCompatib
108200 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 0a 7d ility().to.use.this.method.');.}
108220 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b ..if.(0.!==.$this->run($callback
108240 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 )).{.throw.new.ProcessFailedExce
108260 70 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ption($this);.}..return.$this;.}
108280 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
1082a0 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a unction.start($callback.=.null).
1082c0 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 72 6f {.if.($this->isRunning()).{.thro
1082e0 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 65 73 73 20 w.new.RuntimeException('Process.
108300 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 is.already.running');.}.if.($thi
108320 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 63 s->outputDisabled.&&.null.!==.$c
108340 61 6c 6c 62 61 63 6b 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 allback).{.throw.new.LogicExcept
108360 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2c 20 65 ion('Output.has.been.disabled,.e
108380 6e 61 62 6c 65 20 69 74 20 74 6f 20 61 6c 6c 6f 77 20 74 68 65 20 75 73 65 20 6f 66 20 61 20 63 nable.it.to.allow.the.use.of.a.c
1083a0 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 50 72 6f 63 65 allback.');.}..$this->resetProce
1083c0 73 73 44 61 74 61 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d 65 20 3d 20 24 74 68 ssData();.$this->starttime.=.$th
1083e0 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 74 69 6d 65 28 74 is->lastOutputTime.=.microtime(t
108400 72 75 65 29 3b 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 3e 62 rue);.$this->callback.=.$this->b
108420 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 24 64 65 73 63 72 69 uildCallback($callback);.$descri
108440 70 74 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 3b ptors.=.$this->getDescriptors();
108460 0a 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c ..$commandline.=.$this->commandl
108480 69 6e 65 3b 0a 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 ine;..if.('\\'.===.DIRECTORY_SEP
1084a0 41 52 41 54 4f 52 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 ARATOR.&&.$this->enhanceWindowsC
1084c0 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 ompatibility).{.$commandline.=.'
1084e0 63 6d 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 44 20 2f 43 20 22 28 27 2e 24 63 6f 6d 6d 61 cmd./V:ON./E:ON./D./C."('.$comma
108500 6e 64 6c 69 6e 65 2e 27 29 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 ndline.')';.foreach.($this->proc
108520 65 73 73 50 69 70 65 73 2d 3e 67 65 74 46 69 6c 65 73 28 29 20 61 73 20 24 6f 66 66 73 65 74 20 essPipes->getFiles().as.$offset.
108540 3d 3e 20 24 66 69 6c 65 6e 61 6d 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 2e 3d 20 =>.$filename).{.$commandline..=.
108560 27 20 27 2e 24 6f 66 66 73 65 74 2e 27 3e 27 2e 50 72 6f 63 65 73 73 55 74 69 6c 73 3a 3a 65 73 '.'.$offset.'>'.ProcessUtils::es
108580 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 24 63 6f 6d 6d capeArgument($filename);.}.$comm
1085a0 61 6e 64 6c 69 6e 65 20 2e 3d 20 27 22 27 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 andline..=.'"';..if.(!isset($thi
1085c0 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 s->options['bypass_shell'])).{.$
1085e0 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 6c 27 5d 20 3d 20 this->options['bypass_shell'].=.
108600 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 true;.}.}..$this->process.=.proc
108620 5f 6f 70 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 _open($commandline,.$descriptors
108640 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 70 69 70 65 73 2c 20 24 74 ,.$this->processPipes->pipes,.$t
108660 68 69 73 2d 3e 63 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 74 68 69 73 2d 3e 6f 70 74 his->cwd,.$this->env,.$this->opt
108680 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e ions);..if.(!is_resource($this->
1086a0 70 72 6f 63 65 73 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 process)).{.throw.new.RuntimeExc
1086c0 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 6c 61 75 6e 63 68 20 61 20 6e 65 77 20 70 eption('Unable.to.launch.a.new.p
1086e0 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c rocess.');.}.$this->status.=.sel
108700 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 f::STATUS_STARTED;..if.($this->t
108720 74 79 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 ty).{.return;.}..$this->updateSt
108740 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d 65 6f 75 74 atus(false);.$this->checkTimeout
108760 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ();.}.................public.fun
108780 63 74 69 6f 6e 20 72 65 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a ction.restart($callback.=.null).
1087a0 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 72 6f {.if.($this->isRunning()).{.thro
1087c0 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 65 73 73 20 w.new.RuntimeException('Process.
1087e0 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 is.already.running');.}..$proces
108800 73 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 73 74 61 72 74 s.=.clone.$this;.$process->start
108820 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d ($callback);..return.$process;.}
108840 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 6e .................public.function
108860 20 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d .wait($callback.=.null).{.$this-
108880 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 5f 46 55 4e 43 54 >requireProcessIsStarted(__FUNCT
1088a0 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 74 75 73 28 66 61 6c ION__);..$this->updateStatus(fal
1088c0 73 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 se);.if.(null.!==.$callback).{.$
1088e0 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 61 6c this->callback.=.$this->buildCal
108900 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d lback($callback);.}..do.{.$this-
108920 3e 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 24 72 75 6e 6e 69 6e 67 20 3d 20 27 5c 5c 27 >checkTimeout();.$running.=.'\\'
108940 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 24 74 68 69 73 .===.DIRECTORY_SEPARATOR.?.$this
108960 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 ->isRunning().:.$this->processPi
108980 70 65 73 2d 3e 61 72 65 4f 70 65 6e 28 29 3b 0a 24 63 6c 6f 73 65 20 3d 20 27 5c 5c 27 20 21 3d pes->areOpen();.$close.=.'\\'.!=
1089a0 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 7c 7c 20 21 24 72 75 6e 6e 69 =.DIRECTORY_SEPARATOR.||.!$runni
1089c0 6e 67 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 74 72 75 65 2c 20 24 63 6c 6f 73 ng;.$this->readPipes(true,.$clos
1089e0 65 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 75 6e 6e 69 6e 67 29 3b 0a 0a 77 68 69 6c 65 20 28 e);.}.while.($running);..while.(
108a00 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 $this->isRunning()).{.usleep(100
108a20 30 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 0);.}..if.($this->processInforma
108a40 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 tion['signaled'].&&.$this->proce
108a60 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 20 21 3d 3d 20 24 74 68 ssInformation['termsig'].!==.$th
108a80 69 73 2d 3e 6c 61 74 65 73 74 53 69 67 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 is->latestSignal).{.throw.new.Ru
108aa0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 70 72 6f 63 ntimeException(sprintf('The.proc
108ac0 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 20 77 69 74 68 20 73 69 67 6e 61 ess.has.been.signaled.with.signa
108ae0 6c 20 22 25 73 22 2e 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 l."%s".',.$this->processInformat
108b00 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ion['termsig']));.}..return.$thi
108b20 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s->exitcode;.}.........public.fu
108b40 6e 63 74 69 6f 6e 20 67 65 74 50 69 64 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 nction.getPid().{.if.($this->isS
108b60 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 65 77 20 52 75 igchildEnabled()).{.throw.new.Ru
108b80 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
108ba0 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
108bc0 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 69 64 65 6e 74 69 66 69 65 72 20 63 61 6e 20 6e 6f d..The.process.identifier.can.no
108be0 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 64 t.be.retrieved.');.}..$this->upd
108c00 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 2d ateStatus(false);..return.$this-
108c20 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3f 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 >isRunning().?.$this->processInf
108c40 6f 72 6d 61 74 69 6f 6e 5b 27 70 69 64 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ormation['pid'].:.null;.}.......
108c60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 67 6e 61 6c 28 24 73 69 ......public.function.signal($si
108c80 67 6e 61 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 2c gnal).{.$this->doSignal($signal,
108ca0 20 74 72 75 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 .true);..return.$this;.}........
108cc0 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 4f 75 74 70 75 74 28 ..public.function.disableOutput(
108ce0 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
108d00 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 44 69 73 61 62 6c row.new.RuntimeException('Disabl
108d20 69 6e 67 20 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 ing.output.while.the.process.is.
108d40 72 75 6e 6e 69 6e 67 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e 27 29 3b 0a 7d 0a 69 66 running.is.not.possible.');.}.if
108d60 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 29 20 7b .(null.!==.$this->idleTimeout).{
108d80 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 4f 75 74 70 75 .throw.new.LogicException('Outpu
108da0 74 20 63 61 6e 20 6e 6f 74 20 62 65 20 64 69 73 61 62 6c 65 64 20 77 68 69 6c 65 20 61 6e 20 69 t.can.not.be.disabled.while.an.i
108dc0 64 6c 65 20 74 69 6d 65 6f 75 74 20 69 73 20 73 65 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d dle.timeout.is.set.');.}..$this-
108de0 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 >outputDisabled.=.true;..return.
108e00 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
108e20 20 65 6e 61 62 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 .enableOutput().{.if.($this->isR
108e40 75 6e 6e 69 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 unning()).{.throw.new.RuntimeExc
108e60 65 70 74 69 6f 6e 28 27 45 6e 61 62 6c 69 6e 67 20 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 eption('Enabling.output.while.th
108e80 65 20 70 72 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 e.process.is.running.is.not.poss
108ea0 69 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 ible.');.}..$this->outputDisable
108ec0 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a d.=.false;..return.$this;.}.....
108ee0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4f 75 74 70 75 74 44 69 73 61 62 6c ..public.function.isOutputDisabl
108f00 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 ed().{.return.$this->outputDisab
108f20 6c 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 led;.}..........public.function.
108f40 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 getOutput().{.if.($this->outputD
108f60 69 73 61 62 6c 65 64 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 isabled).{.throw.new.LogicExcept
108f80 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2e 27 29 ion('Output.has.been.disabled.')
108fa0 3b 0a 7d 0a 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 ;.}..$this->requireProcessIsStar
108fc0 74 65 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 72 65 61 64 50 ted(__FUNCTION__);..$this->readP
108fe0 69 70 65 73 28 66 61 6c 73 65 2c 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 ipes(false,.'\\'.===.DIRECTORY_S
109000 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d EPARATOR.?.!$this->processInform
109020 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 ation['running'].:.true);..retur
109040 6e 20 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 n.$this->stdout;.}.............p
109060 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 ublic.function.getIncrementalOut
109080 70 75 74 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 53 put().{.$this->requireProcessIsS
1090a0 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 tarted(__FUNCTION__);..$data.=.$
1090c0 74 68 69 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 this->getOutput();..$latest.=.su
1090e0 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 bstr($data,.$this->incrementalOu
109100 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 61 74 tputOffset);..if.(false.===.$lat
109120 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 63 72 est).{.return.'';.}..$this->incr
109140 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 ementalOutputOffset.=.strlen($da
109160 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 0a 0a 0a 0a 0a 70 75 ta);..return.$latest;.}.......pu
109180 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 blic.function.clearOutput().{.$t
1091a0 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 his->stdout.=.'';.$this->increme
1091c0 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ntalOutputOffset.=.0;..return.$t
1091e0 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 69 6f 6e 20 his;.}..........public.function.
109200 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 getErrorOutput().{.if.($this->ou
109220 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 4c 6f 67 69 63 45 tputDisabled).{.throw.new.LogicE
109240 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 64 69 73 61 62 6c xception('Output.has.been.disabl
109260 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 6f 63 65 73 73 49 ed.');.}..$this->requireProcessI
109280 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 74 68 69 73 2d 3e sStarted(__FUNCTION__);..$this->
1092a0 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 44 49 52 45 43 54 readPipes(false,.'\\'.===.DIRECT
1092c0 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 73 73 49 ORY_SEPARATOR.?.!$this->processI
1092e0 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 3b 0a 0a nformation['running'].:.true);..
109300 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$this->stderr;.}.........
109320 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 72 65 6d 65 6e .....public.function.getIncremen
109340 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 talErrorOutput().{.$this->requir
109360 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__);
109380 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 ..$data.=.$this->getErrorOutput(
1093a0 29 3b 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 );..$latest.=.substr($data,.$thi
1093c0 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 74 29 s->incrementalErrorOutputOffset)
1093e0 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6c 61 74 65 73 74 29 20 7b 0a 72 65 74 75 ;..if.(false.===.$latest).{.retu
109400 72 6e 20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f rn.'';.}..$this->incrementalErro
109420 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 0a rOutputOffset.=.strlen($data);..
109440 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 return.$latest;.}.......public.f
109460 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 unction.clearErrorOutput().{.$th
109480 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e is->stderr.=.'';.$this->incremen
1094a0 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 72 65 74 75 72 talErrorOutputOffset.=.0;..retur
1094c0 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 69 n.$this;.}.........public.functi
1094e0 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 on.getExitCode().{.if.($this->is
109500 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 SigchildEnabled().&&.!$this->enh
109520 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 29 20 7b 0a 74 68 72 anceSigchildCompatibility).{.thr
109540 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
109560 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
109580 65 2d 73 69 67 63 68 69 6c 64 2e 20 59 6f 75 20 6d 75 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 e-sigchild..You.must.use.setEnha
1095a0 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 nceSigchildCompatibility().to.us
1095c0 65 20 74 68 69 73 20 6d 65 74 68 6f 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 e.this.method.');.}..$this->upda
1095e0 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 2d 3e teStatus(false);..return.$this->
109600 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 exitcode;.}...............public
109620 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 0a 7b 0a 69 66 .function.getExitCodeText().{.if
109640 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 .(null.===.$exitcode.=.$this->ge
109660 74 45 78 69 74 43 6f 64 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e tExitCode()).{.return;.}..return
109680 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 .isset(self::$exitCodes[$exitcod
1096a0 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 e]).?.self::$exitCodes[$exitcode
1096c0 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 ].:.'Unknown.error';.}.......pub
1096e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 72 65 lic.function.isSuccessful().{.re
109700 74 75 72 6e 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b turn.0.===.$this->getExitCode();
109720 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 68 61 .}............public.function.ha
109740 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 sBeenSignaled().{.$this->require
109760 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__
109780 29 3b 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 );..if.($this->isSigchildEnabled
1097a0 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 6e ()).{.throw.new.RuntimeException
1097c0 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 ('This.PHP.has.been.compiled.wit
1097e0 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c h.--enable-sigchild..Term.signal
109800 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 74 68 .can.not.be.retrieved.');.}..$th
109820 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e is->updateStatus(false);..return
109840 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 73 69 67 6e .$this->processInformation['sign
109860 61 6c 65 64 27 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 aled'];.}............public.func
109880 74 69 6f 6e 20 67 65 74 54 65 72 6d 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 tion.getTermSignal().{.$this->re
1098a0 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 5f 5f 46 55 4e 43 54 quireProcessIsTerminated(__FUNCT
1098c0 49 4f 4e 5f 5f 29 3b 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 ION__);..if.($this->isSigchildEn
1098e0 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 abled()).{.throw.new.RuntimeExce
109900 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 65 ption('This.PHP.has.been.compile
109920 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 d.with.--enable-sigchild..Term.s
109940 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d ignal.can.not.be.retrieved.');.}
109960 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 ..$this->updateStatus(false);..r
109980 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b eturn.$this->processInformation[
1099a0 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 'termsig'];.}...........public.f
1099c0 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 73 unction.hasBeenStopped().{.$this
1099e0 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 5f 5f 46 ->requireProcessIsTerminated(__F
109a00 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 74 75 73 UNCTION__);..$this->updateStatus
109a20 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 73 73 49 (false);..return.$this->processI
109a40 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 70 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a nformation['stopped'];.}........
109a60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c ...public.function.getStopSignal
109a80 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
109aa0 69 6e 61 74 65 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 inated(__FUNCTION__);..$this->up
109ac0 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
109ae0 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b ->processInformation['stopsig'];
109b00 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 75 6e 6e 69 .}.......public.function.isRunni
109b20 6e 67 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 ng().{.if.(self::STATUS_STARTED.
109b40 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 20 66 61 6c 73 !==.$this->status).{.return.fals
109b60 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 e;.}..$this->updateStatus(false)
109b80 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 ;..return.$this->processInformat
109ba0 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ion['running'];.}.......public.f
109bc0 75 6e 63 74 69 6f 6e 20 69 73 53 74 61 72 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 unction.isStarted().{.return.$th
109be0 69 73 2d 3e 73 74 61 74 75 73 20 21 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 is->status.!=.self::STATUS_READY
109c00 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 54 65 72 6d ;.}.......public.function.isTerm
109c20 69 6e 61 74 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 inated().{.$this->updateStatus(f
109c40 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 3d 20 alse);..return.$this->status.==.
109c60 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 7d 0a 0a 0a 0a 0a 0a self::STATUS_TERMINATED;.}......
109c80 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 28 29 0a 7b ...public.function.getStatus().{
109ca0 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 .$this->updateStatus(false);..re
109cc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->status;.}...........
109ce0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 74 69 6d 65 6f 75 74 20 3d .public.function.stop($timeout.=
109d00 20 31 30 2c 20 24 73 69 67 6e 61 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 4d .10,.$signal.=.null).{.$timeoutM
109d20 69 63 72 6f 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2b 20 24 74 69 6d 65 6f 75 icro.=.microtime(true).+.$timeou
109d40 74 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 69 66 20 t;.if.($this->isRunning()).{.if.
109d60 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 20 26 26 ('\\'.===.DIRECTORY_SEPARATOR.&&
109d80 20 21 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()).{.
109da0 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 74 61 73 6b 6b 69 6c 6c 20 2f 46 20 2f 54 20 2f 50 49 exec(sprintf('taskkill./F./T./PI
109dc0 44 20 25 64 20 32 3e 26 31 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 69 64 28 29 29 2c 20 24 6f D.%d.2>&1',.$this->getPid()),.$o
109de0 75 74 70 75 74 2c 20 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 utput,.$exitCode);.if.($exitCode
109e00 20 3e 20 30 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 .>.0).{.throw.new.RuntimeExcepti
109e20 6f 6e 28 27 55 6e 61 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 on('Unable.to.kill.the.process')
109e40 3b 0a 7d 0a 7d 0a 0a 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 ;.}.}...$this->doSignal(15,.fals
109e60 65 29 3b 0a 64 6f 20 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 e);.do.{.usleep(1000);.}.while.(
109e80 24 74 68 69 73 2d 3e 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 $this->isRunning().&&.microtime(
109ea0 74 72 75 65 29 20 3c 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 true).<.$timeoutMicro);..if.($th
109ec0 69 73 2d 3e 69 73 52 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 is->isRunning().&&.!$this->isSig
109ee0 63 68 69 6c 64 45 6e 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 childEnabled()).{.if.(null.!==.$
109f00 73 69 67 6e 61 6c 20 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 signal.||.defined('SIGKILL')).{.
109f20 0a 20 0a 20 0a 20 0a 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 ........$this->doSignal($signal.
109f40 3f 3a 20 53 49 47 4b 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 ?:.SIGKILL,.false);.}.}.}..$this
109f60 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 74 68 69 73 ->updateStatus(false);.if.($this
109f80 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 ->processInformation['running'])
109fa0 20 7b 0a 24 74 68 69 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 .{.$this->close();.}..return.$th
109fc0 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e is->exitcode;.}.......public.fun
109fe0 63 74 69 6f 6e 20 61 64 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e ction.addOutput($line).{.$this->
10a000 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 lastOutputTime.=.microtime(true)
10a020 3b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a ;.$this->stdout..=.$line;.}.....
10a040 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 ..public.function.addErrorOutput
10a060 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 ($line).{.$this->lastOutputTime.
10a080 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 =.microtime(true);.$this->stderr
10a0a0 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ..=.$line;.}.......public.functi
10a0c0 6f 6e 20 67 65 74 43 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 on.getCommandLine().{.return.$th
10a0e0 69 73 2d 3e 63 6f 6d 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 is->commandline;.}.........publi
10a100 63 20 66 75 6e 63 74 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 c.function.setCommandLine($comma
10a120 6e 64 6c 69 6e 65 29 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 ndline).{.$this->commandline.=.$
10a140 63 6f 6d 6d 61 6e 64 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 commandline;..return.$this;.}...
10a160 0a 0a 0a 0a 70 75 62 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 ....public.function.getTimeout()
10a180 0a 7b 0a 72 65 74 75 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 .{.return.$this->timeout;.}.....
10a1a0 0a 0a 70 75 62 6c 69 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 ..public.function.getIdleTimeout
10a1c0 28 29 0a 7b 0a 72 65 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 ().{.return.$this->idleTimeout;.
10a1e0 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 65 }.............public.function.se
10a200 74 54 69 6d 65 6f 75 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 tTimeout($timeout).{.$this->time
10a220 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 74 28 24 74 69 out.=.$this->validateTimeout($ti
10a240 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 0a 0a 0a 0a 0a meout);..return.$this;.}........
10a260 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 6c 65 54 69 6d ......public.function.setIdleTim
10a280 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 21 3d 3d 20 24 74 eout($timeout).{.if.(null.!==.$t
10a2a0 69 6d 65 6f 75 74 20 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 imeout.&&.$this->outputDisabled)
10a2c0 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 49 64 6c .{.throw.new.LogicException('Idl
10a2e0 65 20 74 69 6d 65 6f 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 e.timeout.can.not.be.set.while.t
10a300 68 65 20 6f 75 74 70 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 he.output.is.disabled.');.}..$th
10a320 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 is->idleTimeout.=.$this->validat
10a340 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 eTimeout($timeout);..return.$thi
10a360 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 6e 20 73 s;.}...........public.function.s
10a380 65 74 54 74 79 28 24 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 etTty($tty).{.if.('\\'.===.DIREC
10a3a0 54 4f 52 59 5f 53 45 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 TORY_SEPARATOR.&&.$tty).{.throw.
10a3c0 6e 65 77 20 52 75 6e 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 new.RuntimeException('TTY.mode.i
10a3e0 73 20 6e 6f 74 20 73 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 s.not.supported.on.Windows.platf
10a400 6f 72 6d 2e 27 29 3b 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 orm.');.}.if.($tty.&&.(!file_exi
10a420 73 74 73 28 27 2f 64 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 sts('/dev/tty').||.!is_readable(
10a440 27 2f 64 65 76 2f 74 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 '/dev/tty'))).{.throw.new.Runtim
10a460 65 45 78 63 65 70 74 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 eException('TTY.mode.requires./d
10a480 65 76 2f 74 74 79 20 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 ev/tty.to.be.readable.');.}..$th
10a4a0 69 73 2d 3e 74 74 79 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 is->tty.=.(bool).$tty;..return.$
10a4c0 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 73 this;.}.......public.function.is
10a4e0 54 74 79 28 29 0a 7b 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 Tty().{.return.$this->tty;.}....
10a500 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 74 79 28 24 62 6f 6f .....public.function.setPty($boo
10a520 6c 29 0a 7b 0a 24 74 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 l).{.$this->pty.=.(bool).$bool;.
10a540 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$this;.}.......public.fu
10a560 6e 63 74 69 6f 6e 20 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 nction.isPty().{.return.$this->p
10a580 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 ty;.}.......public.function.getW
10a5a0 6f 72 6b 69 6e 67 44 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 orkingDirectory().{.if.(null.===
10a5c0 20 24 74 68 69 73 2d 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 .$this->cwd).{.....return.getcwd
10a5e0 28 29 20 3f 3a 20 6e 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 ().?:.null;.}..return.$this->cwd
10a600 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 57 ;.}.........public.function.setW
10a620 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 orkingDirectory($cwd).{.$this->c
10a640 77 64 20 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a wd.=.$cwd;..return.$this;.}.....
10a660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 28 29 0a 7b 0a 72 65 74 ..public.function.getEnv().{.ret
10a680 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$this->env;.}...............
10a6a0 70 75 62 6c 69 63 20 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 public.function.setEnv(array.$en
10a6c0 76 29 0a 7b 0a 0a 20 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 v).{...$env.=.array_filter($env,
10a6e0 20 66 75 6e 63 74 69 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 .function.($value).{.return.!is_
10a700 61 72 72 61 79 28 24 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 array($value);.});..$this->env.=
10a720 20 61 72 72 61 79 28 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 .array();.foreach.($env.as.$key.
10a740 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6b 65 79 5d 20 3d 20 =>.$value).{.$this->env[$key].=.
10a760 28 73 74 72 69 6e 67 29 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 (string).$value;.}..return.$this
10a780 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ;.}...........public.function.ge
10a7a0 74 53 74 64 69 6e 28 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 65 20 27 tStdin().{.@trigger_error('The.'
10a7c0 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 .__METHOD__.'.method.is.deprecat
10a7e0 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 6c 6c 20 62 65 ed.since.version.2.5.and.will.be
10a800 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 74 68 65 20 67 65 74 49 6e 70 75 .removed.in.3.0..Use.the.getInpu
10a820 74 28 29 20 6d 65 74 68 6f 64 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 t().method.instead.',.E_USER_DEP
10a840 52 45 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 RECATED);..return.$this->getInpu
10a860 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 74 t();.}.......public.function.get
10a880 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 7d Input().{.return.$this->input;.}
10a8a0 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 73 ...............public.function.s
10a8c0 65 74 53 74 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 etStdin($stdin).{.@trigger_error
10a8e0 28 27 54 68 65 20 27 2e 5f 5f 4d 45 54 48 4f 44 5f 5f 2e 27 20 6d 65 74 68 6f 64 20 69 73 20 64 ('The.'.__METHOD__.'.method.is.d
10a900 65 70 72 65 63 61 74 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 eprecated.since.version.2.5.and.
10a920 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 20 55 73 65 20 74 68 65 20 will.be.removed.in.3.0..Use.the.
10a940 73 65 74 49 6e 70 75 74 28 29 20 6d 65 74 68 6f 64 20 69 6e 73 74 65 61 64 2e 27 2c 20 45 5f 55 setInput().method.instead.',.E_U
10a960 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e SER_DEPRECATED);..return.$this->
10a980 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 0a setInput($stdin);.}.............
10a9a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 ..public.function.setInput($inpu
10a9c0 74 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 t).{.if.($this->isRunning()).{.t
10a9e0 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 49 6e 70 75 74 20 63 hrow.new.LogicException('Input.c
10aa00 61 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 an.not.be.set.while.the.process.
10aa20 69 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 is.running.');.}..$this->input.=
10aa40 20 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 .ProcessUtils::validateInput(spr
10aa60 69 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 intf('%s::%s',.__CLASS__,.__FUNC
10aa80 54 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 TION__),.$input);..return.$this;
10aaa0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 .}.......public.function.getOpti
10aac0 6f 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 ons().{.return.$this->options;.}
10aae0 0a 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 .........public.function.setOpti
10ab00 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 2d 3e 6f 70 74 ons(array.$options).{.$this->opt
10ab20 69 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 ions.=.$options;..return.$this;.
10ab40 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 45 6e 68 }.........public.function.getEnh
10ab60 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 29 0a 7b 0a 72 65 74 anceWindowsCompatibility().{.ret
10ab80 75 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 urn.$this->enhanceWindowsCompati
10aba0 62 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 bility;.}.........public.functio
10abc0 6e 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 n.setEnhanceWindowsCompatibility
10abe0 28 24 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f ($enhance).{.$this->enhanceWindo
10ac00 77 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 wsCompatibility.=.(bool).$enhanc
10ac20 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 6c 69 63 e;..return.$this;.}.......public
10ac40 20 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 .function.getEnhanceSigchildComp
10ac60 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 atibility().{.return.$this->enha
10ac80 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 7d 0a 0a 0a 0a 0a nceSigchildCompatibility;.}.....
10aca0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e ........public.function.setEnhan
10acc0 63 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 ceSigchildCompatibility($enhance
10ace0 29 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 ).{.$this->enhanceSigchildCompat
10ad00 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 3b 0a 0a 72 65 74 75 ibility.=.(bool).$enhance;..retu
10ad20 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 20 66 75 6e 63 rn.$this;.}..........public.func
10ad40 74 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 tion.checkTimeout().{.if.($this-
10ad60 3e 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 >status.!==.self::STATUS_STARTED
10ad80 29 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 ).{.return;.}..if.(null.!==.$thi
10ada0 73 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 s->timeout.&&.$this->timeout.<.m
10adc0 69 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 icrotime(true).-.$this->starttim
10ade0 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 e).{.$this->stop(0);..throw.new.
10ae00 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2c 20 ProcessTimedOutException($this,.
10ae20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3a 3a 54 59 50 45 5f 47 ProcessTimedOutException::TYPE_G
10ae40 45 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 ENERAL);.}..if.(null.!==.$this->
10ae60 69 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 idleTimeout.&&.$this->idleTimeou
10ae80 74 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 t.<.microtime(true).-.$this->las
10aea0 74 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 tOutputTime).{.$this->stop(0);..
10aec0 74 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 throw.new.ProcessTimedOutExcepti
10aee0 6f 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 on($this,.ProcessTimedOutExcepti
10af00 6f 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 on::TYPE_IDLE);.}.}.......public
10af20 20 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 .static.function.isPtySupported(
10af40 29 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 ).{.static.$result;..if.(null.!=
10af60 3d 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 =.$result).{.return.$result;.}..
10af80 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 52 if.('\\'.===.DIRECTORY_SEPARATOR
10afa0 29 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 ).{.return.$result.=.false;.}..$
10afc0 70 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 proc.=.@proc_open('echo.1',.arra
10afe0 79 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 y(array('pty'),.array('pty'),.ar
10b000 72 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 ray('pty')),.$pipes);.if.(is_res
10b020 6f 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 ource($proc)).{.proc_close($proc
10b040 29 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 );..return.$result.=.true;.}..re
10b060 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 0a 0a 0a 0a 0a 70 72 turn.$result.=.false;.}.......pr
10b080 69 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 ivate.function.getDescriptors().
10b0a0 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 50 41 52 41 54 {.if.('\\'.===.DIRECTORY_SEPARAT
10b0c0 4f 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 OR).{.$this->processPipes.=.Wind
10b0e0 6f 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 owsPipes::create($this,.$this->i
10b100 6e 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 nput);.}.else.{.$this->processPi
10b120 70 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 pes.=.UnixPipes::create($this,.$
10b140 74 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 this->input);.}.$descriptors.=.$
10b160 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 67 65 74 44 65 73 63 72 69 70 74 6f this->processPipes->getDescripto
10b180 72 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 rs($this->outputDisabled);..if.(
10b1a0 21 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 !$this->useFileHandles.&&.$this-
10b1c0 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 26 26 >enhanceSigchildCompatibility.&&
10b1e0 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 0a .$this->isSigchildEnabled()).{..
10b200 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 64 65 73 .$descriptors.=.array_merge($des
10b220 63 72 69 70 74 6f 72 73 2c 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 criptors,.array(array('pipe',.'w
10b240 27 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 28 27 2e ')));..$this->commandline.=.'('.
10b260 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 20 33 3e 2f 64 65 76 2f 6e 75 6c $this->commandline.').3>/dev/nul
10b280 6c 3b 20 63 6f 64 65 3d 24 3f 3b 20 65 63 68 6f 20 24 63 6f 64 65 20 3e 26 33 3b 20 65 78 69 74 l;.code=$?;.echo.$code.>&3;.exit
10b2a0 20 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 .$code';.}..return.$descriptors;
10b2c0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .}............protected.function
10b2e0 20 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 .buildCallback($callback).{.$tha
10b300 74 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 t.=.$this;.$out.=.self::OUT;.$ca
10b320 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 llback.=.function.($type,.$data)
10b340 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 6f 75 74 29 20 7b 0a .use.($that,.$callback,.$out).{.
10b360 69 66 20 28 24 6f 75 74 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 4f if.($out.==.$type).{.$that->addO
10b380 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 61 74 2d 3e 61 64 utput($data);.}.else.{.$that->ad
10b3a0 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c dErrorOutput($data);.}..if.(null
10b3c0 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 .!==.$callback).{.call_user_func
10b3e0 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 3b 0a ($callback,.$type,.$data);.}.};.
10b400 0a 72 65 74 75 72 6e 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 .return.$callback;.}.......prote
10b420 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 53 74 61 74 75 73 28 24 62 6c 6f 63 cted.function.updateStatus($bloc
10b440 6b 69 6e 67 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 king).{.if.(self::STATUS_STARTED
10b460 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a .!==.$this->status).{.return;.}.
10b480 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f .$this->processInformation.=.pro
10b4a0 63 5f 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 c_get_status($this->process);.$t
10b4c0 68 69 73 2d 3e 63 61 70 74 75 72 65 45 78 69 74 43 6f 64 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e his->captureExitCode();..$this->
10b4e0 72 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 readPipes($blocking,.'\\'.===.DI
10b500 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 6f 63 RECTORY_SEPARATOR.?.!$this->proc
10b520 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 75 65 essInformation['running'].:.true
10b540 29 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 );..if.(!$this->processInformati
10b560 6f 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 on['running']).{.$this->close();
10b580 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 .}.}.......protected.function.is
10b5a0 53 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 SigchildEnabled().{.if.(null.!==
10b5c0 20 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 .self::$sigchild).{.return.self:
10b5e0 3a 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 :$sigchild;.}..if.(!function_exi
10b600 73 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 sts('phpinfo')).{.return.self::$
10b620 73 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 sigchild.=.false;.}..ob_start();
10b640 0a 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 .phpinfo(INFO_GENERAL);..return.
10b660 73 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 self::$sigchild.=.false.!==.strp
10b680 6f 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 os(ob_get_clean(),.'--enable-sig
10b6a0 63 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 child');.}...........private.fun
10b6c0 63 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 ction.validateTimeout($timeout).
10b6e0 7b 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a {.$timeout.=.(float).$timeout;..
10b700 69 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 if.(0.0.===.$timeout).{.$timeout
10b720 20 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 .=.null;.}.elseif.($timeout.<.0)
10b740 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 63 65 .{.throw.new.InvalidArgumentExce
10b760 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 73 74 20 62 65 ption('The.timeout.value.must.be
10b780 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 72 20 66 6c 6f .a.valid.positive.integer.or.flo
10b7a0 61 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 at.number.');.}..return.$timeout
10b7c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 ;.}........private.function.read
10b7e0 50 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 Pipes($blocking,.$close).{.$resu
10b800 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 72 65 61 64 41 6e lt.=.$this->processPipes->readAn
10b820 64 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 dWrite($blocking,.$close);..$cal
10b840 6c 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 lback.=.$this->callback;.foreach
10b860 20 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 .($result.as.$type.=>.$data).{.i
10b880 66 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 f.(3.==.$type).{.$this->fallback
10b8a0 45 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 Exitcode.=.(int).$data;.}.else.{
10b8c0 0a 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 .$callback($type.===.self::STDOU
10b8e0 54 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 T.?.self::OUT.:.self::ERR,.$data
10b900 29 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 );.}.}.}.....private.function.ca
10b920 70 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 ptureExitCode().{.if.(isset($thi
10b940 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 s->processInformation['exitcode'
10b960 5d 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 ]).&&.-1.!=.$this->processInform
10b980 61 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 ation['exitcode']).{.$this->exit
10b9a0 63 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 code.=.$this->processInformation
10b9c0 5b 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 ['exitcode'];.}.}.......private.
10b9e0 66 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 function.close().{.$this->proces
10ba00 73 50 69 70 65 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 sPipes->close();.if.(is_resource
10ba20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 ($this->process)).{.$exitcode.=.
10ba40 70 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 20 65 6c proc_close($this->process);.}.el
10ba60 73 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 se.{.$exitcode.=.-1;.}..$this->e
10ba80 78 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 xitcode.=.-1.!==.$exitcode.?.$ex
10baa0 69 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 itcode.:.(null.!==.$this->exitco
10bac0 64 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 de.?.$this->exitcode.:.-1);.$thi
10bae0 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 s->status.=.self::STATUS_TERMINA
10bb00 54 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 TED;..if.(-1.===.$this->exitcode
10bb20 20 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 .&&.null.!==.$this->fallbackExit
10bb40 63 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 code).{.$this->exitcode.=.$this-
10bb60 3e 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 >fallbackExitcode;.}.elseif.(-1.
10bb80 3d 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 ===.$this->exitcode.&&.$this->pr
10bba0 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 20 26 26 20 ocessInformation['signaled'].&&.
10bbc0 30 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 0.<.$this->processInformation['t
10bbe0 65 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 ermsig']).{...$this->exitcode.=.
10bc00 31 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 128.+.$this->processInformation[
10bc20 27 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 'termsig'];.}..return.$this->exi
10bc40 74 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 tcode;.}.....private.function.re
10bc60 73 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 setProcessData().{.$this->startt
10bc80 69 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 ime.=.null;.$this->callback.=.nu
10bca0 6c 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 ll;.$this->exitcode.=.null;.$thi
10bcc0 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 s->fallbackExitcode.=.null;.$thi
10bce0 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 74 s->processInformation.=.null;.$t
10bd00 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 his->stdout.=.null;.$this->stder
10bd20 72 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 r.=.null;.$this->process.=.null;
10bd40 0a 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 .$this->latestSignal.=.null;.$th
10bd60 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b is->status.=.self::STATUS_READY;
10bd80 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 .$this->incrementalOutputOffset.
10bda0 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 =.0;.$this->incrementalErrorOutp
10bdc0 75 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 utOffset.=.0;.}..............pri
10bde0 76 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 vate.function.doSignal($signal,.
10be00 24 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 $throwException).{.if.(!$this->i
10be20 73 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 sRunning()).{.if.($throwExceptio
10be40 6e 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 n).{.throw.new.LogicException('C
10be60 61 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 an.not.send.signal.on.a.non.runn
10be80 69 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 ing.process.');.}..return.false;
10bea0 0a 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 .}..if.($this->isSigchildEnabled
10bec0 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 29 20 7b 0a 74 68 72 ()).{.if.($throwException).{.thr
10bee0 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
10bf00 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
10bf20 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 63 61 6e 20 6e 6f 74 20 e-sigchild..The.process.can.not.
10bf40 62 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 be.signaled.');.}..return.false;
10bf60 0a 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 .}..if.(true.!==.@proc_terminate
10bf80 28 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 ($this->process,.$signal)).{.if.
10bfa0 28 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 ($throwException).{.throw.new.Ru
10bfc0 6e 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 ntimeException(sprintf('Error.wh
10bfe0 69 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 ile.sending.signal.`%s`.',.$sign
10c000 61 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 al));.}..return.false;.}..$this-
10c020 3e 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 >latestSignal.=.$signal;..return
10c040 20 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 .true;.}.........private.functio
10c060 6e 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 n.requireProcessIsStarted($funct
10c080 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 53 74 61 72 74 65 64 ionName).{.if.(!$this->isStarted
10c0a0 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 74 69 6f 6e 28 73 ()).{.throw.new.LogicException(s
10c0c0 70 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 printf('Process.must.be.started.
10c0e0 62 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 before.calling.%s.',.$functionNa
10c100 6d 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 me));.}.}.........private.functi
10c120 6f 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 on.requireProcessIsTerminated($f
10c140 75 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 unctionName).{.if.(!$this->isTer
10c160 6d 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 minated()).{.throw.new.LogicExce
10c180 70 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 ption(sprintf('Process.must.be.t
10c1a0 65 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 erminated.before.calling.%s.',.$
10c1c0 66 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 functionName));.}.}.}.<?php.....
10c1e0 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
10c200 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
10c220 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
10c240 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 70 6f 6e entException;.use.Symfony\Compon
10c260 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 63 65 70 ent\Process\Exception\LogicExcep
10c280 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 tion;.......class.ProcessBuilder
10c2a0 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 .{.private.$arguments;.private.$
10c2c0 63 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 cwd;.private.$env.=.array();.pri
10c2e0 76 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 vate.$input;.private.$timeout.=.
10c300 36 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 60;.private.$options.=.array();.
10c320 70 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 private.$inheritEnv.=.true;.priv
10c340 61 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 ate.$prefix.=.array();.private.$
10c360 6f 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 outputDisabled.=.false;.......pu
10c380 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.
10c3a0 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 $arguments.=.array()).{.$this->a
10c3c0 72 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 rguments.=.$arguments;.}........
10c3e0 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 61 .public.static.function.create(a
10c400 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 rray.$arguments.=.array()).{.ret
10c420 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a urn.new.static($arguments);.}...
10c440 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 61 72 67 75 6d ......public.function.add($argum
10c460 65 6e 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 61 72 67 ent).{.$this->arguments[].=.$arg
10c480 75 6d 65 6e 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ument;..return.$this;.}.........
10c4a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 69 78 28 24 70 72 65 ..public.function.setPrefix($pre
10c4c0 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 20 3d 20 69 73 5f 61 72 72 61 79 28 fix).{.$this->prefix.=.is_array(
10c4e0 24 70 72 65 66 69 78 29 20 3f 20 24 70 72 65 66 69 78 20 3a 20 61 72 72 61 79 28 24 70 72 65 66 $prefix).?.$prefix.:.array($pref
10c500 69 78 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ix);..return.$this;.}...........
10c520 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 61 72 .public.function.setArguments(ar
10c540 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e ray.$arguments).{.$this->argumen
10c560 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a ts.=.$arguments;..return.$this;.
10c580 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 }.........public.function.setWor
10c5a0 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 kingDirectory($cwd).{.$this->cwd
10c5c0 20 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .=.$cwd;..return.$this;.}.......
10c5e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e ..public.function.inheritEnviron
10c600 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 mentVariables($inheritEnv.=.true
10c620 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 65 72 69 74 ).{.$this->inheritEnv.=.$inherit
10c640 45 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 Env;..return.$this;.}...........
10c660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 24 6e 61 6d 65 2c 20 ..public.function.setEnv($name,.
10c680 24 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 $value).{.$this->env[$name].=.$v
10c6a0 61 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 alue;..return.$this;.}..........
10c6c0 0a 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 ...public.function.addEnvironmen
10c6e0 74 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 tVariables(array.$variables).{.$
10c700 74 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 this->env.=.array_replace($this-
10c720 3e 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 >env,.$variables);..return.$this
10c740 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ;.}.............public.function.
10c760 73 65 74 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 setInput($input).{.$this->input.
10c780 3d 20 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 =.ProcessUtils::validateInput(sp
10c7a0 72 69 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 rintf('%s::%s',.__CLASS__,.__FUN
10c7c0 43 54 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 CTION__),.$input);..return.$this
10c7e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ;.}.............public.function.
10c800 73 65 74 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 setTimeout($timeout).{.if.(null.
10c820 3d 3d 3d 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 ===.$timeout).{.$this->timeout.=
10c840 20 6e 75 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 .null;..return.$this;.}..$timeou
10c860 74 20 3d 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 t.=.(float).$timeout;..if.($time
10c880 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 out.<.0).{.throw.new.InvalidArgu
10c8a0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 mentException('The.timeout.value
10c8c0 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 .must.be.a.valid.positive.intege
10c8e0 72 20 6f 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e r.or.float.number.');.}..$this->
10c900 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 timeout.=.$timeout;..return.$thi
10c920 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 73 65 s;.}..........public.function.se
10c940 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e tOption($name,.$value).{.$this->
10c960 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e options[$name].=.$value;..return
10c980 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.
10c9a0 64 69 73 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 disableOutput().{.$this->outputD
10c9c0 69 73 61 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 isabled.=.true;..return.$this;.}
10c9e0 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 61 62 6c 65 4f 75 74 .......public.function.enableOut
10ca00 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 62 6c 65 64 20 3d 20 put().{.$this->outputDisabled.=.
10ca20 66 61 6c 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 false;..return.$this;.}.........
10ca40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 69 public.function.getProcess().{.i
10ca60 66 20 28 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 f.(0.===.count($this->prefix).&&
10ca80 20 30 20 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 .0.===.count($this->arguments)).
10caa0 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 59 6f 75 20 {.throw.new.LogicException('You.
10cac0 6d 75 73 74 20 61 64 64 28 29 20 63 6f 6d 6d 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 62 65 66 must.add().command.arguments.bef
10cae0 6f 72 65 20 63 61 6c 6c 69 6e 67 20 67 65 74 50 72 6f 63 65 73 73 28 29 2e 27 29 3b 0a 7d 0a 0a ore.calling.getProcess().');.}..
10cb00 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 0a 24 61 72 67 $options.=.$this->options;..$arg
10cb20 75 6d 65 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 uments.=.array_merge($this->pref
10cb40 69 78 2c 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 ix,.$this->arguments);.$script.=
10cb60 20 69 6d 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 .implode('.',.array_map(array(__
10cb80 4e 41 4d 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 NAMESPACE__.'\\ProcessUtils',.'e
10cba0 73 63 61 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 scapeArgument'),.$arguments));..
10cbc0 69 66 20 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 if.($this->inheritEnv).{...$env.
10cbe0 3d 20 61 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 =.array_replace($_ENV,.$_SERVER,
10cc00 20 24 74 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 .$this->env);.}.else.{.$env.=.$t
10cc20 68 69 73 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 his->env;.}..$process.=.new.Proc
10cc40 65 73 73 28 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 65 6e 76 2c 20 24 ess($script,.$this->cwd,.$env,.$
10cc60 74 68 69 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 this->input,.$this->timeout,.$op
10cc80 74 69 6f 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 tions);..if.($this->outputDisabl
10cca0 65 64 29 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 ed).{.$process->disableOutput();
10ccc0 0a 7d 0a 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 .}..return.$process;.}.}.<?php..
10cce0 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
10cd00 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
10cd20 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
10cd40 67 75 6d 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 gumentException;.........class.P
10cd60 72 6f 63 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 rocessUtils.{....private.functio
10cd80 6e 20 5f 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 n.__construct().{.}.........publ
10cda0 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 41 72 67 75 6d 65 6e ic.static.function.escapeArgumen
10cdc0 74 28 24 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 t($argument).{.........if.('\\'.
10cde0 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 69 66 20 28 27 ===.DIRECTORY_SEPARATOR).{.if.('
10ce00 27 20 3d 3d 3d 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 '.===.$argument).{.return.escape
10ce20 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 0a 24 65 73 63 61 70 65 64 shellarg($argument);.}..$escaped
10ce40 41 72 67 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 Argument.=.'';.$quote.=.false;.f
10ce60 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 28 22 29 2f 27 2c 20 24 61 72 67 oreach.(preg_split('/(")/',.$arg
10ce80 75 6d 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 ument,.-1,.PREG_SPLIT_NO_EMPTY.|
10cea0 20 50 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 .PREG_SPLIT_DELIM_CAPTURE).as.$p
10cec0 61 72 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 art).{.if.('"'.===.$part).{.$esc
10cee0 61 70 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 apedArgument..=.'\\"';.}.elseif.
10cf00 28 73 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 (self::isSurroundedBy($part,.'%'
10cf20 29 29 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 )).{...$escapedArgument..=.'^%"'
10cf40 2e 73 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 .substr($part,.1,.-1).'"^%';.}.e
10cf60 6c 73 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 lse.{...if.('\\'.===.substr($par
10cf80 74 2c 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 t,.-1)).{.$part..=.'\\';.}.$quot
10cfa0 65 20 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 e.=.true;.$escapedArgument..=.$p
10cfc0 61 72 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 art;.}.}.if.($quote).{.$escapedA
10cfe0 72 67 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 rgument.=.'"'.$escapedArgument.'
10d000 22 27 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 "';.}..return.$escapedArgument;.
10d020 7d 0a 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 }..return.escapeshellarg($argume
10d040 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 nt);.}..............public.stati
10d060 63 20 66 75 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 c.function.validateInput($caller
10d080 2c 20 24 69 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 ,.$input).{.if.(null.!==.$input)
10d0a0 20 7b 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 72 65 .{.if.(is_resource($input)).{.re
10d0c0 74 75 72 6e 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 turn.$input;.}.if.(is_scalar($in
10d0e0 70 75 74 29 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 put)).{.return.(string).$input;.
10d100 7d 0a 0a 20 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 }...if.(is_object($input).&&.met
10d120 68 6f 64 5f 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 hod_exists($input,.'__toString')
10d140 29 20 7b 0a 40 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 50 61 73 73 69 6e 67 20 61 6e 20 6f ).{.@trigger_error('Passing.an.o
10d160 62 6a 65 63 74 20 61 73 20 61 6e 20 69 6e 70 75 74 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 bject.as.an.input.is.deprecated.
10d180 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 35 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 72 65 since.version.2.5.and.will.be.re
10d1a0 6d 6f 76 65 64 20 69 6e 20 33 2e 30 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 moved.in.3.0.',.E_USER_DEPRECATE
10d1c0 44 29 3b 0a 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 D);..return.(string).$input;.}..
10d1e0 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 69 throw.new.InvalidArgumentExcepti
10d200 6f 6e 28 73 70 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 on(sprintf('%s.only.accepts.stri
10d220 6e 67 73 20 6f 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 ngs.or.stream.resources.',.$call
10d240 65 72 29 29 3b 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 er));.}..return.$input;.}..priva
10d260 74 65 20 73 74 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 te.static.function.isSurroundedB
10d280 79 28 24 61 72 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 y($arg,.$char).{.return.2.<.strl
10d2a0 65 6e 28 24 61 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 en($arg).&&.$char.===.$arg[0].&&
10d2c0 20 24 63 68 61 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 .$char.===.$arg[strlen($arg).-.1
10d2e0 5d 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 31 20 4a 6f 72 64 69 20 ];.}.}.Copyright.(c).2011.Jordi.
10d300 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 Boggiano..Permission.is.hereby.g
10d320 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 ranted,.free.of.charge,.to.any.p
10d340 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 erson.obtaining.a.copy.of.this.s
10d360 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 oftware.and.associated.documenta
10d380 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 tion.files.(the."Software"),.to.
10d3a0 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 deal.in.the.Software.without.res
10d3c0 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 triction,.including.without.limi
10d3e0 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 tation.the.rights.to.use,.copy,.
10d400 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 modify,.merge,.publish,.distribu
10d420 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 te,.sublicense,.and/or.sell.copi
10d440 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 es.of.the.Software,.and.to.permi
10d460 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 t.persons.to.whom.the.Software.i
10d480 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f s.furnished.to.do.so,.subject.to
10d4a0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 .the.following.conditions:..The.
10d4c0 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 above.copyright.notice.and.this.
10d4e0 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 permission.notice.shall.be.inclu
10d500 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c ded.in.all.copies.or.substantial
10d520 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 .portions.of.the.Software...THE.
10d540 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 SOFTWARE.IS.PROVIDED."AS.IS",.WI
10d560 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 THOUT.WARRANTY.OF.ANY.KIND,.EXPR
10d580 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f ESS.OR.IMPLIED,.INCLUDING.BUT.NO
10d5a0 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d T.LIMITED.TO.THE.WARRANTIES.OF.M
10d5c0 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 ERCHANTABILITY,.FITNESS.FOR.A.PA
10d5e0 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 RTICULAR.PURPOSE.AND.NONINFRINGE
10d600 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 MENT..IN.NO.EVENT.SHALL.THE.AUTH
10d620 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 ORS.OR.COPYRIGHT.HOLDERS.BE.LIAB
10d640 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 LE.FOR.ANY.CLAIM,.DAMAGES.OR.OTH
10d660 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 ER.LIABILITY,.WHETHER.IN.AN.ACTI
10d680 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 ON.OF.CONTRACT,.TORT.OR.OTHERWIS
10d6a0 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f E,.ARISING.FROM,.OUT.OF.OR.IN.CO
10d6c0 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 NNECTION.WITH.THE.SOFTWARE.OR.TH
10d6e0 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 E.USE.OR.OTHER.DEALINGS.IN.THE.S
10d700 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 73 70 61 OFTWARE..<?php...........namespa
10d720 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 44 75 70 6c 69 63 61 ce.Seld\JsonLint;..class.Duplica
10d740 74 65 4b 65 79 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 50 61 72 73 69 6e 67 45 78 teKeyException.extends.ParsingEx
10d760 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 6f 6e 73 ception.{.public.function.__cons
10d780 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 6b 65 79 2c 20 61 72 72 61 79 20 24 64 65 74 truct($message,.$key,.array.$det
10d7a0 61 69 6c 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 65 74 61 69 6c 73 5b 27 6b 65 79 27 ails.=.array()).{.$details['key'
10d7c0 5d 20 3d 20 24 6b 65 79 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d ].=.$key;.parent::__construct($m
10d7e0 65 73 73 61 67 65 2c 20 24 64 65 74 61 69 6c 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e essage,.$details);.}..public.fun
10d800 63 74 69 6f 6e 20 67 65 74 4b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 ction.getKey().{.return.$this->d
10d820 65 74 61 69 6c 73 5b 27 6b 65 79 27 5d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a etails['key'];.}.}.<?php........
10d840 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.
10d860 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
10d880 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
10d8a0 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
10d8c0 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.
10d8e0 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.$
10d900 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.$
10d920 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
10d940 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'.=
10d960 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'
10d980 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
10d9a0 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,
10d9c0 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
10d9e0 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'.=
10da00 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
10da20 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
10da40 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,.'
10da60 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
10da80 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,
10daa0 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
10dac0 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'.=
10dae0 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'.=>.
10db00 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
10db20 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",
10db40 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.
10db60 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.=>.
10db80 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.
10dba0 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
10dbc0 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
10dbe0 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
10dc00 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
10dc20 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
10dc40 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(
10dc60 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,.
10dc80 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),.
10dca0 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
10dcc0 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
10dce0 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)
10dd00 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
10dd20 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
10dd40 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
10dd60 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.=
10dd80 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
10dda0 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.
10ddc0 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)
10dde0 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.=
10de00 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(
10de20 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),
10de40 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
10de60 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
10de80 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
10dea0 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
10dec0 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),
10dee0 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
10df00 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
10df20 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,
10df40 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
10df60 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
10df80 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
10dfa0 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)),.
10dfc0 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.=>.
10dfe0 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),.
10e000 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.=>
10e020 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
10e040 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
10e060 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.
10e080 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),
10e0a0 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.=>
10e0c0 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
10e0e0 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
10e100 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.
10e120 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),
10e140 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
10e160 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
10e180 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
10e1a0 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.=
10e1c0 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
10e1e0 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.),
10e200 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)
10e220 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.=>
10e240 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.
10e260 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
10e280 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
10e2a0 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,
10e2c0 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
10e2e0 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
10e300 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
10e320 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.
10e340 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
10e360 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
10e380 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
10e3a0 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(
10e3c0 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)
10e3e0 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
10e400 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
10e420 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
10e440 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
10e460 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
10e480 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,
10e4a0 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
10e4c0 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.=>
10e4e0 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(
10e500 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.=>.
10e520 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.=
10e540 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
10e560 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.=
10e580 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
10e5a0 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
10e5c0 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
10e5e0 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
10e600 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
10e620 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.=>
10e640 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
10e660 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)
10e680 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
10e6a0 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
10e6c0 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
10e6e0 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,
10e700 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),.
10e720 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.=>
10e740 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))
10e760 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.=.
10e780 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).);.....
10e7a0 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).{.
10e7c0 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
10e7e0 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
10e800 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
10e820 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
10e840 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
10e860 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
10e880 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
10e8a0 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();..
10e8c0 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
10e8e0 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
10e900 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.
10e920 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
10e940 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->
10e960 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[].=
10e980 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
10e9a0 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;
10e9c0 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.=
10e9e0 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
10ea00 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.
10ea20 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
10ea40 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
10ea60 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
10ea80 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
10eaa0 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
10eac0 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]
10eae0 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).
10eb00 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
10eb20 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
10eb40 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
10eb60 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.(!
10eb80 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.(!$
10eba0 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
10ebc0 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
10ebe0 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
10ec00 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.>.
10ec20 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->
10ec40 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
10ec60 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
10ec80 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
10eca0 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
10ecc0 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
10ece0 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
10ed00 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)).{
10ed20 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
10ed40 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
10ed60 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
10ed80 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])}',
10eda0 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(
10edc0 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.
10ede0 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
10ee00 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
10ee20 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('{"(?:[^"]+|\\\\")
10ee40 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
10ee60 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
10ee80 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
10eea0 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
10eec0 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
10eee0 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
10ef00 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)..."
10ef20 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
10ef40 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
10ef60 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
10ef80 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)
10efa0 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
10efc0 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('
10efe0 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.(','.===.
10f000 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
10f020 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..=.".-
10f040 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
10f060 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
10f080 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
10f0a0 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
10f0c0 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])
10f0e0 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].:.
10f100 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-
10f120 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
10f140 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
10f160 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
10f180 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
10f1a0 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
10f1c0 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
10f1e0 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
10f200 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
10f220 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->
10f240 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->
10f260 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.
10f280 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
10f2a0 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.
10f2c0 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
10f2e0 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
10f300 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);.
10f320 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
10f340 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
10f360 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;
10f380 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($
10f3a0 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
10f3c0 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]).
10f3e0 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].
10f400 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;...}...
10f420 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
10f440 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
10f460 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
10f480 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:.
10f4a0 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
10f4c0 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
10f4e0 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
10f500 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
10f520 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
10f540 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[]
10f560 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;
10f580 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
10f5a0 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
10f5c0 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
10f5e0 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;.$
10f600 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
10f620 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
10f640 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
10f660 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
10f680 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.=.$
10f6a0 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
10f6c0 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
10f6e0 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]
10f700 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(...'
10f720 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
10f740 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)]
10f760 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'.=>.$
10f780 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
10f7a0 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
10f7c0 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
10f7e0 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_
10f800 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
10f820 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).-.
10f840 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
10f860 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,
10f880 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],
10f8a0 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);.
10f8c0 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).{
10f8e0 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
10f900 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
10f920 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
10f940 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
10f960 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[].=.$
10f980 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-
10f9a0 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-
10f9c0 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($
10f9e0 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[]
10fa00 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:...
10fa20 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;.}
10fa40 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(
10fa60 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
10fa80 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);.}.......
10faa0 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(
10fac0 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
10fae0 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
10fb00 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;
10fb20 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
10fb40 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('{(
10fb60 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
10fb80 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
10fba0 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
10fbc0 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.
10fbe0 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').!==.
10fc00 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').!=
10fc20 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
10fc40 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
10fc60 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,.'.').===.
10fc80 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
10fca0 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
10fcc0 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.
10fce0 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;.
10fd00 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
10fd20 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
10fd40 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
10fd60 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
10fd80 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(
10fda0 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.
10fdc0 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
10fde0 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
10fe00 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
10fe20 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
10fe40 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.=.
10fe60 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
10fe80 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
10fea0 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)
10fec0 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
10fee0 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[$
10ff00 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.
10ff20 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->$
10ff40 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
10ff60 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.
10ff80 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
10ffa0 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
10ffc0 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-
10ffe0 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
110000 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
110020 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
110040 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"
110060 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
110080 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
1100a0 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];
1100c0 0a 74 68 72 6f 77 20 6e 65 77 20 44 75 70 6c 69 63 61 74 65 4b 65 79 45 78 63 65 70 74 69 6f 6e .throw.new.DuplicateKeyException
1100e0 28 24 65 72 72 53 74 72 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 2c 20 61 72 72 61 ($errStr,.$tokens[$len][0],.arra
110100 79 28 27 6c 69 6e 65 27 20 3d 3e 20 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 29 3b 0a 7d 20 65 6c 73 y('line'.=>.$yylineno+1));.}.els
110120 65 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 41 4c 4c 4f 57 eif.(($this->flags.&.self::ALLOW
110140 5f 44 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e _DUPLICATE_KEYS).&&.isset($token
110160 73 5b 24 6c 65 6e 2d 32 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 43 6f s[$len-2][$key])).{.$duplicateCo
110180 75 6e 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 4b 65 79 20 3d 20 24 6b unt.=.1;.do.{.$duplicateKey.=.$k
1101a0 65 79 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 2b 2b 3b 0a 7d 20 ey...'.'...$duplicateCount++;.}.
1101c0 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 24 64 75 while.(isset($tokens[$len-2][$du
1101e0 70 6c 69 63 61 74 65 4b 65 79 5d 29 29 3b 0a 24 6b 65 79 20 3d 20 24 64 75 70 6c 69 63 61 74 65 plicateKey]));.$key.=.$duplicate
110200 4b 65 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 24 6b 65 79 5d 20 3d 20 24 Key;.}.$tokens[$len-2][$key].=.$
110220 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c tokens[$len][1];.}.else.{.$yyval
110240 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 24 6b 65 79 20 ->token.=.$tokens[$len-2];.$key.
110260 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d =.$tokens[$len][0].===.''.?.'_em
110280 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 69 66 20 28 28 24 pty_'.:.$tokens[$len][0];.if.(($
1102a0 74 68 69 73 2d 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 this->flags.&.self::DETECT_KEY_C
1102c0 4f 4e 46 4c 49 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 ONFLICTS).&&.isset($tokens[$len-
1102e0 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 2]->{$key})).{.$errStr.=.'Parse.
110300 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 error.on.line.'...($yylineno+1).
110320 2e 20 22 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 ..":\n";.$errStr..=.$this->lexer
110340 2d 3e 73 68 6f 77 50 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 ->showPosition()..."\n";.$errStr
110360 20 2e 3d 20 22 44 75 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 ..=."Duplicate.key:.".$tokens[$l
110380 65 6e 5d 5b 30 5d 3b 0a 74 68 72 6f 77 20 6e 65 77 20 44 75 70 6c 69 63 61 74 65 4b 65 79 45 78 en][0];.throw.new.DuplicateKeyEx
1103a0 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 ception($errStr,.$tokens[$len][0
1103c0 5d 2c 20 61 72 72 61 79 28 27 6c 69 6e 65 27 20 3d 3e 20 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 29 ],.array('line'.=>.$yylineno+1))
1103e0 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 73 65 6c 66 ;.}.elseif.(($this->flags.&.self
110400 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 73 73 65 74 ::ALLOW_DUPLICATE_KEYS).&&.isset
110420 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 64 75 ($tokens[$len-2]->{$key})).{.$du
110440 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 61 74 plicateCount.=.1;.do.{.$duplicat
110460 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 43 6f eKey.=.$key...'.'...$duplicateCo
110480 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 24 6c unt++;.}.while.(isset($tokens[$l
1104a0 65 6e 2d 32 5d 2d 3e 24 64 75 70 6c 69 63 61 74 65 4b 65 79 29 29 3b 0a 24 6b 65 79 20 3d 20 24 en-2]->$duplicateKey));.$key.=.$
1104c0 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 5d 2d duplicateKey;.}.$tokens[$len-2]-
1104e0 3e 24 6b 65 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 72 65 61 >$key.=.$tokens[$len][1];.}.brea
110500 6b 3b 0a 63 61 73 65 20 31 38 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 k;.case.18:.$yyval->token.=.arra
110520 79 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b y();.break;.case.19:.$yyval->tok
110540 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 61 6b 3b 0a 63 61 73 en.=.$tokens[$len-1];.break;.cas
110560 65 20 32 30 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b e.20:.$yyval->token.=.array($tok
110580 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 74 6f 6b ens[$len]);.break;.case.21:.$tok
1105a0 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 3b 0a 24 ens[$len-2][].=.$tokens[$len];.$
1105c0 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a yyval->token.=.$tokens[$len-2];.
1105e0 62 72 65 61 6b 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 break;.}..return.new.Undefined()
110600 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 49 6e 74 65 ;.}..private.function.stringInte
110620 72 70 6f 6c 61 74 69 6f 6e 28 24 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 74 rpolation($match).{.switch.($mat
110640 63 68 5b 30 5d 29 20 7b 0a 63 61 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 27 5c 5c ch[0]).{.case.'\\\\':.return.'\\
110660 27 3b 0a 63 61 73 65 20 27 5c 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 ';.case.'\"':.return.'"';.case.'
110680 5c 62 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 3a 0a 72 \b':.return.chr(8);.case.'\f':.r
1106a0 65 74 75 72 6e 20 63 68 72 28 31 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 75 72 6e eturn.chr(12);.case.'\n':.return
1106c0 20 22 5c 6e 22 3b 0a 63 61 73 65 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 3b 0a 63 ."\n";.case.'\r':.return."\r";.c
1106e0 61 73 65 20 27 5c 74 27 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 5c 2f 27 ase.'\t':.return."\t";.case.'\/'
110700 3a 0a 72 65 74 75 72 6e 20 22 2f 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 68 74 :.return."/";.default:.return.ht
110720 6d 6c 5f 65 6e 74 69 74 79 5f 64 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 73 75 62 ml_entity_decode('&#x'.ltrim(sub
110740 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 30 2c 20 str($match[0],.2),.'0').';',.0,.
110760 27 55 54 46 2d 38 27 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 'UTF-8');.}.}..private.function.
110780 70 6f 70 53 74 61 63 6b 28 24 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 popStack($n).{.$this->stack.=.ar
1107a0 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 28 32 20 ray_slice($this->stack,.0,.-.(2.
1107c0 2a 20 24 6e 29 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c *.$n));.$this->vstack.=.array_sl
1107e0 69 63 65 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 24 74 68 ice($this->vstack,.0,.-.$n);.$th
110800 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e is->lstack.=.array_slice($this->
110820 6c 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e lstack,.0,.-.$n);.}..private.fun
110840 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6c 65 ction.lex().{.$token.=.$this->le
110860 78 65 72 2d 3e 6c 65 78 28 29 20 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d xer->lex().?:.1;.....if.(!is_num
110880 65 72 69 63 28 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 74 28 24 eric($token)).{.$token.=.isset($
1108a0 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e this->symbols[$token]).?.$this->
1108c0 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 symbols[$token].:.$token;.}..ret
1108e0 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 urn.$token;.}..private.function.
110900 66 61 69 6c 4f 6e 42 4f 4d 28 24 69 6e 70 75 74 29 0a 7b 0a 0a 20 24 62 6f 6d 20 3d 20 22 5c 78 failOnBOM($input).{...$bom.=."\x
110920 45 46 5c 78 42 42 5c 78 42 46 22 3b 0a 0a 69 66 20 28 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c EF\xBB\xBF";..if.(substr($input,
110940 20 30 2c 20 33 29 20 3d 3d 3d 20 24 62 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 .0,.3).===.$bom).{.$this->parseE
110960 72 72 6f 72 28 22 42 4f 4d 20 64 65 74 65 63 74 65 64 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f rror("BOM.detected,.make.sure.yo
110980 75 72 20 69 6e 70 75 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 20 55 6e 69 63 ur.input.does.not.include.a.Unic
1109a0 6f 64 65 20 42 79 74 65 2d 4f 72 64 65 72 2d 4d 61 72 6b 22 2c 20 61 72 72 61 79 28 29 29 3b 0a ode.Byte-Order-Mark",.array());.
1109c0 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 }.}.}.<?php...........namespace.
1109e0 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 Seld\JsonLint;.......class.Lexer
110a00 0a 7b 0a 70 72 69 76 61 74 65 20 24 45 4f 46 20 3d 20 31 3b 0a 70 72 69 76 61 74 65 20 24 72 75 .{.private.$EOF.=.1;.private.$ru
110a20 6c 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e les.=.array(.0.=>.'/^\s+/',.1.=>
110a40 20 27 2f 5e 2d 3f 28 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 .'/^-?([0-9]|[1-9][0-9]+)(\.[0-9
110a60 5d 2b 29 3f 28 5b 65 45 5d 5b 2b 2d 5d 3f 5b 30 2d 39 5d 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e ]+)?([eE][+-]?[0-9]+)?\b/',.2.=>
110a80 20 27 7b 5e 22 28 3f 3a 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b .'{^"(?:\\\\["bfnrt/\\\\]|\\\\u[
110aa0 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 a-fA-F0-9]{4}|[^\0-\x09\x0a-\x1f
110ac0 5c 5c 5c 5c 22 5d 2b 29 2a 22 7d 27 2c 0a 33 20 3d 3e 20 27 2f 5e 5c 7b 2f 27 2c 0a 34 20 3d 3e \\\\"]+)*"}',.3.=>.'/^\{/',.4.=>
110ae0 20 27 2f 5e 5c 7d 2f 27 2c 0a 35 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 2c 0a 36 20 3d 3e 20 27 2f 5e .'/^\}/',.5.=>.'/^\[/',.6.=>.'/^
110b00 5c 5d 2f 27 2c 0a 37 20 3d 3e 20 27 2f 5e 2c 2f 27 2c 0a 38 20 3d 3e 20 27 2f 5e 3a 2f 27 2c 0a \]/',.7.=>.'/^,/',.8.=>.'/^:/',.
110b20 39 20 3d 3e 20 27 2f 5e 74 72 75 65 5c 62 2f 27 2c 0a 31 30 20 3d 3e 20 27 2f 5e 66 61 6c 73 65 9.=>.'/^true\b/',.10.=>.'/^false
110b40 5c 62 2f 27 2c 0a 31 31 20 3d 3e 20 27 2f 5e 6e 75 6c 6c 5c 62 2f 27 2c 0a 31 32 20 3d 3e 20 27 \b/',.11.=>.'/^null\b/',.12.=>.'
110b60 2f 5e 24 2f 27 2c 0a 31 33 20 3d 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 /^$/',.13.=>.'/^./',.);..private
110b80 20 24 63 6f 6e 64 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 22 49 4e 49 54 49 41 4c 22 20 .$conditions.=.array(."INITIAL".
110ba0 3d 3e 20 61 72 72 61 79 28 0a 22 72 75 6c 65 73 22 20 3d 3e 20 61 72 72 61 79 28 30 2c 31 2c 32 =>.array(."rules".=>.array(0,1,2
110bc0 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 2c 31 30 2c 31 31 2c 31 32 2c 31 33 29 2c 0a 22 69 6e ,3,4,5,6,7,8,9,10,11,12,13),."in
110be0 63 6c 75 73 69 76 65 22 20 3d 3e 20 74 72 75 65 2c 0a 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 clusive".=>.true,.),.);..private
110c00 20 24 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 .$conditionStack;.private.$input
110c20 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 72 65 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 6e 65 3b 0a ;.private.$more;.private.$done;.
110c40 70 72 69 76 61 74 65 20 24 6d 61 74 63 68 65 64 3b 0a 0a 70 75 62 6c 69 63 20 24 6d 61 74 63 68 private.$matched;..public.$match
110c60 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 69 6e 65 6e 6f 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 65 ;.public.$yylineno;.public.$yyle
110c80 6e 67 3b 0a 70 75 62 6c 69 63 20 24 79 79 74 65 78 74 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 6c ng;.public.$yytext;.public.$yyll
110ca0 6f 63 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 72 20 oc;..public.function.lex().{.$r.
110cc0 3d 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 =.$this->next();.if.(!$r.instanc
110ce0 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 72 eof.Undefined).{.return.$r;.}..r
110d00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.$this->lex();.}..public.fu
110d20 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d nction.setInput($input).{.$this-
110d40 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 >input.=.$input;.$this->more.=.f
110d60 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 alse;.$this->done.=.false;.$this
110d80 2d 3e 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 30 3b 0a ->yylineno.=.$this->yyleng.=.0;.
110da0 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 3d $this->yytext.=.$this->matched.=
110dc0 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 .$this->match.=.'';.$this->condi
110de0 74 69 6f 6e 53 74 61 63 6b 20 3d 20 61 72 72 61 79 28 27 49 4e 49 54 49 41 4c 27 29 3b 0a 24 74 tionStack.=.array('INITIAL');.$t
110e00 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 27 66 69 72 73 74 5f 6c 69 6e 65 27 his->yylloc.=.array('first_line'
110e20 20 3d 3e 20 31 2c 20 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 2c 20 27 6c 61 73 .=>.1,.'first_column'.=>.0,.'las
110e40 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 t_line'.=>.1,.'last_column'.=>.0
110e60 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 63 );..return.$this;.}..public.func
110e80 74 69 6f 6e 20 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 0a 7b 0a 24 70 72 65 20 3d 20 73 74 72 tion.showPosition().{.$pre.=.str
110ea0 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 74 50 61 73 _replace("\n",.'',.$this->getPas
110ec0 74 49 6e 70 75 74 28 29 29 3b 0a 24 63 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 tInput());.$c.=.str_repeat('-',.
110ee0 6d 61 78 28 30 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 29 20 2d 20 31 29 29 3b 20 0a 0a 72 65 74 max(0,.strlen($pre).-.1));...ret
110f00 75 72 6e 20 24 70 72 65 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c urn.$pre...str_replace("\n",.'',
110f20 20 24 74 68 69 73 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 29 20 2e 20 22 5c .$this->getUpcomingInput())..."\
110f40 6e 22 20 2e 20 24 63 20 2e 20 22 5e 22 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n"...$c..."^";.}..public.functio
110f60 6e 20 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 73 74 n.getPastInput().{.$past.=.subst
110f80 72 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 r($this->matched,.0,.strlen($thi
110fa0 73 2d 3e 6d 61 74 63 68 65 64 29 20 2d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 s->matched).-.strlen($this->matc
110fc0 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 73 74 72 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 30 h));..return.(strlen($past).>.20
110fe0 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 20 2e 20 73 75 62 73 74 72 28 24 70 61 73 74 2c 20 2d .?.'...'.:.'')...substr($past,.-
111000 32 30 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 70 63 6f 6d 20);.}..public.function.getUpcom
111020 69 6e 67 49 6e 70 75 74 28 29 0a 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 ingInput().{.$next.=.$this->matc
111040 68 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 20 7b 0a 24 6e 65 h;.if.(strlen($next).<.20).{.$ne
111060 78 74 20 2e 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 2c 20 32 30 xt..=.substr($this->input,.0,.20
111080 20 2d 20 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 .-.strlen($next));.}..return.sub
1110a0 73 74 72 28 24 6e 65 78 74 2c 20 30 2c 20 32 30 29 20 2e 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 str($next,.0,.20)...(strlen($nex
1110c0 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 t).>.20.?.'...'.:.'');.}..protec
1110e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 ted.function.parseError($str,.$h
111100 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 ash).{.throw.new.\Exception($str
111120 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a );.}..private.function.next().{.
111140 69 66 20 28 24 74 68 69 73 2d 3e 64 6f 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d if.($this->done).{.return.$this-
111160 3e 45 4f 46 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 24 74 68 >EOF;.}.if.(!$this->input).{.$th
111180 69 73 2d 3e 64 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c is->done.=.true;.}..$token.=.nul
1111a0 6c 3b 0a 24 6d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 l;.$match.=.null;.$col.=.null;.$
1111c0 6c 69 6e 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 6f 72 65 29 lines.=.null;..if.(!$this->more)
1111e0 20 7b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6d 61 .{.$this->yytext.=.'';.$this->ma
111200 74 63 68 20 3d 20 27 27 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 tch.=.'';.}..$rules.=.$this->get
111220 43 75 72 72 65 6e 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 6e CurrentRules();.$rulesLen.=.coun
111240 74 28 24 72 75 6c 65 73 29 3b 0a 0a 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 6c t($rules);..for.($i=0;.$i.<.$rul
111260 65 73 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 74 esLen;.$i++).{.if.(preg_match($t
111280 68 69 73 2d 3e 72 75 6c 65 73 5b 24 72 75 6c 65 73 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 69 his->rules[$rules[$i]],.$this->i
1112a0 6e 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 nput,.$match)).{.preg_match_all(
1112c0 27 2f 5c 6e 2e 2a 2f 27 2c 20 24 6d 61 74 63 68 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a 24 6c '/\n.*/',.$match[0],.$lines);.$l
1112e0 69 6e 65 73 20 3d 20 24 6c 69 6e 65 73 5b 30 5d 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 7b 0a ines.=.$lines[0];.if.($lines).{.
111300 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 $this->yylineno.+=.count($lines)
111320 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 69 72 ;.}..$this->yylloc.=.array(.'fir
111340 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f st_line'.=>.$this->yylloc['last_
111360 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 line'],.'last_line'.=>.$this->yy
111380 6c 69 6e 65 6e 6f 2b 31 2c 0a 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 lineno+1,.'first_column'.=>.$thi
1113a0 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f s->yylloc['last_column'],.'last_
1113c0 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 6c 69 6e 65 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 column'.=>.$lines.?.strlen($line
1113e0 73 5b 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 68 69 s[count($lines).-.1]).-.1.:.$thi
111400 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 6c 65 s->yylloc['last_column'].+.strle
111420 6e 28 24 6d 61 74 63 68 5b 30 5d 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2e n($match[0]),.);.$this->yytext..
111440 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 6d 61 =.$match[0];.$this->match..=.$ma
111460 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 73 74 72 6c 65 6e 28 24 tch[0];.$this->yyleng.=.strlen($
111480 74 68 69 73 2d 3e 79 79 74 65 78 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c this->yytext);.$this->more.=.fal
1114a0 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d se;.$this->input.=.substr($this-
1114c0 3e 69 6e 70 75 74 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 29 3b 0a 24 74 68 69 >input,.strlen($match[0]));.$thi
1114e0 73 2d 3e 6d 61 74 63 68 65 64 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 s->matched..=.$match[0];.$token.
111500 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 72 75 6c 65 73 5b 24 69 =.$this->performAction($rules[$i
111520 5d 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 ],.$this->conditionStack[count($
111540 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 29 3b 0a 69 66 20 28 24 this->conditionStack)-1]);.if.($
111560 74 6f 6b 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 token).{.return.$token;.}..retur
111580 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 n.new.Undefined();.}.}..if.($thi
1115a0 73 2d 3e 69 6e 70 75 74 20 3d 3d 3d 20 22 22 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d s->input.===."").{.return.$this-
1115c0 3e 45 4f 46 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 0a 27 4c 65 78 >EOF;.}..$this->parseError(.'Lex
1115e0 69 63 61 6c 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 74 68 69 73 2d 3e 79 ical.error.on.line.'...($this->y
111600 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 2e 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 20 74 65 78 ylineno+1)..."..Unrecognized.tex
111620 74 2e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 t.\n"...$this->showPosition(),.a
111640 72 72 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 22 22 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e rray(.'text'.=>."",.'token'.=>.n
111660 75 6c 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a ull,.'line'.=>.$this->yylineno,.
111680 29 0a 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 ).);.}..private.function.getCurr
1116a0 65 6e 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 63 6f 6e 64 69 entRules().{.return.$this->condi
1116c0 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e tions[$this->conditionStack[coun
1116e0 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 5d 5b 27 72 75 t($this->conditionStack)-1]]['ru
111700 6c 65 73 27 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f les'];.}..private.function.perfo
111720 72 6d 41 63 74 69 6f 6e 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f rmAction($avoiding_name_collisio
111740 6e 73 2c 20 24 59 59 5f 53 54 41 52 54 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 61 76 6f 69 64 69 ns,.$YY_START).{.switch.($avoidi
111760 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f 6e 73 29 20 7b 0a 63 61 73 65 20 30 3a 0a 62 72 ng_name_collisions).{.case.0:.br
111780 65 61 6b 3b 0a 63 61 73 65 20 31 3a 0a 72 65 74 75 72 6e 20 36 3b 0a 62 72 65 61 6b 3b 0a 63 61 eak;.case.1:.return.6;.break;.ca
1117a0 73 65 20 32 3a 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 se.2:.$this->yytext.=.substr($th
1117c0 69 73 2d 3e 79 79 74 65 78 74 2c 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b is->yytext,.1,.$this->yyleng-2);
1117e0 0a 0a 72 65 74 75 72 6e 20 34 3b 0a 63 61 73 65 20 33 3a 0a 72 65 74 75 72 6e 20 31 37 3b 0a 63 ..return.4;.case.3:.return.17;.c
111800 61 73 65 20 34 3a 0a 72 65 74 75 72 6e 20 31 38 3b 0a 63 61 73 65 20 35 3a 0a 72 65 74 75 72 6e ase.4:.return.18;.case.5:.return
111820 20 32 33 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 32 34 3b 0a 63 61 73 65 20 37 3a 0a .23;.case.6:.return.24;.case.7:.
111840 72 65 74 75 72 6e 20 32 32 3b 0a 63 61 73 65 20 38 3a 0a 72 65 74 75 72 6e 20 32 31 3b 0a 63 61 return.22;.case.8:.return.21;.ca
111860 73 65 20 39 3a 0a 72 65 74 75 72 6e 20 31 30 3b 0a 63 61 73 65 20 31 30 3a 0a 72 65 74 75 72 6e se.9:.return.10;.case.10:.return
111880 20 31 31 3b 0a 63 61 73 65 20 31 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0a 63 61 73 65 20 31 32 3a .11;.case.11:.return.8;.case.12:
1118a0 0a 72 65 74 75 72 6e 20 31 34 3b 0a 63 61 73 65 20 31 33 3a 0a 72 65 74 75 72 6e 20 27 49 4e 56 .return.14;.case.13:.return.'INV
1118c0 41 4c 49 44 27 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ALID';.}.}.}.<?php...........nam
1118e0 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 50 61 72 espace.Seld\JsonLint;..class.Par
111900 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e singException.extends.\Exception
111920 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 74 61 69 6c 73 3b 0a 0a 70 75 62 6c 69 63 20 66 .{.protected.$details;..public.f
111940 75 6e 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 2c 20 24 64 unction.__construct($message,.$d
111960 65 74 61 69 6c 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 74 61 69 etails.=.array()).{.$this->detai
111980 6c 73 20 3d 20 24 64 65 74 61 69 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 ls.=.$details;.parent::__constru
1119a0 63 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ct($message);.}..public.function
1119c0 20 67 65 74 44 65 74 61 69 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 .getDetails().{.return.$this->de
1119e0 74 61 69 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 tails;.}.}.<?php...........names
111a00 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 pace.Seld\JsonLint;..class.Undef
111a20 69 6e 65 64 0a 7b 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 35 20 4a 6f 72 64 ined.{.}.Copyright.(c).2015.Jord
111a40 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 i.Boggiano..Permission.is.hereby
111a60 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 .granted,.free.of.charge,.to.any
111a80 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 .person.obtaining.a.copy.of.this
111aa0 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e .software.and.associated.documen
111ac0 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 tation.files.(the."Software"),.t
111ae0 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 o.deal.in.the.Software.without.r
111b00 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 estriction,.including.without.li
111b20 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 mitation.the.rights.to.use,.copy
111b40 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 ,.modify,.merge,.publish,.distri
111b60 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f bute,.sublicense,.and/or.sell.co
111b80 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 pies.of.the.Software,.and.to.per
111ba0 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 mit.persons.to.whom.the.Software
111bc0 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 .is.furnished.to.do.so,.subject.
111be0 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 to.the.following.conditions:..Th
111c00 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 e.above.copyright.notice.and.thi
111c20 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 s.permission.notice.shall.be.inc
111c40 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 luded.in.all.copies.or.substanti
111c60 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 al.portions.of.the.Software...TH
111c80 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 E.SOFTWARE.IS.PROVIDED."AS.IS",.
111ca0 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 WITHOUT.WARRANTY.OF.ANY.KIND,.EX
111cc0 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 PRESS.OR.IMPLIED,.INCLUDING.BUT.
111ce0 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 NOT.LIMITED.TO.THE.WARRANTIES.OF
111d00 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 .MERCHANTABILITY,.FITNESS.FOR.A.
111d20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e PARTICULAR.PURPOSE.AND.NONINFRIN
111d40 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 GEMENT..IN.NO.EVENT.SHALL.THE.AU
111d60 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 THORS.OR.COPYRIGHT.HOLDERS.BE.LI
111d80 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f ABLE.FOR.ANY.CLAIM,.DAMAGES.OR.O
111da0 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 THER.LIABILITY,.WHETHER.IN.AN.AC
111dc0 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 TION.OF.CONTRACT,.TORT.OR.OTHERW
111de0 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 ISE,.ARISING.FROM,.OUT.OF.OR.IN.
111e00 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 CONNECTION.WITH.THE.SOFTWARE.OR.
111e20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 THE.USE.OR.OTHER.DEALINGS.IN.THE
111e40 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f .SOFTWARE..<?php..require.__DIR_
111e60 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 3b 0a 0a 65 63 _.'/../vendor/autoload.php';..ec
111e80 68 6f 20 27 53 61 79 20 68 65 6c 6c 6f 20 28 76 69 73 69 62 6c 65 29 3a 20 27 3b 0a 0a 24 61 6e ho.'Say.hello.(visible):.';..$an
111ea0 73 77 65 72 20 3d 20 53 65 6c 64 5c 43 6c 69 50 72 6f 6d 70 74 5c 43 6c 69 50 72 6f 6d 70 74 3a swer.=.Seld\CliPrompt\CliPrompt:
111ec0 3a 70 72 6f 6d 70 74 28 29 3b 0a 0a 65 63 68 6f 20 27 59 6f 75 20 61 6e 73 77 65 72 65 64 3a 20 :prompt();..echo.'You.answered:.
111ee0 27 2e 24 61 6e 73 77 65 72 20 2e 20 50 48 50 5f 45 4f 4c 3b 0a 0a 65 63 68 6f 20 27 53 61 79 20 '.$answer...PHP_EOL;..echo.'Say.
111f00 68 65 6c 6c 6f 20 28 68 69 64 64 65 6e 29 3a 20 27 3b 0a 0a 24 61 6e 73 77 65 72 20 3d 20 53 65 hello.(hidden):.';..$answer.=.Se
111f20 6c 64 5c 43 6c 69 50 72 6f 6d 70 74 5c 43 6c 69 50 72 6f 6d 70 74 3a 3a 68 69 64 64 65 6e 50 72 ld\CliPrompt\CliPrompt::hiddenPr
111f40 6f 6d 70 74 28 29 3b 0a 0a 65 63 68 6f 20 27 59 6f 75 20 61 6e 73 77 65 72 65 64 3a 20 27 2e 24 ompt();..echo.'You.answered:.'.$
111f60 61 6e 73 77 65 72 20 2e 20 50 48 50 5f 45 4f 4c 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a answer...PHP_EOL;.<?php.........
111f80 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 43 6c 69 50 72 6f 6d 70 74 3b 0a 0a 63 6c 61 ..namespace.Seld\CliPrompt;..cla
111fa0 73 73 20 43 6c 69 50 72 6f 6d 70 74 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 ss.CliPrompt.{......public.stati
111fc0 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6d 70 74 28 29 0a 7b 0a 24 73 74 64 69 6e 20 3d 20 66 c.function.prompt().{.$stdin.=.f
111fe0 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 73 74 64 69 6e 27 2c 20 27 72 27 29 3b 0a 24 61 6e 73 77 65 open('php://stdin',.'r');.$answe
112000 72 20 3d 20 73 65 6c 66 3a 3a 74 72 69 6d 41 6e 73 77 65 72 28 66 67 65 74 73 28 24 73 74 64 69 r.=.self::trimAnswer(fgets($stdi
112020 6e 2c 20 34 30 39 36 29 29 3b 0a 66 63 6c 6f 73 65 28 24 73 74 64 69 6e 29 3b 0a 0a 72 65 74 75 n,.4096));.fclose($stdin);..retu
112040 72 6e 20 24 61 6e 73 77 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 rn.$answer;.}...........public.s
112060 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 69 64 64 65 6e 50 72 6f 6d 70 74 28 24 61 6c 6c tatic.function.hiddenPrompt($all
112080 6f 77 46 61 6c 6c 62 61 63 6b 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 owFallback.=.false).{...if.(defi
1120a0 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
1120c0 29 20 7b 0a 0a 20 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 2e 2e 5c 5c 72 65 73 5c ).{...$exe.=.__DIR__.'\\..\\res\
1120e0 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a \hiddeninput.exe';....if.('phar:
112100 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a '.===.substr(__FILE__,.0,.5)).{.
112120 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 $tmpExe.=.sys_get_temp_dir().'/h
112140 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 20 3d 20 iddeninput.exe';......$source.=.
112160 66 6f 70 65 6e 28 24 65 78 65 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 66 6f 70 65 fopen($exe,.'r');.$target.=.fope
112180 6e 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 n($tmpExe,.'w+');.stream_copy_to
1121a0 5f 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 _stream($source,.$target);.fclos
1121c0 65 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 e($source);.fclose($target);.uns
1121e0 65 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 et($source,.$target);..$exe.=.$t
112200 6d 70 45 78 65 3b 0a 7d 0a 0a 24 61 6e 73 77 65 72 20 3d 20 73 65 6c 66 3a 3a 74 72 69 6d 41 6e mpExe;.}..$answer.=.self::trimAn
112220 73 77 65 72 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 0a 0a 20 69 66 20 28 69 swer(shell_exec($exe));....if.(i
112240 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 45 78 65 29 sset($tmpExe)).{.unlink($tmpExe)
112260 3b 0a 7d 0a 0a 0a 20 65 63 68 6f 20 50 48 50 5f 45 4f 4c 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6e ;.}....echo.PHP_EOL;..return.$an
112280 73 77 65 72 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 swer;.}..if.(file_exists('/usr/b
1122a0 69 6e 2f 65 6e 76 27 29 29 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f in/env')).{...$test.=."/usr/bin/
1122c0 65 6e 76 20 25 73 20 2d 63 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c env.%s.-c.'echo.OK'.2>./dev/null
1122e0 22 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c ";.foreach.(array('bash',.'zsh',
112300 20 27 6b 73 68 27 2c 20 27 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b .'ksh',.'csh').as.$sh).{.if.('OK
112320 27 20 3d 3d 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 '.===.rtrim(shell_exec(sprintf($
112340 74 65 73 74 2c 20 24 73 68 29 29 29 29 20 7b 0a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 test,.$sh)))).{.$shell.=.$sh;.br
112360 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 68 65 6c 6c 29 29 20 7b 0a 24 eak;.}.}..if.(isset($shell)).{.$
112380 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 27 readCmd.=.($shell.===.'csh').?.'
1123a0 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 set.mypassword.=.$<'.:.'read.-r.
1123c0 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 mypassword';.$command.=.sprintf(
1123e0 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b "/usr/bin/env.%s.-c.'stty.-echo;
112400 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 .%s;.stty.echo;.echo.\$mypasswor
112420 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d d'",.$shell,.$readCmd);.$value.=
112440 20 73 65 6c 66 3a 3a 74 72 69 6d 41 6e 73 77 65 72 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f .self::trimAnswer(shell_exec($co
112460 6d 6d 61 6e 64 29 29 3b 0a 0a 0a 20 65 63 68 6f 20 50 48 50 5f 45 4f 4c 3b 0a 0a 72 65 74 75 72 mmand));....echo.PHP_EOL;..retur
112480 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 61 6c 6c 6f 77 46 61 6c 6c n.$value;.}.}....if.(!$allowFall
1124a0 62 61 63 6b 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 back).{.throw.new.\RuntimeExcept
1124c0 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 72 6f 6d 70 74 20 66 6f 72 20 69 6e 70 75 74 20 ion('Could.not.prompt.for.input.
1124e0 69 6e 20 61 20 73 65 63 75 72 65 20 66 61 73 68 69 6f 6e 2c 20 61 62 6f 72 74 69 6e 67 27 29 3b in.a.secure.fashion,.aborting');
112500 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 70 72 6f 6d 70 74 28 29 3b 0a 7d 0a 0a 70 72 .}..return.self::prompt();.}..pr
112520 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 72 69 6d 41 6e 73 77 65 72 ivate.static.function.trimAnswer
112540 28 24 73 74 72 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 5c ($str).{.return.preg_replace('{\
112560 72 3f 5c 6e 24 7d 44 27 2c 20 27 27 2c 20 24 73 74 72 29 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 r?\n$}D',.'',.$str);.}.}.Copyrig
112580 68 74 20 28 63 29 20 32 30 30 38 2c 20 47 72 61 64 75 61 20 4e 65 74 77 6f 72 6b 73 0a 41 75 74 ht.(c).2008,.Gradua.Networks.Aut
1125a0 68 6f 72 3a 20 42 72 75 6e 6f 20 50 72 69 65 74 6f 20 52 65 69 73 0a 41 6c 6c 20 72 69 67 68 74 hor:.Bruno.Prieto.Reis.All.right
1125c0 73 20 72 65 73 65 72 76 65 64 2e 0a 0a 0a 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 s.reserved....Redistribution.and
1125e0 20 75 73 65 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 62 69 6e 61 72 79 20 66 6f 72 6d 73 2c .use.in.source.and.binary.forms,
112600 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 61 .with.or.without.modification,.a
112620 72 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 66 re.permitted.provided.that.the.f
112640 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 3a 0a 0a 20 2a ollowing.conditions.are.met:...*
112660 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 .Redistributions.of.source.code.
112680 6d 75 73 74 20 72 65 74 61 69 6e 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 must.retain.the.above.copyright.
1126a0 6e 6f 74 69 63 65 2c 20 74 68 69 73 0a 20 20 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f notice,.this....list.of.conditio
1126c0 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 2e ns.and.the.following.disclaimer.
1126e0 0a 0a 20 2a 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 62 69 6e 61 72 79 20 66 ...*.Redistributions.in.binary.f
112700 6f 72 6d 20 6d 75 73 74 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 orm.must.reproduce.the.above.cop
112720 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 0a 20 20 20 74 68 69 73 20 6c 69 73 74 20 6f 66 20 63 yright.notice,....this.list.of.c
112740 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 63 onditions.and.the.following.disc
112760 6c 61 69 6d 65 72 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 20 20 20 61 laimer.in.the.documentation....a
112780 6e 64 2f 6f 72 20 6f 74 68 65 72 20 6d 61 74 65 72 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 77 nd/or.other.materials.provided.w
1127a0 69 74 68 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a 0a 20 2a 20 4e 65 69 74 68 65 ith.the.distribution....*.Neithe
1127c0 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 47 72 61 64 75 61 20 4e 65 74 77 6f 72 6b r.the.name.of.the.Gradua.Network
1127e0 73 20 6e 6f 72 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 s.nor.the.names.of.its.contribut
112800 6f 72 73 0a 20 20 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 65 6e 64 6f 72 73 65 20 6f 72 ors....may.be.used.to.endorse.or
112820 20 70 72 6f 6d 6f 74 65 20 70 72 6f 64 75 63 74 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 .promote.products.derived.from.t
112840 68 69 73 20 73 6f 66 74 77 61 72 65 0a 20 20 20 77 69 74 68 6f 75 74 20 73 70 65 63 69 66 69 63 his.software....without.specific
112860 20 70 72 69 6f 72 20 77 72 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 54 48 49 53 .prior.written.permission...THIS
112880 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 42 59 20 54 48 45 20 43 4f 50 .SOFTWARE.IS.PROVIDED.BY.THE.COP
1128a0 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e 44 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 YRIGHT.HOLDERS.AND.CONTRIBUTORS.
1128c0 22 41 53 20 49 53 22 0a 41 4e 44 20 41 4e 59 20 45 58 50 52 45 53 53 20 4f 52 20 49 4d 50 4c 49 "AS.IS".AND.ANY.EXPRESS.OR.IMPLI
1128e0 45 44 20 57 41 52 52 41 4e 54 49 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f ED.WARRANTIES,.INCLUDING,.BUT.NO
112900 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 0a 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e T.LIMITED.TO,.THE.IMPLIED.WARRAN
112920 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 20 46 49 54 4e TIES.OF.MERCHANTABILITY.AND.FITN
112940 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 52 45 ESS.FOR.A.PARTICULAR.PURPOSE.ARE
112960 0a 44 49 53 43 4c 41 49 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 .DISCLAIMED..IN.NO.EVENT.SHALL.T
112980 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 20 4f 52 20 43 4f 4e 54 52 49 42 55 54 HE.COPYRIGHT.HOLDER.OR.CONTRIBUT
1129a0 4f 52 53 20 42 45 20 4c 49 41 42 4c 45 0a 46 4f 52 20 41 4e 59 20 44 49 52 45 43 54 2c 20 49 4e ORS.BE.LIABLE.FOR.ANY.DIRECT,.IN
1129c0 44 49 52 45 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 45 58 45 DIRECT,.INCIDENTAL,.SPECIAL,.EXE
1129e0 4d 50 4c 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 0a 44 41 4d 41 47 45 53 MPLARY,.OR.CONSEQUENTIAL.DAMAGES
112a00 20 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c .(INCLUDING,.BUT.NOT.LIMITED.TO,
112a20 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 45 20 47 4f 4f 44 53 .PROCUREMENT.OF.SUBSTITUTE.GOODS
112a40 20 4f 52 0a 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 2c 20 44 41 54 41 2c .OR.SERVICES;.LOSS.OF.USE,.DATA,
112a60 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e 45 53 53 20 49 4e 54 45 52 52 55 .OR.PROFITS;.OR.BUSINESS.INTERRU
112a80 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 0a 43 41 55 53 45 44 20 41 4e 44 20 4f 4e 20 41 4e 59 PTION).HOWEVER.CAUSED.AND.ON.ANY
112aa0 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e .THEORY.OF.LIABILITY,.WHETHER.IN
112ac0 20 43 4f 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c 49 54 59 2c 0a 4f 52 20 .CONTRACT,.STRICT.LIABILITY,.OR.
112ae0 54 4f 52 54 20 28 49 4e 43 4c 55 44 49 4e 47 20 4e 45 47 4c 49 47 45 4e 43 45 20 4f 52 20 4f 54 TORT.(INCLUDING.NEGLIGENCE.OR.OT
112b00 48 45 52 57 49 53 45 29 20 41 52 49 53 49 4e 47 20 49 4e 20 41 4e 59 20 57 41 59 20 4f 55 54 20 HERWISE).ARISING.IN.ANY.WAY.OUT.
112b20 4f 46 20 54 48 45 20 55 53 45 0a 4f 46 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 2c 20 45 56 45 OF.THE.USE.OF.THIS.SOFTWARE,.EVE
112b40 4e 20 49 46 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 N.IF.ADVISED.OF.THE.POSSIBILITY.
112b60 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 OF.SUCH.DAMAGE..<?php.........na
112b80 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a mespace.JsonSchema\Constraints;.
112ba0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6c 6c 65 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 6e .......class.CollectionConstrain
112bc0 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 69 63 t.extends.Constraint.{....public
112be0 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 .function.check($value,.$schema.
112c00 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)
112c20 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 69 6e 49 74 65 6d 73 .{...if.(isset($schema->minItems
112c40 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 ).&&.count($value).<.$schema->mi
112c60 6e 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c nItems).{.$this->addError($path,
112c80 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 65 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 22 20 2e ."There.must.be.a.minimum.of."..
112ca0 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 20 2e 20 22 20 69 74 65 6d 73 20 69 6e 20 .$schema->minItems...".items.in.
112cc0 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 28 24 73 63 68 the.array");.}....if.(isset($sch
112ce0 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 6c 75 65 29 20 ema->maxItems).&&.count($value).
112d00 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 73 2d 3e 61 64 >.$schema->maxItems).{.$this->ad
112d20 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 65 20 61 20 6d dError($path,."There.must.be.a.m
112d40 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 74 65 6d 73 20 aximum.of."...$schema->maxItems.
112d60 2e 20 22 20 69 74 65 6d 73 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 ..".items.in.the.array");.}....i
112d80 66 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 f.(isset($schema->uniqueItems)).
112da0 7b 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 {.$unique.=.$value;.if.(is_array
112dc0 28 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 ($value).&&.count($value)).{.$un
112de0 69 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 ique.=.array_map(function($e).{.
112e00 72 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 return.var_export($e,.true);.},.
112e20 24 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 $value);.}.if.(count(array_uniqu
112e40 65 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 e($unique)).!=.count($value)).{.
112e60 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 61 72 $this->addError($path,."There.ar
112e80 65 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 e.no.duplicates.allowed.in.the.a
112ea0 72 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 rray");.}.}....if.(isset($schema
112ec0 2d 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 ->items)).{.$this->validateItems
112ee0 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 0a ($value,.$schema,.$path,.$i);.}.
112f00 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 76 61 }..........protected.function.va
112f20 6c 69 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 lidateItems($value,.$schema.=.nu
112f40 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 ll,.$path.=.null,.$i.=.null).{.i
112f60 66 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 f.(is_object($schema->items)).{.
112f80 0a 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 ..foreach.($value.as.$k.=>.$v).{
112fa0 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 45 72 72 6f 72 73 28 .$initErrors.=.$this->getErrors(
112fc0 29 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 );....$this->checkUndefined($v,.
112fe0 24 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 $schema->items,.$path,.$k);....i
113000 66 20 28 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 20 3c 20 63 6f 75 6e 74 28 24 74 f.(count($initErrors).<.count($t
113020 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 26 26 20 28 69 73 73 65 74 28 24 73 63 68 his->getErrors()).&&.(isset($sch
113040 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 26 26 20 24 73 63 68 65 6d 61 ema->additionalItems).&&.$schema
113060 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a ->additionalItems.!==.false)).{.
113080 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 $secondErrors.=.$this->getErrors
1130a0 28 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 ();.$this->checkUndefined($v,.$s
1130c0 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 chema->additionalItems,.$path,.$
1130e0 6b 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 k);.}....if.(isset($secondErrors
113100 29 20 26 26 20 63 6f 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3c 20 63 6f 75 6e ).&&.count($secondErrors).<.coun
113120 74 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 t($this->getErrors())).{.$this->
113140 65 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 errors.=.$secondErrors;.}.else.i
113160 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 6e 74 f.(isset($secondErrors).&&.count
113180 28 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 ($secondErrors).===.count($this-
1131a0 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 72 72 6f 72 73 20 3d >getErrors())).{.$this->errors.=
1131c0 20 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 .$initErrors;.}.}.}.else.{...for
1131e0 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 69 66 20 28 each.($value.as.$k.=>.$v).{.if.(
113200 61 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 array_key_exists($k,.$schema->it
113220 65 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 ems)).{.$this->checkUndefined($v
113240 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 29 ,.$schema->items[$k],.$path,.$k)
113260 3b 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 ;.}.else.{...if.(property_exists
113280 28 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 ($schema,.'additionalItems')).{.
1132a0 69 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 if.($schema->additionalItems.!==
1132c0 20 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 .false).{.$this->checkUndefined(
1132e0 24 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 $v,.$schema->additionalItems,.$p
113300 61 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 ath,.$k);.}.else.{.$this->addErr
113320 6f 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 or(.$path,.'The.item.'...$i...'[
113340 27 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 '...$k...'].is.not.defined.and.t
113360 68 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 he.definition.does.not.allow.add
113380 69 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 itional.items');.}.}.else.{...$t
1133a0 68 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 his->checkUndefined($v,.new.\std
1133c0 43 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 Class(),.$path,.$k);.}.}.}....if
1133e0 28 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 (count($value).>.0).{.for.($k.=.
113400 63 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 count($value);.$k.<.count($schem
113420 61 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 a->items);.$k++).{.$this->checkU
113440 6e 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 ndefined(new.UndefinedConstraint
113460 28 29 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 (),.$schema->items[$k],.$path,.$
113480 6b 29 3b 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 6e 61 6d 65 k);.}.}.}.}.}.<?php.........name
1134a0 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 75 space.JsonSchema\Constraints;..u
1134c0 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 55 72 69 52 65 74 72 69 65 76 65 72 3b 0a se.JsonSchema\Uri\UriRetriever;.
1134e0 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6e 73 74 72 61 69 6e 74 .......abstract.class.Constraint
113500 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a .implements.ConstraintInterface.
113520 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 43 {.protected.$checkMode.=.self::C
113540 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 69 HECK_MODE_NORMAL;.protected.$uri
113560 52 65 74 72 69 65 76 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 20 3d 20 61 Retriever;.protected.$errors.=.a
113580 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 rray();.protected.$inlineSchemaP
1135a0 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 68 65 6d 61 27 3b 0a 0a 63 6f 6e 73 74 20 43 48 45 43 roperty.=.'$schema';..const.CHEC
1135c0 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 4d K_MODE_NORMAL.=.1;.const.CHECK_M
1135e0 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ODE_TYPE_CAST.=.2;......public.f
113600 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 68 65 63 6b 4d 6f 64 65 20 3d unction.__construct($checkMode.=
113620 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 2c 20 55 72 69 52 65 74 .self::CHECK_MODE_NORMAL,.UriRet
113640 72 69 65 76 65 72 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 riever.$uriRetriever.=.null).{.$
113660 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 24 63 68 65 63 6b 4d 6f 64 65 3b 0a 24 74 this->checkMode.=.$checkMode;.$t
113680 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 76 65 his->uriRetriever.=.$uriRetrieve
1136a0 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 69 52 r;.}.....public.function.getUriR
1136c0 65 74 72 69 65 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 74 68 69 73 2d 3e etriever().{.if.(is_null($this->
1136e0 75 72 69 52 65 74 72 69 65 76 65 72 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 uriRetriever)).{.$this->setUriRe
113700 74 72 69 65 76 65 72 28 6e 65 77 20 55 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 7d 0a 0a 72 65 triever(new.UriRetriever);.}..re
113720 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a turn.$this->uriRetriever;.}.....
113740 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 76 65 72 28 public.function.setUriRetriever(
113760 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 29 0a 7b 0a 24 74 UriRetriever.$uriRetriever).{.$t
113780 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 76 65 his->uriRetriever.=.$uriRetrieve
1137a0 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 45 72 72 6f r;.}.....public.function.addErro
1137c0 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f r($path,.$message).{.$this->erro
1137e0 72 73 5b 5d 20 3d 20 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 rs[].=.array(.'property'.=>.$pat
113800 68 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 65 0a 29 3b 0a 7d 0a 0a 0a h,.'message'.=>.$message.);.}...
113820 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 28 61 72 72 61 ..public.function.addErrors(arra
113840 79 20 24 65 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 y.$errors).{.$this->errors.=.arr
113860 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 65 72 72 6f 72 73 29 ay_merge($this->errors,.$errors)
113880 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
1138a0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 0a 0a s().{.return.$this->errors;.}...
1138c0 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 29 0a 7b 0a 72 65 ..public.function.isValid().{.re
1138e0 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a turn.!$this->getErrors();.}.....
113900 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 .public.function.reset().{.$this
113920 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ->errors.=.array();.}..........p
113940 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 rotected.function.incrementPath(
113960 24 70 61 74 68 2c 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 27 27 29 20 7b $path,.$i).{.if.($path.!==.'').{
113980 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 5b 27 20 .if.(is_int($i)).{.$path..=.'['.
1139a0 2e 20 24 69 20 2e 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 20 3d 3d 20 27 27 29 20 ..$i...']';.}.elseif.($i.==.'').
1139c0 7b 0a 24 70 61 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 2e 3d {.$path..=.'';.}.else.{.$path..=
1139e0 20 27 2e 27 20 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 24 69 .'.'...$i;.}.}.else.{.$path.=.$i
113a00 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ;.}..return.$path;.}..........pr
113a20 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 41 72 72 61 79 28 24 76 61 6c otected.function.checkArray($val
113a40 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
113a60 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.
113a80 43 6f 6c 6c 65 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 CollectionConstraint($this->chec
113aa0 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
113ac0 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,.
113ae0 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
113b00 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());.}.......
113b20 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 4f 62 6a 65 ....protected.function.checkObje
113b40 63 74 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 ct($value,.$schema.=.null,.$path
113b60 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 .=.null,.$i.=.null,.$patternProp
113b80 65 72 74 69 65 73 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 erties.=.null).{.$validator.=.ne
113ba0 77 20 4f 62 6a 65 63 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 w.ObjectConstraint($this->checkM
113bc0 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 6c 69 ode,.$this->uriRetriever);.$vali
113be0 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 dator->check($value,.$schema,.$p
113c00 61 74 68 2c 20 24 69 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 3b 0a 0a 24 ath,.$i,.$patternProperties);..$
113c20 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 this->addErrors($validator->getE
113c40 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 rrors());.}..........protected.f
113c60 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d unction.checkType($value,.$schem
113c80 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c a.=.null,.$path.=.null,.$i.=.nul
113ca0 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 65 43 6f 6e 73 74 72 l).{.$validator.=.new.TypeConstr
113cc0 61 69 6e 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 aint($this->checkMode,.$this->ur
113ce0 69 52 65 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 iRetriever);.$validator->check($
113d00 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 value,.$schema,.$path,.$i);..$th
113d20 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 is->addErrors($validator->getErr
113d40 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ors());.}..........protected.fun
113d60 63 74 69 6f 6e 20 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 ction.checkUndefined($value,.$sc
113d80 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 hema.=.null,.$path.=.null,.$i.=.
113da0 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 55 6e 64 65 66 69 6e null).{.$validator.=.new.Undefin
113dc0 65 64 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 edConstraint($this->checkMode,.$
113de0 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-
113e00 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,.$
113e20 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
113e40 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
113e60 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 cted.function.checkString($value
113e80 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,.
113ea0 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 74 $i.=.null).{.$validator.=.new.St
113ec0 72 69 6e 67 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 ringConstraint($this->checkMode,
113ee0 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 74 6f .$this->uriRetriever);.$validato
113f00 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c r->check($value,.$schema,.$path,
113f20 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 .$i);..$this->addErrors($validat
113f40 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
113f60 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c tected.function.checkNumber($val
113f80 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
113fa0 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.
113fc0 4e 75 6d 62 65 72 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 NumberConstraint($this->checkMod
113fe0 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
114000 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
114020 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
114040 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ator->getErrors());.}..........p
114060 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 45 6e 75 6d 28 24 76 61 6c rotected.function.checkEnum($val
114080 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
1140a0 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.
1140c0 45 6e 75 6d 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 EnumConstraint($this->checkMode,
1140e0 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 74 6f .$this->uriRetriever);.$validato
114100 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c r->check($value,.$schema,.$path,
114120 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 .$i);..$this->addErrors($validat
114140 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 or->getErrors());.}..protected.f
114160 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 unction.checkFormat($value,.$sch
114180 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
1141a0 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 46 6f 72 6d 61 74 43 6f ull).{.$validator.=.new.FormatCo
1141c0 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 74 68 69 73 nstraint($this->checkMode,.$this
1141e0 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 3e 63 68 65 ->uriRetriever);.$validator->che
114200 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a ck($value,.$schema,.$path,.$i);.
114220 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 .$this->addErrors($validator->ge
114240 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e tErrors());.}......protected.fun
114260 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 55 72 69 28 24 75 72 69 29 0a 7b 0a 69 66 20 28 6e 75 ction.retrieveUri($uri).{.if.(nu
114280 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 20 7b 0a 24 74 ll.===.$this->uriRetriever).{.$t
1142a0 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 55 72 69 52 65 74 72 his->setUriRetriever(new.UriRetr
1142c0 69 65 76 65 72 29 3b 0a 7d 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 24 74 68 69 73 2d 3e 75 iever);.}.$jsonSchema.=.$this->u
1142e0 72 69 52 65 74 72 69 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 75 72 69 29 3b 0a 0a 20 72 riRetriever->retrieve($uri);...r
114300 65 74 75 72 6e 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 eturn.$jsonSchema;.}.}.<?php....
114320 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 73 74 72 .....namespace.JsonSchema\Constr
114340 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 74 72 61 69 6e aints;.......interface.Constrain
114360 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 74 69 6f tInterface.{......public.functio
114380 6e 20 67 65 74 45 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 n.getErrors();.......public.func
1143a0 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 3b 0a 0a tion.addErrors(array.$errors);..
1143c0 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 6f 72 28 24 ......public.function.addError($
1143e0 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 path,.$message);.......public.fu
114400 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c nction.isValid();...........publ
114420 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d ic.function.check($value,.$schem
114440 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c a.=.null,.$path.=.null,.$i.=.nul
114460 6c 29 3b 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 6f l);.}<?php.........namespace.Jso
114480 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 nSchema\Constraints;........clas
1144a0 73 20 45 6e 75 6d 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 s.EnumConstraint.extends.Constra
1144c0 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 int.{....public.function.check($
1144e0 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d element,.$schema.=.null,.$path.=
114500 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 65 6c 65 6d 65 .null,.$i.=.null).{...if.($eleme
114520 6e 74 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 72 61 69 6e nt.instanceof.UndefinedConstrain
114540 74 20 26 26 20 28 21 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 t.&&.(!isset($schema->required).
114560 7c 7c 20 21 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 29 20 7b 0a 72 65 74 75 72 6e ||.!$schema->required)).{.return
114580 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 20 61 73 20 24 ;.}..foreach.($schema->enum.as.$
1145a0 65 6e 75 6d 29 20 7b 0a 24 74 79 70 65 20 3d 20 67 65 74 74 79 70 65 28 24 65 6c 65 6d 65 6e 74 enum).{.$type.=.gettype($element
1145c0 29 3b 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 67 65 74 74 79 70 65 28 24 65 6e 75 6d 29 29 );.if.($type.===.gettype($enum))
1145e0 20 7b 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 20 22 6f 62 6a 65 63 74 22 29 20 7b 0a 69 66 20 28 .{.if.($type.==."object").{.if.(
114600 24 65 6c 65 6d 65 6e 74 20 3d 3d 20 24 65 6e 75 6d 29 0a 72 65 74 75 72 6e 3b 0a 7d 20 65 6c 73 $element.==.$enum).return;.}.els
114620 65 20 7b 0a 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 3d 3d 3d 20 24 65 6e 75 6d 29 0a 72 65 74 75 e.{.if.($element.===.$enum).retu
114640 72 6e 3b 0a 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 rn;..}.}.}..$this->addError($pat
114660 68 2c 20 22 44 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 76 61 6c 75 65 20 69 6e 20 74 68 65 h,."Does.not.have.a.value.in.the
114680 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 65 6d 61 .enumeration."...print_r($schema
1146a0 2d 3e 65 6e 75 6d 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ->enum,.true));.}.}.<?php.......
1146c0 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
1146e0 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 69 6e ts;........class.FormatConstrain
114700 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 69 63 t.extends.Constraint.{....public
114720 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 65 6d .function.check($element,.$schem
114740 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c a.=.null,.$path.=.null,.$i.=.nul
114760 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 74 29 l).{.if.(!isset($schema->format)
114780 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 2d 3e ).{.return;.}..switch.($schema->
1147a0 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 61 74 format).{.case.'date':.if.(!$dat
1147c0 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 6c 65 e.=.$this->validateDateTime($ele
1147e0 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 72 6f ment,.'Y-m-d')).{.$this->addErro
114800 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 20 25 r($path,.sprintf('Invalid.date.%
114820 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 2c 20 s,.expected.format.YYYY-MM-DD',.
114840 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 61 6b json_encode($element)));.}.break
114860 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 6c 69 ;..case.'time':.if.(!$this->vali
114880 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 29 29 dateDateTime($element,.'H:i:s'))
1148a0 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 6e 74 .{.$this->addError($path,.sprint
1148c0 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 6f 72 f('Invalid.time.%s,.expected.for
1148e0 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 65 6d mat.hh:mm:ss',.json_encode($elem
114900 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 69 6d ent)));.}.break;..case.'date-tim
114920 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 6d 65 e':.if.(!$this->validateDateTime
114940 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 26 0a ($element,.'Y-m-d\TH:i:s\Z').&&.
114960 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 6e !$this->validateDateTime($elemen
114980 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 69 73 t,.'Y-m-d\TH:i:s.u\Z').&&.!$this
1149a0 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 59 2d ->validateDateTime($element,.'Y-
1149c0 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 61 74 m-d\TH:i:sP').&&.!$this->validat
1149e0 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 69 3a eDateTime($element,.'Y-m-d\TH:i:
114a00 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 2c 20 sO').).{.$this->addError($path,.
114a20 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 20 65 sprintf('Invalid.date-time.%s,.e
114a40 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 6d 3a xpected.format.YYYY-MM-DDThh:mm:
114a60 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 6d 6d ssZ.or.YYYY-MM-DDThh:mm:ss+hh:mm
114a80 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 62 72 ',.json_encode($element)));.}.br
114aa0 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 28 21 eak;..case.'utc-millisec':.if.(!
114ac0 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 6e 74 $this->validateDateTime($element
114ae0 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 68 2c ,.'U')).{.$this->addError($path,
114b00 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 65 63 .sprintf('Invalid.time.%s,.expec
114b20 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 6e 63 ted.integer.of.milliseconds.sinc
114b40 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 29 29 e.Epoch',.json_encode($element))
114b60 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 28 21 );.}.break;..case.'regex':.if.(!
114b80 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 29 20 $this->validateRegex($element)).
114ba0 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 6c 69 {.$this->addError($path,.'Invali
114bc0 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 7d 0a d.regex.format.'...$element);.}.
114be0 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 69 73 break;..case.'color':.if.(!$this
114c00 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 74 68 ->validateColor($element)).{.$th
114c20 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 6f 6c is->addError($path,."Invalid.col
114c40 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 69 66 or");.}.break;..case.'style':.if
114c60 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 6e 74 .(!$this->validateStyle($element
114c80 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 76 )).{.$this->addError($path,."Inv
114ca0 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 70 68 alid.style");.}.break;..case.'ph
114cc0 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 65 28 one':.if.(!$this->validatePhone(
114ce0 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
114d00 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 0a 62 th,."Invalid.phone.number");.}.b
114d20 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 3d 20 reak;..case.'uri':.if.(null.===.
114d40 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 49 filter_var($element,.FILTER_VALI
114d60 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 52 45 DATE_URL,.FILTER_NULL_ON_FAILURE
114d80 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 76 )).{.$this->addError($path,."Inv
114da0 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 61 73 alid.URL.format");.}.break;..cas
114dc0 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 5f 76 e.'email':.if.(null.===.filter_v
114de0 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 4d 41 ar($element,.FILTER_VALIDATE_EMA
114e00 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 0a 24 IL,.FILTER_NULL_ON_FAILURE)).{.$
114e20 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 65 this->addError($path,."Invalid.e
114e40 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 72 65 mail");.}.break;..case.'ip-addre
114e60 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 20 66 ss':.case.'ipv4':.if.(null.===.f
114e80 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 49 44 ilter_var($element,.FILTER_VALID
114ea0 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 20 7c ATE_IP,.FILTER_NULL_ON_FAILURE.|
114ec0 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 64 64 .FILTER_FLAG_IPV4)).{.$this->add
114ee0 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 73 73 Error($path,."Invalid.IP.address
114f00 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 28 6e ");.}.break;..case.'ipv6':.if.(n
114f20 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 49 4c ull.===.filter_var($element,.FIL
114f40 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 4e 5f TER_VALIDATE_IP,.FILTER_NULL_ON_
114f60 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 0a 24 FAILURE.|.FILTER_FLAG_IPV6)).{.$
114f80 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 49 this->addError($path,."Invalid.I
114fa0 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 6f 73 P.address");.}.break;..case.'hos
114fc0 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 21 24 t-name':.case.'hostname':.if.(!$
114fe0 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 74 29 this->validateHostname($element)
115000 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 76 61 ).{.$this->addError($path,."Inva
115020 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 75 6c lid.hostname");.}.break;..defaul
115040 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 t:...break;.}.}..protected.funct
115060 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 64 61 74 65 74 69 6d 65 2c 20 ion.validateDateTime($datetime,.
115080 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 64 74 20 3d 20 5c 44 61 74 65 54 69 6d 65 3a 3a 63 72 65 61 $format).{.$dt.=.\DateTime::crea
1150a0 74 65 46 72 6f 6d 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 2c 20 24 64 61 74 65 74 69 6d 65 29 teFromFormat($format,.$datetime)
1150c0 3b 0a 0a 69 66 20 28 21 24 64 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ;..if.(!$dt).{.return.false;.}..
1150e0 72 65 74 75 72 6e 20 24 64 61 74 65 74 69 6d 65 20 3d 3d 3d 20 24 64 74 2d 3e 66 6f 72 6d 61 74 return.$datetime.===.$dt->format
115100 28 24 66 6f 72 6d 61 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ($format);.}..protected.function
115120 20 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 72 65 67 65 78 29 0a 7b 0a 72 65 74 75 72 6e 20 .validateRegex($regex).{.return.
115140 66 61 6c 73 65 20 21 3d 3d 20 40 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 20 2e 20 24 72 65 67 false.!==.@preg_match('/'...$reg
115160 65 78 20 2e 20 27 2f 27 2c 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ex...'/',.'');.}..protected.func
115180 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 43 6f 6c 6f 72 28 24 63 6f 6c 6f 72 29 0a 7b 0a 69 66 20 tion.validateColor($color).{.if.
1151a0 28 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6c 6f 72 29 2c 20 61 72 (in_array(strtolower($color),.ar
1151c0 72 61 79 28 27 61 71 75 61 27 2c 20 27 62 6c 61 63 6b 27 2c 20 27 62 6c 75 65 27 2c 20 27 66 75 ray('aqua',.'black',.'blue',.'fu
1151e0 63 68 73 69 61 27 2c 0a 27 67 72 61 79 27 2c 20 27 67 72 65 65 6e 27 2c 20 27 6c 69 6d 65 27 2c chsia',.'gray',.'green',.'lime',
115200 20 27 6d 61 72 6f 6f 6e 27 2c 20 27 6e 61 76 79 27 2c 20 27 6f 6c 69 76 65 27 2c 20 27 6f 72 61 .'maroon',.'navy',.'olive',.'ora
115220 6e 67 65 27 2c 20 27 70 75 72 70 6c 65 27 2c 0a 27 72 65 64 27 2c 20 27 73 69 6c 76 65 72 27 2c nge',.'purple',.'red',.'silver',
115240 20 27 74 65 61 6c 27 2c 20 27 77 68 69 74 65 27 2c 20 27 79 65 6c 6c 6f 77 27 29 29 29 20 7b 0a .'teal',.'white',.'yellow'))).{.
115260 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 return.true;.}..return.preg_matc
115280 68 28 27 2f 5e 23 28 5b 61 2d 66 30 2d 39 5d 7b 33 7d 7c 5b 61 2d 66 30 2d 39 5d 7b 36 7d 29 24 h('/^#([a-f0-9]{3}|[a-f0-9]{6})$
1152a0 2f 69 27 2c 20 24 63 6f 6c 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 /i',.$color);.}..protected.funct
1152c0 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 79 6c 65 28 24 73 74 79 6c 65 29 0a 7b 0a 24 70 72 6f ion.validateStyle($style).{.$pro
1152e0 70 65 72 74 69 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3b 27 2c 20 72 74 72 69 6d 28 24 73 74 perties.=.explode(';',.rtrim($st
115300 79 6c 65 2c 20 27 3b 27 29 29 3b 0a 24 69 6e 76 61 6c 69 64 45 6e 74 72 69 65 73 20 3d 20 70 72 yle,.';'));.$invalidEntries.=.pr
115320 65 67 5f 67 72 65 70 28 27 2f 5e 5c 73 2a 5b 2d 61 2d 7a 5d 2b 5c 73 2a 3a 5c 73 2a 2e 2b 24 2f eg_grep('/^\s*[-a-z]+\s*:\s*.+$/
115340 69 27 2c 20 24 70 72 6f 70 65 72 74 69 65 73 2c 20 50 52 45 47 5f 47 52 45 50 5f 49 4e 56 45 52 i',.$properties,.PREG_GREP_INVER
115360 54 29 3b 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 69 6e 76 61 6c 69 64 45 6e 74 72 69 65 T);..return.empty($invalidEntrie
115380 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 s);.}..protected.function.valida
1153a0 74 65 50 68 6f 6e 65 28 24 70 68 6f 6e 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 tePhone($phone).{.return.preg_ma
1153c0 74 63 68 28 27 2f 5e 5c 2b 3f 28 5c 28 5c 64 7b 33 7d 5c 29 7c 5c 64 7b 33 7d 29 20 5c 64 7b 33 tch('/^\+?(\(\d{3}\)|\d{3}).\d{3
1153e0 7d 20 5c 64 7b 34 7d 24 2f 27 2c 20 24 70 68 6f 6e 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 }.\d{4}$/',.$phone);.}..protecte
115400 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 48 6f 73 74 6e 61 6d 65 28 24 68 6f 73 d.function.validateHostname($hos
115420 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5f 61 2d 7a 5d t).{.return.preg_match('/^[_a-z]
115440 2b 5c 2e 28 5b 5f 61 2d 7a 5d 2b 5c 2e 3f 29 2b 24 2f 69 27 2c 20 24 68 6f 73 74 29 3b 0a 7d 0a +\.([_a-z]+\.?)+$/i',.$host);.}.
115460 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 73 6f 6e 53 63 }.<?php.........namespace.JsonSc
115480 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e hema\Constraints;........class.N
1154a0 75 6d 62 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 umberConstraint.extends.Constrai
1154c0 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 nt.{....public.function.check($e
1154e0 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 lement,.$schema.=.null,.$path.=.
115500 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 null,.$i.=.null).{...if.(isset($
115520 73 63 68 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 schema->exclusiveMinimum)).{.if.
115540 28 69 73 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 (isset($schema->minimum)).{.if.(
115560 24 73 63 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 $schema->exclusiveMinimum.&&.$el
115580 65 6d 65 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 ement.===.$schema->minimum).{.$t
1155a0 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 68 61 76 65 20 his->addError($path,."Must.have.
1155c0 61 20 6d 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 a.minimum.value.greater.than.bou
1155e0 6e 64 61 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 ndary.value.of."...$schema->mini
115600 6d 75 6d 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 mum);.}.else.if.($element.<.$sch
115620 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 ema->minimum).{.$this->addError(
115640 24 70 61 74 68 2c 20 22 4d 75 73 74 20 68 61 76 65 20 61 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 $path,."Must.have.a.minimum.valu
115660 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 3b 0a 7d 0a 7d 20 e.of."...$schema->minimum);.}.}.
115680 65 6c 73 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 55 else.{.$this->addError($path,."U
1156a0 73 65 20 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 se.of.exclusiveMinimum.requires.
1156c0 70 72 65 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 presence.of.minimum");.}.}.else.
1156e0 69 66 20 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 if.(isset($schema->minimum).&&.$
115700 65 6c 65 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 element.<.$schema->minimum).{.$t
115720 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 68 61 76 65 20 his->addError($path,."Must.have.
115740 61 20 6d 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 a.minimum.value.of."...$schema->
115760 6d 69 6e 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 minimum);.}....if.(isset($schema
115780 2d 3e 65 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 ->exclusiveMaximum)).{.if.(isset
1157a0 28 24 73 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 ($schema->maximum)).{.if.($schem
1157c0 61 2d 3e 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 a->exclusiveMaximum.&&.$element.
1157e0 3d 3d 3d 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 ===.$schema->maximum).{.$this->a
115800 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 ddError($path,."Must.have.a.maxi
115820 6d 75 6d 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 mum.value.less.than.boundary.val
115840 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 20 65 ue.of."...$schema->maximum);.}.e
115860 6c 73 65 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 lse.if.($element.>.$schema->maxi
115880 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d mum).{.$this->addError($path,."M
1158a0 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 ust.have.a.maximum.value.of."...
1158c0 24 73 63 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 $schema->maximum);.}.}.else.{.$t
1158e0 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 55 73 65 20 6f 66 20 65 78 63 his->addError($path,."Use.of.exc
115900 6c 75 73 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 lusiveMaximum.requires.presence.
115920 6f 66 20 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 of.maximum");.}.}.else.if.(isset
115940 28 24 73 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 ($schema->maximum).&&.$element.>
115960 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
115980 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d rror($path,."Must.have.a.maximum
1159a0 20 76 61 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 .value.of."...$schema->maximum);
1159c0 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 64 69 76 69 73 69 62 .}....if.(isset($schema->divisib
1159e0 6c 65 42 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 leBy).&&.$this->fmod($element,.$
115a00 73 63 68 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 schema->divisibleBy).!=.0).{.$th
115a20 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 73 20 6e 6f 74 20 64 69 76 69 is->addError($path,."Is.not.divi
115a40 73 69 62 6c 65 20 62 79 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 sible.by."...$schema->divisibleB
115a60 79 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 75 6c 74 y);.}....if.(isset($schema->mult
115a80 69 70 6c 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 ipleOf).&&.$this->fmod($element,
115aa0 20 24 73 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 .$schema->multipleOf).!=.0).{.$t
115ac0 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 62 65 20 61 20 his->addError($path,."Must.be.a.
115ae0 6d 75 6c 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 multiple.of."...$schema->multipl
115b00 65 4f 66 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 eOf);.}..$this->checkFormat($ele
115b20 6d 65 6e 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 ment,.$schema,.$path,.$i);.}..pr
115b40 69 76 61 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 ivate.function.fmod($number1,.$n
115b60 75 6d 62 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 umber2).{.$modulus.=.fmod($numbe
115b80 72 31 2c 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 r1,.$number2);.$precision.=.abs(
115ba0 30 2e 30 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 0.0000000001);.$diff.=.(float)($
115bc0 6d 6f 64 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 modulus.-.$number2);..if.(-$prec
115be0 69 73 69 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 ision.<.$diff.&&.$diff.<.$precis
115c00 69 6f 6e 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 ion).{.return.0.0;.}..$decimals1
115c20 20 3d 20 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 .=.mb_strpos($number1,.".").?.mb
115c40 5f 73 74 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 _strlen($number1).-.mb_strpos($n
115c60 75 6d 62 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 umber1,.".").-.1.:.0;.$decimals2
115c80 20 3d 20 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 .=.mb_strpos($number2,.".").?.mb
115ca0 5f 73 74 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 _strlen($number2).-.mb_strpos($n
115cc0 75 6d 62 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 umber2,.".").-.1.:.0;..return.(f
115ce0 6c 6f 61 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 loat)round($modulus,.max($decima
115d00 6c 73 31 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 ls1,.$decimals2));.}.}.<?php....
115d20 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 73 74 72 .....namespace.JsonSchema\Constr
115d40 61 69 6e 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 aints;........class.ObjectConstr
115d60 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 66 75 6e aint.extends.Constraint.{....fun
115d80 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f ction.check($element,.$definitio
115da0 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f n.=.null,.$path.=.null,.$additio
115dc0 6e 61 6c 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 nalProp.=.null,.$patternProperti
115de0 65 73 20 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 es.=.null).{.if.($element.instan
115e00 63 65 6f 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 ceof.UndefinedConstraint).{.retu
115e20 72 6e 3b 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 rn;.}..$matches.=.array();.if.($
115e40 70 61 74 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 patternProperties).{.$matches.=.
115e60 24 74 68 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 $this->validatePatternProperties
115e80 28 24 65 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 ($element,.$path,.$patternProper
115ea0 74 69 65 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 ties);.}..if.($definition).{...$
115ec0 74 68 69 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 this->validateDefinition($elemen
115ee0 74 2c 20 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 t,.$definition,.$path);.}....$th
115f00 69 73 2d 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 is->validateElement($element,.$m
115f20 61 74 63 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 atches,.$definition,.$path,.$add
115f40 69 74 69 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 itionalProp);.}..public.function
115f60 20 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 6c 65 6d .validatePatternProperties($elem
115f80 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 73 29 0a ent,.$path,.$patternProperties).
115fa0 7b 0a 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 {.$matches.=.array();.foreach.($
115fc0 70 61 74 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 patternProperties.as.$pregex.=>.
115fe0 24 73 63 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 $schema).{...if.(@preg_match('/'
116000 2e 20 24 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 ..$pregex...'/',.'').===.false).
116020 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 54 68 65 20 70 61 {.$this->addError($path,.'The.pa
116040 74 74 65 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 ttern."'...$pregex...'".is.inval
116060 69 64 27 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 id');.continue;.}.foreach.($elem
116080 65 6e 74 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 ent.as.$i.=>.$value).{.if.(preg_
1160a0 6d 61 74 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 match('/'...$pregex...'/',.$i)).
1160c0 7b 0a 24 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 {.$matches[].=.$i;.$this->checkU
1160e0 6e 64 65 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 ndefined($value,.$schema.?.:.new
116100 20 5c 73 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 .\stdClass(),.$path,.$i);.}.}.}.
116120 72 65 74 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 return.$matches;.}...........pub
116140 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 28 24 65 6c lic.function.validateElement($el
116160 65 6d 65 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 ement,.$matches,.$objectDefiniti
116180 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 on.=.null,.$path.=.null,.$additi
1161a0 6f 6e 61 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 onalProp.=.null).{.foreach.($ele
1161c0 6d 65 6e 74 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 0a 24 70 72 6f 70 65 72 ment.as.$i.=>.$value).{..$proper
1161e0 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 ty.=.$this->getProperty($element
116200 2c 20 24 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 ,.$i,.new.UndefinedConstraint())
116220 3b 0a 24 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 ;.$definition.=.$this->getProper
116240 74 79 28 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 ty($objectDefinition,.$i);....if
116260 20 28 21 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 .(!in_array($i,.$matches).&&.$ad
116280 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 74 68 69 73 2d ditionalProp.===.false.&&.$this-
1162a0 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 21 3d 3d 20 24 69 20 26 26 20 >inlineSchemaProperty.!==.$i.&&.
1162c0 21 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 !$definition).{.$this->addError(
1162e0 24 70 61 74 68 2c 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 20 2d 20 22 20 2e 20 24 69 20 2e 20 $path,."The.property.-."...$i...
116300 22 20 2d 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 65 20 64 65 66 69 6e ".-.is.not.defined.and.the.defin
116320 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 74 69 6f 6e 61 6c 20 ition.does.not.allow.additional.
116340 70 72 6f 70 65 72 74 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 properties");.}....if.(!in_array
116360 28 24 69 2c 20 24 6d 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 ($i,.$matches).&&.$additionalPro
116380 70 20 26 26 20 21 24 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 p.&&.!$definition).{.if.($additi
1163a0 6f 6e 61 6c 50 72 6f 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 onalProp.===.true).{.$this->chec
1163c0 6b 55 6e 64 65 66 69 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 kUndefined($value,.null,.$path,.
1163e0 24 69 29 3b 0a 7d 20 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 $i);.}.else.{.$this->checkUndefi
116400 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 2c 20 24 70 61 ned($value,.$additionalProp,.$pa
116420 74 68 2c 20 24 69 29 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 th,.$i);.}.}....$require.=.$this
116440 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 ->getProperty($definition,.'requ
116460 69 72 65 73 27 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 26 26 20 21 24 74 68 69 73 2d 3e ires');.if.($require.&&.!$this->
116480 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 72 65 71 75 69 72 65 29 29 getProperty($element,.$require))
1164a0 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 20 70 .{.$this->addError($path,."The.p
1164c0 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e resence.of.the.property."...$i..
1164e0 20 22 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 22 20 2e 20 24 72 65 71 75 69 72 65 20 2e 20 .".requires.that."...$require...
116500 22 20 61 6c 73 6f 20 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 ".also.be.present");.}..if.(!$de
116520 66 69 6e 69 74 69 6f 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 finition).{...$this->checkUndefi
116540 6e 65 64 28 24 76 61 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 ned($value,.new.\stdClass(),.$pa
116560 74 68 2c 20 24 69 29 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 th,.$i);.}.}.}.........public.fu
116580 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 nction.validateDefinition($eleme
1165a0 6e 74 2c 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 nt,.$objectDefinition.=.null,.$p
1165c0 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 6a 65 63 74 44 65 ath.=.null).{.foreach.($objectDe
1165e0 66 69 6e 69 74 69 6f 6e 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 70 72 6f finition.as.$i.=>.$value).{.$pro
116600 70 65 72 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d perty.=.$this->getProperty($elem
116620 65 6e 74 2c 20 24 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 ent,.$i,.new.UndefinedConstraint
116640 28 29 29 3b 0a 24 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 ());.$definition.=.$this->getPro
116660 70 65 72 74 79 28 24 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 perty($objectDefinition,.$i);.$t
116680 68 69 73 2d 3e 63 68 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 his->checkUndefined($property,.$
1166a0 64 65 66 69 6e 69 74 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 definition,.$path,.$i);.}.}.....
1166c0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 70 ......protected.function.getProp
1166e0 65 72 74 79 28 24 65 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 erty($element,.$property,.$fallb
116700 61 63 6b 20 3d 20 6e 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 ack.=.null).{.if.(is_array($elem
116720 65 6e 74 29 20 29 20 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 ent).).{.return.array_key_exists
116740 28 24 70 72 6f 70 65 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 ($property,.$element).?.$element
116760 5b 24 70 72 6f 70 65 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 [$property].:.$fallback;.}.elsei
116780 66 20 28 69 73 5f 6f 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 f.(is_object($element)).{.return
1167a0 20 70 72 6f 70 65 72 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 .property_exists($element,.$prop
1167c0 65 72 74 79 29 20 3f 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 erty).?.$element->$property.:.$f
1167e0 61 6c 6c 62 61 63 6b 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 allback;.}..return.$fallback;.}.
116800 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 73 6f 6e 53 63 }.<?php.........namespace.JsonSc
116820 68 65 6d 61 5c 43 6f 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 hema\Constraints;..use.JsonSchem
116840 61 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 a\Exception\InvalidArgumentExcep
116860 74 69 6f 6e 3b 0a 0a 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 tion;........class.SchemaConstra
116880 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
1168a0 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
1168c0 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
1168e0 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 0a ull).{.if.($schema.!==.null).{..
116900 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c .$this->checkUndefined($element,
116920 20 24 73 63 68 65 6d 61 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 6f .$schema,.'',.'');.}.elseif.(pro
116940 70 65 72 74 79 5f 65 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 perty_exists($element,.$this->in
116960 6c 69 6e 65 53 63 68 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 lineSchemaProperty)).{...$this->
116980 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 65 6c 65 6d 65 6e checkUndefined($element,.$elemen
1169a0 74 2d 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 7d t->{$this->inlineSchemaProperty}
1169c0 2c 20 27 27 2c 20 27 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 ,.'',.'');.}.else.{.throw.new.In
1169e0 76 61 6c 69 64 41 72 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 validArgumentException('no.schem
116a00 61 20 66 6f 75 6e 64 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 a.found.to.verify.against');.}.}
116a20 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 6f 6e 53 63 .}<?php.........namespace.JsonSc
116a40 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 hema\Constraints;........class.S
116a60 74 72 69 6e 67 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 tringConstraint.extends.Constrai
116a80 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 nt.{....public.function.check($e
116aa0 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 lement,.$schema.=.null,.$path.=.
116ac0 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 null,.$i.=.null).{...if.(isset($
116ae0 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 26 26 20 24 74 68 69 73 2d 3e 73 74 72 schema->maxLength).&&.$this->str
116b00 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 len($element).>.$schema->maxLeng
116b20 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 th).{.$this->addError($path,."Mu
116b40 73 74 20 62 65 20 61 74 20 6d 6f 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 st.be.at.most."...$schema->maxLe
116b60 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a ngth...".characters.long");.}...
116b80 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 26 .if.(isset($schema->minLength).&
116ba0 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 3c 20 24 73 63 68 &.$this->strlen($element).<.$sch
116bc0 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f ema->minLength).{.$this->addErro
116be0 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 62 65 20 61 74 20 6c 65 61 73 74 20 22 20 2e 20 24 r($path,."Must.be.at.least."...$
116c00 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 schema->minLength...".characters
116c20 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 6d 61 2d .long");.}....if.(isset($schema-
116c40 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 27 20 2e 20 73 >pattern).&&.!preg_match('#'...s
116c60 74 72 5f 72 65 70 6c 61 63 65 28 27 23 27 2c 20 27 5c 5c 23 27 2c 20 24 73 63 68 65 6d 61 2d 3e tr_replace('#',.'\\#',.$schema->
116c80 70 61 74 74 65 72 6e 29 20 2e 20 27 23 27 2c 20 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 pattern)...'#',.$element)).{.$th
116ca0 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 44 6f 65 73 20 6e 6f 74 20 6d 61 is->addError($path,."Does.not.ma
116cc0 74 63 68 20 74 68 65 20 72 65 67 65 78 20 70 61 74 74 65 72 6e 20 22 20 2e 20 24 73 63 68 65 6d tch.the.regex.pattern."...$schem
116ce0 61 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 46 6f 72 6d a->pattern);.}..$this->checkForm
116d00 61 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 at($element,.$schema,.$path,.$i)
116d20 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 6c 65 6e 28 24 73 74 ;.}..private.function.strlen($st
116d40 72 69 6e 67 29 0a 7b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6d 62 ring).{.if.(extension_loaded('mb
116d60 73 74 72 69 6e 67 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 string')).{.return.mb_strlen($st
116d80 72 69 6e 67 2c 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 ring,.mb_detect_encoding($string
116da0 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 ));.}.else.{.return.strlen($stri
116dc0 6e 67 29 3b 0a 7d 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 ng);.}.}.}.<?php.........namespa
116de0 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 75 73 65 20 ce.JsonSchema\Constraints;..use.
116e00 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 41 72 67 75 JsonSchema\Exception\InvalidArgu
116e20 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 55 6e 65 78 70 65 63 74 65 64 56 61 6c mentException;.use.UnexpectedVal
116e40 75 65 45 78 63 65 70 74 69 6f 6e 20 61 73 20 53 74 61 6e 64 61 72 64 55 6e 65 78 70 65 63 74 65 ueException.as.StandardUnexpecte
116e60 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 79 dValueException;........class.Ty
116e80 70 65 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 peConstraint.extends.Constraint.
116ea0 7b 0a 0a 0a 0a 73 74 61 74 69 63 20 24 77 6f 72 64 69 6e 67 20 3d 20 61 72 72 61 79 28 0a 27 69 {....static.$wording.=.array(.'i
116ec0 6e 74 65 67 65 72 27 20 3d 3e 20 27 61 6e 20 69 6e 74 65 67 65 72 27 2c 0a 27 6e 75 6d 62 65 72 nteger'.=>.'an.integer',.'number
116ee0 27 20 3d 3e 20 27 61 20 6e 75 6d 62 65 72 27 2c 0a 27 62 6f 6f 6c 65 61 6e 27 20 3d 3e 20 27 61 '.=>.'a.number',.'boolean'.=>.'a
116f00 20 62 6f 6f 6c 65 61 6e 27 2c 0a 27 6f 62 6a 65 63 74 27 20 3d 3e 20 27 61 6e 20 6f 62 6a 65 63 .boolean',.'object'.=>.'an.objec
116f20 74 27 2c 0a 27 61 72 72 61 79 27 20 3d 3e 20 27 61 6e 20 61 72 72 61 79 27 2c 0a 27 73 74 72 69 t',.'array'.=>.'an.array',.'stri
116f40 6e 67 27 20 3d 3e 20 27 61 20 73 74 72 69 6e 67 27 2c 0a 27 6e 75 6c 6c 27 20 3d 3e 20 27 61 20 ng'.=>.'a.string',.'null'.=>.'a.
116f60 6e 75 6c 6c 27 2c 0a 27 61 6e 79 27 20 3d 3e 20 4e 55 4c 4c 2c 20 0a 20 30 20 3d 3e 20 4e 55 4c null',.'any'.=>.NULL,...0.=>.NUL
116f80 4c 2c 20 0a 20 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 L,...);.....public.function.chec
116fa0 6b 28 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c k($value.=.null,.$schema.=.null,
116fc0 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 79 70 .$path.=.null,.$i.=.null).{.$typ
116fe0 65 20 3d 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 29 20 3f 20 24 73 63 68 65 e.=.isset($schema->type).?.$sche
117000 6d 61 2d 3e 74 79 70 65 20 3a 20 6e 75 6c 6c 3b 0a 24 69 73 56 61 6c 69 64 20 3d 20 74 72 75 65 ma->type.:.null;.$isValid.=.true
117020 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 29 29 20 7b 0a 0a 20 24 76 61 6c ;..if.(is_array($type)).{...$val
117040 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 66 61 6c 73 65 3b 0a 24 65 72 72 6f 72 73 20 3d idatedOneType.=.false;.$errors.=
117060 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 20 61 73 20 24 74 70 29 .array();.foreach.($type.as.$tp)
117080 20 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 65 43 6f 6e 73 74 72 61 69 .{.$validator.=.new.TypeConstrai
1170a0 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 nt($this->checkMode);.$subSchema
1170c0 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d 3e .=.new.\stdClass();.$subSchema->
1170e0 74 79 70 65 20 3d 20 24 74 70 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 type.=.$tp;.$validator->check($v
117100 61 6c 75 65 2c 20 24 73 75 62 53 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b 0a alue,.$subSchema,.$path,.null);.
117120 24 65 72 72 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 $error.=.$validator->getErrors()
117140 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 65 72 72 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 61 ;..if.(!count($error)).{.$valida
117160 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 65 72 tedOneType.=.true;.break;.}..$er
117180 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 61 6c 69 64 61 74 65 rors.=.$error;.}..if.(!$validate
1171a0 64 4f 6e 65 54 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 65 72 dOneType).{.$this->addErrors($er
1171c0 72 6f 72 73 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 6f rors);..return;.}.}.elseif.(is_o
1171e0 62 6a 65 63 74 28 24 74 79 70 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 bject($type)).{.$this->checkUnde
117200 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 2c 20 24 70 61 74 68 29 3b 0a 7d 20 65 fined($value,.$type,.$path);.}.e
117220 6c 73 65 20 7b 0a 24 69 73 56 61 6c 69 64 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 lse.{.$isValid.=.$this->validate
117240 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 56 Type($value,.$type);.}..if.($isV
117260 61 6c 69 64 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c alid.===.false).{.if.(!isset(sel
117280 66 3a 3a 24 77 6f 72 64 69 6e 67 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 f::$wording[$type])).{.throw.new
1172a0 20 53 74 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 .StandardUnexpectedValueExceptio
1172c0 6e 28 0a 73 70 72 69 6e 74 66 28 0a 22 4e 6f 20 77 6f 72 64 69 6e 67 20 66 6f 72 20 25 73 20 61 n(.sprintf(."No.wording.for.%s.a
1172e0 76 61 69 6c 61 62 6c 65 2c 20 65 78 70 65 63 74 65 64 20 77 6f 72 64 69 6e 67 73 20 61 72 65 3a vailable,.expected.wordings.are:
117300 20 5b 25 73 5d 22 2c 0a 76 61 72 5f 65 78 70 6f 72 74 28 24 74 79 70 65 2c 20 74 72 75 65 29 2c .[%s]",.var_export($type,.true),
117320 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 73 65 6c 66 .implode(',.',.array_filter(self
117340 3a 3a 24 77 6f 72 64 69 6e 67 29 29 29 0a 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 ::$wording))).);.}.$this->addErr
117360 6f 72 28 24 70 61 74 68 2c 20 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 20 2e 20 22 20 76 61 or($path,.gettype($value)...".va
117380 6c 75 65 20 66 6f 75 6e 64 2c 20 62 75 74 20 22 20 2e 20 73 65 6c 66 3a 3a 24 77 6f 72 64 69 6e lue.found,.but."...self::$wordin
1173a0 67 5b 24 74 79 70 65 5d 20 2e 20 22 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a g[$type]...".is.required");.}.}.
1173c0 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 76 61 ...........protected.function.va
1173e0 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 0a 7b 0a 0a 20 69 66 lidateType($value,.$type).{...if
117400 20 28 21 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 .(!$type).{.return.true;.}..if.(
117420 27 69 6e 74 65 67 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 73 'integer'.===.$type).{.return.is
117440 5f 69 6e 74 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 6e 75 6d 62 65 72 27 20 3d 3d _int($value);.}..if.('number'.==
117460 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 =.$type).{.return.is_numeric($va
117480 6c 75 65 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 lue).&&.!is_string($value);.}..i
1174a0 66 20 28 27 62 6f 6f 6c 65 61 6e 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e f.('boolean'.===.$type).{.return
1174c0 20 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 6f 62 6a 65 63 74 .is_bool($value);.}..if.('object
1174e0 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 6f 62 6a 65 63 74 28 '.===.$type).{.return.is_object(
117500 24 76 61 6c 75 65 29 3b 0a 0a 20 7d 0a 0a 69 66 20 28 27 61 72 72 61 79 27 20 3d 3d 3d 20 24 74 $value);...}..if.('array'.===.$t
117520 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 3b 0a ype).{.return.is_array($value);.
117540 7d 0a 0a 69 66 20 28 27 73 74 72 69 6e 67 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 }..if.('string'.===.$type).{.ret
117560 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 6e urn.is_string($value);.}..if.('n
117580 75 6c 6c 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 6e 75 6c 6c ull'.===.$type).{.return.is_null
1175a0 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 61 6e 79 27 20 3d 3d 3d 20 24 74 79 70 65 ($value);.}..if.('any'.===.$type
1175c0 29 20 7b 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 49 6e ).{.return.true;.}..throw.new.In
1175e0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 28 69 73 5f 6f 62 6a 65 63 validArgumentException((is_objec
117600 74 28 24 76 61 6c 75 65 29 20 3f 20 27 6f 62 6a 65 63 74 27 20 3a 20 24 76 61 6c 75 65 29 20 2e t($value).?.'object'.:.$value)..
117620 20 27 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 74 79 70 65 20 66 6f 72 20 27 20 2e 20 24 74 .'.is.an.invalid.type.for.'...$t
117640 79 70 65 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 70 61 63 ype);.}.}.<?php.........namespac
117660 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 75 73 65 20 4a e.JsonSchema\Constraints;..use.J
117680 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 41 72 67 75 6d sonSchema\Exception\InvalidArgum
1176a0 65 6e 74 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 55 72 69 entException;.use.JsonSchema\Uri
1176c0 5c 55 72 69 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 \UriResolver;........class.Undef
1176e0 69 6e 65 64 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 inedConstraint.extends.Constrain
117700 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 t.{....public.function.check($va
117720 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
117740 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 73 63 68 l,.$i.=.null).{.if.(is_null($sch
117760 65 6d 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 6f 62 6a 65 63 ema)).{.return;.}..if.(!is_objec
117780 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 t($schema)).{.throw.new.InvalidA
1177a0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 47 69 76 65 6e 20 73 63 68 65 6d 61 20 rgumentException(.'Given.schema.
1177c0 6d 75 73 74 20 62 65 20 61 6e 20 6f 62 6a 65 63 74 20 69 6e 20 27 20 2e 20 24 70 61 74 68 0a 2e must.be.an.object.in.'...$path..
1177e0 20 27 20 62 75 74 20 69 73 20 61 20 27 20 2e 20 67 65 74 74 79 70 65 28 24 73 63 68 65 6d 61 29 .'.but.is.a.'...gettype($schema)
117800 0a 29 3b 0a 7d 0a 0a 24 69 20 3d 20 69 73 5f 6e 75 6c 6c 28 24 69 29 20 3f 20 22 22 20 3a 20 24 .);.}..$i.=.is_null($i).?."".:.$
117820 69 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 i;.$path.=.$this->incrementPath(
117840 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f $path,.$i);....$this->validateCo
117860 6d 6d 6f 6e 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 2c 20 mmonProperties($value,.$schema,.
117880 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 4f 66 50 72 6f 70 $path);....$this->validateOfProp
1178a0 65 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 29 3b 0a erties($value,.$schema,.$path);.
1178c0 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 ...$this->validateTypes($value,.
1178e0 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 0a 0a 0a 0a 0a 0a 0a $schema,.$path,.$i);.}..........
117900 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 public.function.validateTypes($v
117920 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
117940 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 ll,.$i.=.null).{...if.(is_array(
117960 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 41 72 72 61 79 28 24 76 61 $value)).{.$this->checkArray($va
117980 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 0a 0a 20 69 lue,.$schema,.$path,.$i);.}....i
1179a0 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 28 69 73 73 65 74 28 24 f.(is_object($value).&&.(isset($
1179c0 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 20 7c 7c 20 69 73 73 65 74 28 24 73 63 schema->properties).||.isset($sc
1179e0 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 29 29 20 7b 0a 24 74 68 hema->patternProperties))).{.$th
117a00 69 73 2d 3e 63 68 65 63 6b 4f 62 6a 65 63 74 28 0a 24 76 61 6c 75 65 2c 0a 69 73 73 65 74 28 24 is->checkObject(.$value,.isset($
117a20 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 70 schema->properties).?.$schema->p
117a40 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 2c 0a 24 70 61 74 68 2c 0a 69 73 73 65 74 28 24 roperties.:.null,.$path,.isset($
117a60 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 20 3f 20 schema->additionalProperties).?.
117a80 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3a 20 $schema->additionalProperties.:.
117aa0 6e 75 6c 6c 2c 0a 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 null,.isset($schema->patternProp
117ac0 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 50 72 6f 70 65 72 erties).?.$schema->patternProper
117ae0 74 69 65 73 20 3a 20 6e 75 6c 6c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 73 74 72 69 6e ties.:.null.);.}....if.(is_strin
117b00 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 53 74 72 69 6e 67 28 g($value)).{.$this->checkString(
117b20 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 0a $value,.$schema,.$path,.$i);.}..
117b40 0a 20 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 ..if.(is_numeric($value)).{.$thi
117b60 73 2d 3e 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 s->checkNumber($value,.$schema,.
117b80 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 $path,.$i);.}....if.(isset($sche
117ba0 6d 61 2d 3e 65 6e 75 6d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 45 6e 75 6d 28 24 76 ma->enum)).{.$this->checkEnum($v
117bc0 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 0a 0a alue,.$schema,.$path,.$i);.}.}..
117be0 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 69 64 ........protected.function.valid
117c00 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 20 24 73 63 68 ateCommonProperties($value,.$sch
117c20 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 22 ema.=.null,.$path.=.null,.$i.=."
117c40 22 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 ").{...if.(isset($schema->extend
117c60 73 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 s)).{.if.(is_string($schema->ext
117c80 65 6e 64 73 29 29 20 7b 0a 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 20 3d 20 24 74 68 69 ends)).{.$schema->extends.=.$thi
117ca0 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 69 28 24 73 63 68 65 6d 61 2c 20 24 73 63 68 65 6d 61 2d s->validateUri($schema,.$schema-
117cc0 3e 65 78 74 65 6e 64 73 29 3b 0a 7d 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d >extends);.}.if.(is_array($schem
117ce0 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d a->extends)).{.foreach.($schema-
117d00 3e 65 78 74 65 6e 64 73 20 61 73 20 24 65 78 74 65 6e 64 73 29 20 7b 0a 24 74 68 69 73 2d 3e 63 >extends.as.$extends).{.$this->c
117d20 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 65 78 74 65 6e 64 73 2c 20 heckUndefined($value,.$extends,.
117d40 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 68 $path,.$i);.}.}.else.{.$this->ch
117d60 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 65 78 eckUndefined($value,.$schema->ex
117d80 74 65 6e 64 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 tends,.$path,.$i);.}.}....if.(is
117da0 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 0a 69 66 20 28 21 28 24 76 61 6c 75 65 _object($value)).{..if.(!($value
117dc0 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 72 61 69 6e 74 29 .instanceof.UndefinedConstraint)
117de0 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 26 26 20 .&&.isset($schema->required).&&.
117e00 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 29 20 7b 0a is_array($schema->required).).{.
117e20 0a 20 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 20 61 73 20 ..foreach.($schema->required.as.
117e40 24 72 65 71 75 69 72 65 64 29 20 7b 0a 69 66 20 28 21 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 $required).{.if.(!property_exist
117e60 73 28 24 76 61 6c 75 65 2c 20 24 72 65 71 75 69 72 65 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 s($value,.$required)).{.$this->a
117e80 64 64 45 72 72 6f 72 28 24 72 65 71 75 69 72 65 64 2c 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 ddError($required,."The.property
117ea0 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 69 72 65 64 22 29 ."...$required...".is.required")
117ec0 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 68 65 6d 61 2d 3e ;.}.}.}.else.if.(isset($schema->
117ee0 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 68 65 6d 61 2d 3e required).&&.!is_array($schema->
117f00 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 61 2d 3e 72 65 71 required)).{...if.(.$schema->req
117f20 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 20 55 6e 64 65 66 uired.&&.$value.instanceof.Undef
117f40 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 64 64 45 72 72 6f inedConstraint).{.$this->addErro
117f60 72 28 24 70 61 74 68 2c 20 22 49 73 20 6d 69 73 73 69 6e 67 20 61 6e 64 20 69 74 20 69 73 20 72 r($path,."Is.missing.and.it.is.r
117f80 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 24 76 61 6c 75 65 equired");.}.}.}....if.(!($value
117fa0 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 72 61 69 6e 74 29 .instanceof.UndefinedConstraint)
117fc0 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 65 2c 20 24 73 63 ).{.$this->checkType($value,.$sc
117fe0 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 hema,.$path);.}....if.(isset($sc
118000 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 29 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d hema->disallow)).{.$initErrors.=
118020 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 65 53 63 68 65 6d .$this->getErrors();..$typeSchem
118040 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 53 63 68 65 6d 61 a.=.new.\stdClass();.$typeSchema
118060 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 3b 0a 24 74 68 69 ->type.=.$schema->disallow;.$thi
118080 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 53 63 68 65 6d 61 s->checkType($value,.$typeSchema
1180a0 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 ,.$path);....if.(count($this->ge
1180c0 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 tErrors()).==.count($initErrors)
1180e0 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 44 69 73 61 ).{.$this->addError($path,."Disa
118100 6c 6c 6f 77 65 64 20 76 61 6c 75 65 20 77 61 73 20 6d 61 74 63 68 65 64 22 29 3b 0a 7d 20 65 6c llowed.value.was.matched");.}.el
118120 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
118140 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 6e 6f 74 29 29 20 ;.}.}..if.(isset($schema->not)).
118160 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 45 72 72 6f 72 73 {.$initErrors.=.$this->getErrors
118180 28 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 ();.$this->checkUndefined($value
1181a0 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 3b 0a 0a 0a 20 69 ,.$schema->not,.$path,.$i);....i
1181c0 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 29 29 20 3d 3d 20 f.(count($this->getErrors()).==.
1181e0 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 73 2d 3e 61 64 64 count($initErrors)).{.$this->add
118200 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 61 74 63 68 65 64 20 61 20 73 63 68 65 6d 61 20 77 Error($path,."Matched.a.schema.w
118220 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 73 65 20 7b 0a 24 hich.it.should.not");.}.else.{.$
118240 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a this->errors.=.$initErrors;.}.}.
118260 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 69 66 20 28 ...if.(is_object($value)).{.if.(
118280 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 65 73 29 29 20 7b isset($schema->minProperties)).{
1182a0 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 28 24 76 61 6c 75 .if.(count(get_object_vars($valu
1182c0 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 65 73 29 20 7b 0a e)).<.$schema->minProperties).{.
1182e0 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 4d 75 73 74 20 63 6f 6e $this->addError($path,."Must.con
118300 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 65 6d 61 2d 3e 6d tain.a.minimum.of."...$schema->m
118320 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 73 22 29 3b 0a 7d inProperties...".properties");.}
118340 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 72 6f 70 65 72 74 .}.if.(isset($schema->maxPropert
118360 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 63 74 5f 76 61 72 ies)).{.if.(count(get_object_var
118380 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 72 6f 70 65 72 74 s($value)).>.$schema->maxPropert
1183a0 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 74 68 2c 20 22 4d ies).{.$this->addError($path,."M
1183c0 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 20 2e 20 24 73 63 ust.contain.no.more.than."...$sc
1183e0 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 6f 70 65 72 74 69 hema->maxProperties...".properti
118400 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 63 74 28 24 76 61 es");.}.}.}....if.(is_object($va
118420 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 65 6e 64 65 6e 63 lue).&&.isset($schema->dependenc
118440 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 65 6e 64 65 6e 63 ies)).{.$this->validateDependenc
118460 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 64 65 6e 63 69 65 ies($value,.$schema->dependencie
118480 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 6f 74 65 63 74 65 s,.$path);.}.}..........protecte
1184a0 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 72 74 69 65 73 28 d.function.validateOfProperties(
1184c0 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 20 3d 20 22 22 29 $value,.$schema,.$path,.$i.=."")
1184e0 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 20 55 6e 64 65 66 .{...if.($value.instanceof.Undef
118500 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 7d 0a 0a 69 66 20 inedConstraint).{.return;.}..if.
118520 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 24 69 73 56 61 6c (isset($schema->allOf)).{.$isVal
118540 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 61 2d 3e 61 6c 6c id.=.true;.foreach.($schema->all
118560 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 73 20 3d 20 24 74 Of.as.$allOf).{.$initErrors.=.$t
118580 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 68 65 63 6b 55 6e his->getErrors();.$this->checkUn
1185a0 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 61 74 68 2c 20 24 defined($value,.$allOf,.$path,.$
1185c0 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 20 28 63 6f 75 6e i);.$isValid.=.$isValid.&&.(coun
1185e0 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 28 24 t($this->getErrors()).==.count($
118600 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 6c 69 64 29 20 7b initErrors));.}.if.(!$isValid).{
118620 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 46 61 69 6c 65 64 20 .$this->addError($path,."Failed.
118640 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 7d 0a 0a 69 66 20 to.match.all.schemas");.}.}..if.
118660 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 24 69 73 56 61 6c (isset($schema->anyOf)).{.$isVal
118680 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 20 24 74 68 69 73 id.=.false;.$startErrors.=.$this
1186a0 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 63 68 65 6d 61 2d ->getErrors();.foreach.($schema-
1186c0 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 72 72 6f 72 73 20 >anyOf.as.$anyOf).{.$initErrors.
1186e0 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 68 65 =.$this->getErrors();.$this->che
118700 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 2c 20 24 70 61 74 ckUndefined($value,.$anyOf,.$pat
118720 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 75 6e 74 28 24 74 h,.$i);.if.($isValid.=.(count($t
118740 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 28 24 69 6e 69 74 his->getErrors()).==.count($init
118760 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 28 21 24 69 73 56 Errors))).{.break;.}.}.if.(!$isV
118780 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 61 74 68 2c 20 22 alid).{.$this->addError($path,."
1187a0 46 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 6e 65 20 73 63 68 Failed.to.match.at.least.one.sch
1187c0 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 6f 72 73 20 3d 20 ema");.}.else.{.$this->errors.=.
1187e0 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 65 74 28 24 73 63 $startErrors;.}.}..if.(isset($sc
118800 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 20 3d 20 61 72 72 hema->oneOf)).{.$allErrors.=.arr
118820 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 0a 24 73 74 61 72 ay();.$matchedSchemas.=.0;.$star
118840 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 3b 0a 66 6f tErrors.=.$this->getErrors();.fo
118860 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 6f 6e 65 4f 66 29 reach.($schema->oneOf.as.$oneOf)
118880 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 3b 0a 24 74 68 69 .{.$this->errors.=.array();.$thi
1188a0 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 6f 6e 65 4f 66 s->checkUndefined($value,.$oneOf
1188c0 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 68 69 73 2d 3e 67 ,.$path,.$i);.if.(count($this->g
1188e0 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 65 64 53 63 68 65 etErrors()).==.0).{.$matchedSche
118900 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 79 5f 6d 65 72 67 mas++;.}.$allErrors.=.array_merg
118920 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 28 24 74 68 69 73 e($allErrors,.array_values($this
118940 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 74 63 68 65 64 53 ->getErrors()));.}.if.($matchedS
118960 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 45 72 72 6f 72 73 chemas.!==.1).{.$this->addErrors
118980 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 0a 61 72 72 61 79 (.array_merge(.$allErrors,.array
1189a0 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 68 2c 0a 27 6d 65 (array(.'property'.=>.$path,.'me
1189c0 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 20 65 78 61 63 74 ssage'.=>."failed.to.match.exact
1189e0 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 45 72 72 6f 72 73 ly.one.schema".),),.$startErrors
118a00 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 72 73 20 3d 20 24 .).);.}.else.{.$this->errors.=.$
118a20 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 0a 0a 70 72 6f 74 startErrors;.}.}.}..........prot
118a40 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 65 6e 64 65 6e 63 ected.function.validateDependenc
118a60 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 20 24 70 61 74 68 ies($value,.$dependencies,.$path
118a80 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 65 6e 64 65 6e 63 ,.$i.=."").{.foreach.($dependenc
118aa0 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 29 20 7b 0a 69 66 ies.as.$key.=>.$dependency).{.if
118ac0 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 24 6b 65 79 29 29 .(property_exists($value,.$key))
118ae0 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 63 79 29 29 20 7b .{.if.(is_string($dependency)).{
118b00 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 61 6c 75 65 2c 20 ...if.(!property_exists($value,.
118b20 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 45 72 72 6f 72 28 $dependency)).{.$this->addError(
118b40 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 65 70 65 6e 64 65 $path,."$key.depends.on.$depende
118b60 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 73 69 6e 67 22 29 ncy.and.$dependency.is.missing")
118b80 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 65 70 65 6e 64 65 ;.}.}.else.if.(is_array($depende
118ba0 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 65 6e 63 79 20 61 ncy)).{...foreach.($dependency.a
118bc0 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 74 73 28 24 76 61 s.$d).{.if.(!property_exists($va
118be0 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 72 28 24 70 61 74 lue,.$d)).{.$this->addError($pat
118c00 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 20 24 64 20 69 73 h,."$key.depends.on.$d.and.$d.is
118c20 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 28 69 73 5f 6f 62 .missing");.}.}.}.else.if.(is_ob
118c40 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 69 73 2d 3e 63 68 ject($dependency)).{...$this->ch
118c60 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 6e 64 65 6e 63 79 eckUndefined($value,.$dependency
118c80 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 74 65 63 74 65 64 ,.$path,.$i);.}.}.}.}..protected
118ca0 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 65 6d 61 2c 20 24 .function.validateUri($schema,.$
118cc0 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 76 65 72 20 3d 20 schemaUri.=.null).{.$resolver.=.
118ce0 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 76 65 72 20 3d 20 new.UriResolver();.$retriever.=.
118d00 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 0a 24 6a 73 6f 6e $this->getUriRetriever();..$json
118d20 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 65 72 2d 3e 69 73 Schema.=.null;.if.($resolver->is
118d40 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 6d 61 49 64 20 3d Valid($schemaUri)).{.$schemaId.=
118d60 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 27 69 64 27 29 20 .property_exists($schema,.'id').
118d80 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 6e 53 63 68 65 6d ?.$schema->id.:.null;.$jsonSchem
118da0 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 73 63 68 65 6d 61 a.=.$retriever->retrieve($schema
118dc0 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 20 24 6a 73 6f 6e Id,.$schemaUri);.}..return.$json
118de0 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 6e 61 6d 65 73 70 Schema;.}.}.<?php.........namesp
118e00 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 6c ace.JsonSchema\Exception;.....cl
118e20 61 73 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 ass.InvalidArgumentException.ext
118e40 65 6e 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 0a 7b ends.\InvalidArgumentException.{
118e60 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 6f 6e 53 63 .}<?php.........namespace.JsonSc
118e80 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 76 61 6c 69 hema\Exception;.....class.Invali
118ea0 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 74 65 6e 64 dSchemaMediaTypeException.extend
118ec0 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 70 0a 0a 0a s.\RuntimeException.{..}<?php...
118ee0 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 78 63 65 70 ......namespace.JsonSchema\Excep
118f00 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 65 55 72 69 tion;.....class.InvalidSourceUri
118f20 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 75 6d 65 6e Exception.extends.InvalidArgumen
118f40 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 0a 6e 61 6d tException.{.}.<?php.........nam
118f60 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 0a 0a espace.JsonSchema\Exception;....
118f80 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 20 65 78 74 .class.JsonDecodingException.ext
118fa0 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 6c 69 63 20 ends.\RuntimeException.{.public.
118fc0 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 20 4a 53 4f function.__construct($code.=.JSO
118fe0 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 65 76 69 6f N_ERROR_NONE,.\Exception.$previo
119000 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 7b 0a 63 61 us.=.null).{.switch.($code).{.ca
119020 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 65 20 3d 20 se.JSON_ERROR_DEPTH:.$message.=.
119040 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 20 62 65 65 'The.maximum.stack.depth.has.bee
119060 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 4e 5f 45 52 n.exceeded';.break;.case.JSON_ER
119080 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 20 3d 20 27 ROR_STATE_MISMATCH:.$message.=.'
1190a0 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 62 72 65 61 Invalid.or.malformed.JSON';.brea
1190c0 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 3a 0a 24 6d k;.case.JSON_ERROR_CTRL_CHAR:.$m
1190e0 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 65 72 72 6f essage.=.'Control.character.erro
119100 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 64 65 64 27 r,.possibly.incorrectly.encoded'
119120 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 38 3a 0a 24 ;.break;.case.JSON_ERROR_UTF8:.$
119140 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 68 61 72 61 message.=.'Malformed.UTF-8.chara
119160 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 65 6e 63 6f cters,.possibly.incorrectly.enco
119180 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 53 59 4e ded';.break;.case.JSON_ERROR_SYN
1191a0 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 20 69 73 20 TAX:.$message.=.'JSON.syntax.is.
1191c0 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 24 6d 65 73 malformed';.break;.default:.$mes
1191e0 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 65 6e 74 3a sage.=.'Syntax.error';.}.parent:
119200 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 2c 20 24 70 :__construct($message,.$code,.$p
119220 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 61 6d 65 73 revious);.}.}<?php.........names
119240 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
119260 6c 61 73 73 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 20 65 lass.ResourceNotFoundException.e
119280 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 7d 3c 3f 70 68 xtends.\RuntimeException.{.}<?ph
1192a0 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
1192c0 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 72 69 52 65 73 6f 6c 76 65 72 45 xception;.....class.UriResolverE
1192e0 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
119300 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
119320 6f 6e 53 63 68 65 6d 61 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 onSchema;..use.JsonSchema\Except
119340 69 6f 6e 5c 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 4a ion\JsonDecodingException;.use.J
119360 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 72 sonSchema\Uri\Retrievers\UriRetr
119380 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 5c 55 ieverInterface;.use.JsonSchema\U
1193a0 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 52 65 ri\UriRetriever;........class.Re
1193c0 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 74 61 fResolver.{........protected.sta
1193e0 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 61 74 tic.$depth.=.0;......public.stat
119400 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 64 20 ic.$maxDepth.=.7;.....protected.
119420 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 72 6f 74 65 63 $uriRetriever.=.null;.....protec
119440 74 65 64 20 24 72 6f 6f 74 53 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c ted.$rootSchema.=.null;.....publ
119460 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
119480 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
1194a0 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.
1194c0 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
1194e0 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
119500 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
119520 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
119540 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);.
119560 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
119580 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().
1195a0 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
1195c0 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
1195e0 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-
119600 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;.}................
119620 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,
119640 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::
119660 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 74 68 72 6f $depth.>.self::$maxDepth).{.thro
119680 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 6f 6e 28 4a 53 4f 4e w.new.JsonDecodingException(JSON
1196a0 5f 45 52 52 4f 52 5f 44 45 50 54 48 29 3b 0a 7d 0a 2b 2b 73 65 6c 66 3a 3a 24 64 65 70 74 68 3b _ERROR_DEPTH);.}.++self::$depth;
1196c0 0a 0a 69 66 20 28 21 20 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 2d 2d ..if.(!.is_object($schema)).{.--
1196e0 73 65 6c 66 3a 3a 24 64 65 70 74 68 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c self::$depth;.return;.}..if.(nul
119700 6c 20 3d 3d 3d 20 24 73 6f 75 72 63 65 55 72 69 20 26 26 20 21 20 65 6d 70 74 79 28 24 73 63 68 l.===.$sourceUri.&&.!.empty($sch
119720 65 6d 61 2d 3e 69 64 29 29 20 7b 0a 24 73 6f 75 72 63 65 55 72 69 20 3d 20 24 73 63 68 65 6d 61 ema->id)).{.$sourceUri.=.$schema
119740 2d 3e 69 64 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f ->id;.}..if.(null.===.$this->roo
119760 74 53 63 68 65 6d 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 53 63 68 65 6d 61 20 3d 20 24 tSchema).{.$this->rootSchema.=.$
119780 73 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 52 65 66 28 24 schema;.}....$this->resolveRef($
1197a0 73 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 schema,.$sourceUri);......foreac
1197c0 68 20 28 61 72 72 61 79 28 27 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 27 2c 20 27 61 64 64 h.(array('additionalItems',.'add
1197e0 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 27 2c 20 27 65 78 74 65 6e 64 73 27 2c 20 27 itionalProperties',.'extends',.'
119800 69 74 65 6d 73 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 items').as.$propertyName).{.$thi
119820 73 2d 3e 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 s->resolveProperty($schema,.$pro
119840 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 20 0a 20 0a pertyName,.$sourceUri);.}.......
119860 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 64 69 73 61 6c 6c 6f 77 27 2c 20 27 65 78 74 .foreach.(array('disallow',.'ext
119880 65 6e 64 73 27 2c 20 27 69 74 65 6d 73 27 2c 20 27 74 79 70 65 27 2c 20 27 61 6c 6c 4f 66 27 2c ends',.'items',.'type',.'allOf',
1198a0 20 27 61 6e 79 4f 66 27 2c 20 27 6f 6e 65 4f 66 27 29 20 61 73 20 24 70 72 6f 70 65 72 74 79 4e .'anyOf',.'oneOf').as.$propertyN
1198c0 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 41 72 72 61 79 4f 66 53 63 68 65 ame).{.$this->resolveArrayOfSche
1198e0 6d 61 73 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 6f 75 mas($schema,.$propertyName,.$sou
119900 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 64 65 rceUri);.}....foreach.(array('de
119920 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 27 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 27 pendencies',.'patternProperties'
119940 2c 20 27 70 72 6f 70 65 72 74 69 65 73 27 29 20 61 73 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 ,.'properties').as.$propertyName
119960 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 4f 62 6a 65 63 74 4f 66 53 63 68 65 6d 61 ).{.$this->resolveObjectOfSchema
119980 73 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 6f 75 72 63 s($schema,.$propertyName,.$sourc
1199a0 65 55 72 69 29 3b 0a 7d 0a 0a 2d 2d 73 65 6c 66 3a 3a 24 64 65 70 74 68 3b 0a 7d 0a 0a 0a 0a 0a eUri);.}..--self::$depth;.}.....
1199c0 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 41 72 72 61 .....public.function.resolveArra
1199e0 79 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f 70 65 72 74 79 4e 61 6d yOfSchemas($schema,.$propertyNam
119a00 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 69 66 20 28 21 20 69 73 73 65 74 28 24 73 63 e,.$sourceUri).{.if.(!.isset($sc
119a20 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7c 7c 20 21 20 69 73 5f 61 72 72 hema->$propertyName).||.!.is_arr
119a40 61 79 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 72 65 ay($schema->$propertyName)).{.re
119a60 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 turn;.}..foreach.($schema->$prop
119a80 65 72 74 79 4e 61 6d 65 20 61 73 20 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 29 20 7b 0a 24 ertyName.as.$possiblySchema).{.$
119aa0 74 68 69 73 2d 3e 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 this->resolve($possiblySchema,.$
119ac0 73 6f 75 72 63 65 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 sourceUri);.}.}..........public.
119ae0 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 4f 62 6a 65 63 74 4f 66 53 63 68 65 6d 61 73 28 function.resolveObjectOfSchemas(
119b00 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 6f 75 72 63 65 55 $schema,.$propertyName,.$sourceU
119b20 72 69 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 ri).{.if.(!.isset($schema->$prop
119b40 65 72 74 79 4e 61 6d 65 29 20 7c 7c 20 21 20 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 ertyName).||.!.is_object($schema
119b60 2d 3e 24 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 ->$propertyName)).{.return;.}..f
119b80 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 73 63 68 65 6d 61 2d oreach.(get_object_vars($schema-
119ba0 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 61 73 20 24 70 6f 73 73 69 62 6c 79 53 63 68 65 >$propertyName).as.$possiblySche
119bc0 6d 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 28 24 70 6f 73 73 69 62 6c 79 53 63 ma).{.$this->resolve($possiblySc
119be0 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a hema,.$sourceUri);.}.}..........
119c00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 50 72 6f 70 65 72 74 79 28 public.function.resolveProperty(
119c20 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 6f 75 72 63 65 55 $schema,.$propertyName,.$sourceU
119c40 72 69 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 ri).{.if.(!.isset($schema->$prop
119c60 65 72 74 79 4e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 ertyName)).{.return;.}..$this->r
119c80 65 73 6f 6c 76 65 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 esolve($schema->$propertyName,.$
119ca0 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 sourceUri);.}..........public.fu
119cc0 6e 63 74 69 6f 6e 20 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 nction.resolveRef($schema,.$sour
119ce0 63 65 55 72 69 29 0a 7b 0a 24 72 65 66 20 3d 20 27 24 72 65 66 27 3b 0a 0a 69 66 20 28 65 6d 70 ceUri).{.$ref.=.'$ref';..if.(emp
119d00 74 79 28 24 73 63 68 65 6d 61 2d 3e 24 72 65 66 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a ty($schema->$ref)).{.return;.}..
119d20 24 73 70 6c 69 74 52 65 66 20 3d 20 65 78 70 6c 6f 64 65 28 27 23 27 2c 20 24 73 63 68 65 6d 61 $splitRef.=.explode('#',.$schema
119d40 2d 3e 24 72 65 66 2c 20 32 29 3b 0a 0a 24 72 65 66 44 6f 63 20 3d 20 24 73 70 6c 69 74 52 65 66 ->$ref,.2);..$refDoc.=.$splitRef
119d60 5b 30 5d 3b 0a 24 72 65 66 50 61 74 68 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 63 6f 75 6e 74 28 [0];.$refPath.=.null;.if.(count(
119d80 24 73 70 6c 69 74 52 65 66 29 20 3d 3d 3d 20 32 29 20 7b 0a 24 72 65 66 50 61 74 68 20 3d 20 65 $splitRef).===.2).{.$refPath.=.e
119da0 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 73 70 6c 69 74 52 65 66 5b 31 5d 29 3b 0a 61 72 72 61 79 xplode('/',.$splitRef[1]);.array
119dc0 5f 73 68 69 66 74 28 24 72 65 66 50 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 _shift($refPath);.}..if.(empty($
119de0 72 65 66 44 6f 63 29 20 26 26 20 65 6d 70 74 79 28 24 72 65 66 50 61 74 68 29 29 20 7b 0a 0a 20 refDoc).&&.empty($refPath)).{...
119e00 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 72 65 66 44 6f 63 29 29 20 return;.}..if.(!empty($refDoc)).
119e20 7b 0a 24 72 65 66 53 63 68 65 6d 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 52 65 66 28 24 {.$refSchema.=.$this->fetchRef($
119e40 72 65 66 44 6f 63 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 refDoc,.$sourceUri);.}.else.{.$r
119e60 65 66 53 63 68 65 6d 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 53 63 68 65 6d 61 3b 0a 7d 0a efSchema.=.$this->rootSchema;.}.
119e80 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 72 65 66 50 61 74 68 29 20 7b 0a 24 72 65 66 53 63 .if.(null.!==.$refPath).{.$refSc
119ea0 68 65 6d 61 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 52 65 66 53 65 67 6d 65 6e 74 28 hema.=.$this->resolveRefSegment(
119ec0 24 72 65 66 53 63 68 65 6d 61 2c 20 24 72 65 66 50 61 74 68 29 3b 0a 7d 0a 0a 75 6e 73 65 74 28 $refSchema,.$refPath);.}..unset(
119ee0 24 73 63 68 65 6d 61 2d 3e 24 72 65 66 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 67 65 74 5f $schema->$ref);....foreach.(get_
119f00 6f 62 6a 65 63 74 5f 76 61 72 73 28 24 72 65 66 53 63 68 65 6d 61 29 20 61 73 20 24 70 72 6f 70 object_vars($refSchema).as.$prop
119f20 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 20 3d 20 24 .=>.$value).{.$schema->$prop.=.$
119f40 76 61 6c 75 65 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 value;.}.}........public.functio
119f60 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 69 65 76 65 72 20 24 n.setUriRetriever(UriRetriever.$
119f80 72 65 74 72 69 65 76 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 retriever).{.$this->uriRetriever
119fa0 20 3d 20 24 72 65 74 72 69 65 76 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a .=.$retriever;..return.$this;.}.
119fc0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 52 65 66 53 65 .protected.function.resolveRefSe
119fe0 67 6d 65 6e 74 28 24 64 61 74 61 2c 20 24 70 61 74 68 50 61 72 74 73 29 0a 7b 0a 66 6f 72 65 61 gment($data,.$pathParts).{.forea
11a000 63 68 20 28 24 70 61 74 68 50 61 72 74 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 70 61 74 68 ch.($pathParts.as.$path).{.$path
11a020 20 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 61 72 72 61 79 28 27 7e 31 27 20 3d 3e 20 27 2f .=.strtr($path,.array('~1'.=>.'/
11a040 27 2c 20 27 7e 30 27 20 3d 3e 20 27 7e 27 2c 20 27 25 32 35 27 20 3d 3e 20 27 25 27 29 29 3b 0a ',.'~0'.=>.'~',.'%25'.=>.'%'));.
11a060 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 .if.(is_array($data)).{.$data.=.
11a080 24 64 61 74 61 5b 24 70 61 74 68 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 20 3d 20 24 $data[$path];.}.else.{.$data.=.$
11a0a0 64 61 74 61 2d 3e 7b 24 70 61 74 68 7d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 data->{$path};.}.}..return.$data
11a0c0 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 73 6f 6e 53 63 ;.}.}.<?php.....namespace.JsonSc
11a0e0 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 61 62 73 74 72 hema\Uri\Retrievers;.......abstr
11a100 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 20 69 6d 70 6c act.class.AbstractRetriever.impl
11a120 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 65 0a 7b 0a 0a ements.UriRetrieverInterface.{..
11a140 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 0a 0a 0a 0a 0a ...protected.$contentType;......
11a160 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 79 70 65 28 29 public.function.getContentType()
11a180 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 65 3b 0a 7d 0a .{.return.$this->contentType;.}.
11a1a0 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 73 6f 6e 53 63 }.<?php.........namespace.JsonSc
11a1c0 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 73 6f 6e 53 63 hema\Uri\Retrievers;..use.JsonSc
11a1e0 68 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 hema\Validator;.......class.Curl
11a200 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 0a 70 72 6f .extends.AbstractRetriever.{.pro
11a220 74 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 tected.$messageBody;..public.fun
11a240 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 ction.__construct().{.if.(!funct
11a260 69 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 ion_exists('curl_init')).{.throw
11a280 20 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 .new.\RuntimeException("cURL.not
11a2a0 20 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 .installed");.}.}......public.fu
11a2c0 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 63 68 20 3d 20 63 75 nction.retrieve($uri).{.$ch.=.cu
11a2e0 72 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 rl_init();..curl_setopt($ch,.CUR
11a300 4c 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 LOPT_URL,.$uri);.curl_setopt($ch
11a320 2c 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 ,.CURLOPT_HEADER,.true);.curl_se
11a340 74 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 topt($ch,.CURLOPT_RETURNTRANSFER
11a360 2c 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 ,.true);.curl_setopt($ch,.CURLOP
11a380 54 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 T_HTTPHEADER,.array('Accept:.'..
11a3a0 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 29 29 3b .Validator::SCHEMA_MEDIA_TYPE));
11a3c0 0a 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 ..$response.=.curl_exec($ch);.if
11a3e0 20 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 .(false.===.$response).{.throw.n
11a400 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 6f 75 72 63 ew.\JsonSchema\Exception\Resourc
11a420 65 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 eNotFoundException('JSON.schema.
11a440 6e 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 not.found');.}..$this->fetchMess
11a460 61 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 ageBody($response);.$this->fetch
11a480 43 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 ContentType($response);..curl_cl
11a4a0 6f 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 ose($ch);..return.$this->message
11a4c0 42 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 Body;.}.....private.function.fet
11a4e0 63 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 chMessageBody($response).{.preg_
11a500 6d 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 match("/(?:\r\n){2}(.*)$/ms",.$r
11a520 65 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 esponse,.$match);.$this->message
11a540 42 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 Body.=.$match[1];.}......protect
11a560 65 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 ed.function.fetchContentType($re
11a580 73 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 sponse).{.if.(0.<.preg_match("/C
11a5a0 6f 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 ontent-Type:(\V*)/ims",.$respons
11a5c0 65 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 e,.$match)).{.$this->contentType
11a5e0 20 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 .=.trim($match[1]);..return.true
11a600 3b 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 0a 0a 0a ;.}..return.false;.}.}<?php.....
11a620 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 65 74 ....namespace.JsonSchema\Uri\Ret
11a640 72 69 65 76 65 72 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 rievers;..use.JsonSchema\Excepti
11a660 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 on\ResourceNotFoundException;.us
11a680 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c e.JsonSchema\Validator;.......cl
11a6a0 61 73 73 20 46 69 6c 65 47 65 74 43 6f 6e 74 65 6e 74 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 ass.FileGetContents.extends.Abst
11a6c0 72 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 65 73 73 61 ractRetriever.{.protected.$messa
11a6e0 67 65 42 6f 64 79 3b 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 geBody;......public.function.ret
11a700 72 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 24 63 6f 6e 74 65 78 74 20 3d 20 73 74 72 65 61 6d 5f rieve($uri).{.$context.=.stream_
11a720 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 61 72 72 61 79 28 0a 27 68 74 74 70 27 20 3d 3e 20 context_create(array(.'http'.=>.
11a740 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 47 45 54 27 2c 0a 27 68 65 61 64 65 array(.'method'.=>.'GET',.'heade
11a760 72 27 20 3d 3e 20 22 41 63 63 65 70 74 3a 20 22 20 2e 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 r'.=>."Accept:."...Validator::SC
11a780 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 0a 29 29 29 3b 0a 0a 73 65 74 5f 65 72 72 6f 72 5f HEMA_MEDIA_TYPE.)));..set_error_
11a7a0 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 28 29 20 75 73 65 20 28 24 75 72 69 29 20 7b 0a handler(function().use.($uri).{.
11a7c0 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 64 45 78 63 65 70 74 throw.new.ResourceNotFoundExcept
11a7e0 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 64 20 61 74 20 27 20 ion('JSON.schema.not.found.at.'.
11a800 2e 20 24 75 72 69 29 3b 0a 7d 29 3b 0a 24 72 65 73 70 6f 6e 73 65 20 3d 20 66 69 6c 65 5f 67 65 ..$uri);.});.$response.=.file_ge
11a820 74 5f 63 6f 6e 74 65 6e 74 73 28 24 75 72 69 29 3b 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f t_contents($uri);.restore_error_
11a840 68 61 6e 64 6c 65 72 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 70 6f handler();..if.(false.===.$respo
11a860 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
11a880 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
11a8a0 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.
11a8c0 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).==.'
11a8e0 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).==.
11a900 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
11a920 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
11a940 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
11a960 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(
11a980 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-
11a9a0 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
11a9c0 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
11a9e0 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-
11aa00 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
11aa20 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
11aa40 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
11aa60 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.
11aa80 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
11aaa0 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;.}.}
11aac0 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
11aae0 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
11ab00 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.<.
11ab20 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*)/
11ab40 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
11ab60 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 6e .trim($match[1]);.}.}.}.<?php..n
11ab80 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 65 74 72 69 65 76 65 amespace.JsonSchema\Uri\Retrieve
11aba0 72 73 3b 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 0a rs;..use.JsonSchema\Validator;..
11abc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 65 64 65 66 69 6e 65 64 41 72 72 61 ............class.PredefinedArra
11abe0 79 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 0a 0a 0a y.extends.AbstractRetriever.{...
11ac00 0a 0a 70 72 69 76 61 74 65 20 24 73 63 68 65 6d 61 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ..private.$schemas;........publi
11ac20 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 73 63 c.function.__construct(array.$sc
11ac40 68 65 6d 61 73 2c 20 24 63 6f 6e 74 65 6e 74 54 79 70 65 20 3d 20 56 61 6c 69 64 61 74 6f 72 3a hemas,.$contentType.=.Validator:
11ac60 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 68 :SCHEMA_MEDIA_TYPE).{.$this->sch
11ac80 65 6d 61 73 20 3d 20 24 73 63 68 65 6d 61 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 emas.=.$schemas;.$this->contentT
11aca0 79 70 65 20 3d 20 24 63 6f 6e 74 65 6e 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ype.=.$contentType;.}......publi
11acc0 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 69 66 20 28 c.function.retrieve($uri).{.if.(
11ace0 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 75 72 69 2c 20 24 74 68 69 73 2d 3e 73 !array_key_exists($uri,.$this->s
11ad00 63 68 65 6d 61 73 29 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 chemas)).{.throw.new.\JsonSchema
11ad20 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 63 65 70 \Exception\ResourceNotFoundExcep
11ad40 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 22 tion(sprintf(.'The.JSON.schema."
11ad60 25 73 22 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2e 27 2c 0a 24 75 72 69 0a 29 29 3b 0a 7d 0a %s".was.not.found.',.$uri.));.}.
11ad80 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 73 5b 24 75 72 69 5d 3b 0a 7d 0a .return.$this->schemas[$uri];.}.
11ada0 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 73 6f 6e 53 63 }.<?php.........namespace.JsonSc
11adc0 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 69 6e 74 65 72 hema\Uri\Retrievers;.......inter
11ade0 66 61 63 65 20 55 72 69 52 65 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a face.UriRetrieverInterface.{....
11ae00 0a 0a 0a 70 75 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 ...public.function.retrieve($uri
11ae20 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 43 6f 6e 74 65 );......public.function.getConte
11ae40 6e 74 54 79 70 65 28 29 3b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ntType();.}<?php.........namespa
11ae60 63 65 20 4a 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 ce.JsonSchema\Uri;..use.JsonSche
11ae80 6d 61 5c 45 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 ma\Exception\UriResolverExceptio
11aea0 6e 3b 0a 0a 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 n;.......class.UriResolver.{....
11aec0 0a 0a 0a 70 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 ...public.function.parse($uri).{
11aee0 0a 70 72 65 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 .preg_match('|^(([^:/?#]+):)?(//
11af00 28 5b 5e 2f 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 ([^/?#]*))?([^?#]*)(\?([^#]*))?(
11af20 23 28 2e 2a 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 #(.*))?|',.$uri,.$match);..$comp
11af40 6f 6e 65 6e 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 onents.=.array();.if.(5.<.count(
11af60 24 6d 61 74 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 $match)).{.$components.=.array(.
11af80 27 73 63 68 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 'scheme'.=>.$match[2],.'authorit
11afa0 79 27 20 3d 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 y'.=>.$match[4],.'path'.=>.$matc
11afc0 68 5b 35 5d 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 h[5].);.}..if.(7.<.count($match)
11afe0 29 20 7b 0a 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 ).{.$components['query'].=.$matc
11b000 68 5b 37 5d 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 h[7];.}.if.(9.<.count($match)).{
11b020 0a 24 63 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 6d 61 74 63 .$components['fragment'].=.$matc
11b040 68 5b 39 5d 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 h[9];.}..return.$components;.}..
11b060 0a 0a 0a 0a 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 ......public.function.generate(a
11b080 72 72 61 79 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 rray.$components).{.$uri.=.$comp
11b0a0 6f 6e 65 6e 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 onents['scheme']...'://'....$com
11b0c0 70 6f 6e 65 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 ponents['authority']...$componen
11b0e0 74 73 5b 27 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 ts['path'];..if.(array_key_exist
11b100 73 28 27 71 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 s('query',.$components)).{.$uri.
11b120 2e 3d 20 24 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 .=.$components['query'];.}.if.(a
11b140 72 72 61 79 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 rray_key_exists('fragment',.$com
11b160 70 6f 6e 65 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 ponents)).{.$uri..=.'#'...$compo
11b180 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 75 72 nents['fragment'];.}..return.$ur
11b1a0 69 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 73 i;.}.........public.function.res
11b1c0 6f 6c 76 65 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 olve($uri,.$baseUri.=.null).{.if
11b1e0 20 28 24 75 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 .($uri.==.'').{.return.$baseUri;
11b200 0a 7d 0a 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 73 65 28 24 .}..$components.=.$this->parse($
11b220 75 72 69 29 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 uri);.$path.=.$components['path'
11b240 5d 3b 0a 0a 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 ];..if.(!.empty($components['sch
11b260 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 24 62 61 73 65 43 6f eme'])).{.return.$uri;.}.$baseCo
11b280 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 69 mponents.=.$this->parse($baseUri
11b2a0 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 27 );.$basePath.=.$baseComponents['
11b2c0 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 5d path'];..$baseComponents['path']
11b2e0 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 68 .=.self::combineRelativePathWith
11b300 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 69 66 20 28 BasePath($path,.$basePath);.if.(
11b320 69 73 73 65 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 isset($components['fragment'])).
11b340 7b 0a 24 62 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 {.$baseComponents['fragment'].=.
11b360 24 63 6f 6d 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 $components['fragment'];.}..retu
11b380 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 65 6e rn.$this->generate($baseComponen
11b3a0 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 ts);.}..........public.static.fu
11b3c0 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 68 42 61 nction.combineRelativePathWithBa
11b3e0 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 74 68 29 sePath($relativePath,.$basePath)
11b400 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 61 6c 69 .{.$relativePath.=.self::normali
11b420 7a 65 50 61 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 zePath($relativePath);.if.($rela
11b440 74 69 76 65 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 tivePath.==.'').{.return.$basePa
11b460 74 68 3b 0a 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 th;.}.if.($relativePath{0}.==.'/
11b480 27 29 20 7b 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 ').{.return.$relativePath;.}..$b
11b4a0 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 asePathSegments.=.explode('/',.$
11b4c0 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 3f 28 5c 2e 5c basePath);..preg_match('|^/?(\.\
11b4e0 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 74 68 2c 20 24 ./(?:\./)*)*|',.$relativePath,.$
11b500 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 6e 28 24 6d 61 match);.$numLevelUp.=.strlen($ma
11b520 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 65 6c 55 70 20 tch[0])./3.+.1;.if.($numLevelUp.
11b540 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 29 20 7b 0a 74 >=.count($basePathSegments)).{.t
11b560 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 6f 6e 28 73 70 hrow.new.UriResolverException(sp
11b580 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 49 20 27 25 73 rintf("Unable.to.resolve.URI.'%s
11b5a0 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 65 50 61 74 68 '.from.base.'%s'",.$relativePath
11b5c0 2c 20 24 62 61 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 ,.$basePath));.}..$basePathSegme
11b5e0 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 65 67 6d 65 nts.=.array_slice($basePathSegme
11b600 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 20 3d 20 70 nts,.0,.-$numLevelUp);.$path.=.p
11b620 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 2a 29 2a 7c reg_replace('|^/?(\.\./(\./)*)*|
11b640 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 72 6e 20 69 ',.'',.$relativePath);..return.i
11b660 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 73 29 20 2e mplode('/',.$basePathSegments)..
11b680 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 74 65 20 73 .'/'...$path;.}........private.s
11b6a0 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 28 24 70 61 tatic.function.normalizePath($pa
11b6c0 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 7c 28 28 3f th).{.$path.=.preg_replace('|((?
11b6e0 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 61 74 68 20 <!\.)\./)*|',.'',.$path);.$path.
11b700 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 24 70 61 74 =.preg_replace('|//|',.'/',.$pat
11b720 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 0a 70 75 62 6c 69 63 h);..return.$path;.}......public
11b740 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 24 75 72 69 29 0a 7b 0a 24 63 6f 6d 70 6f .function.isValid($uri).{.$compo
11b760 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 3b 0a 0a 72 65 74 nents.=.$this->parse($uri);..ret
11b780 75 72 6e 20 21 65 6d 70 74 79 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 urn.!empty($components);.}.}.<?p
11b7a0 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 61 5c hp.........namespace.JsonSchema\
11b7c0 55 72 69 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 Uri;..use.JsonSchema\Uri\Retriev
11b7e0 65 72 73 5c 46 69 6c 65 47 65 74 43 6f 6e 74 65 6e 74 73 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 ers\FileGetContents;.use.JsonSch
11b800 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 65 72 49 ema\Uri\Retrievers\UriRetrieverI
11b820 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 nterface;.use.JsonSchema\Validat
11b840 6f 72 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 49 6e 76 or;.use.JsonSchema\Exception\Inv
11b860 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 3b 0a 75 73 alidSchemaMediaTypeException;.us
11b880 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 4a 73 6f 6e 44 65 63 6f 64 e.JsonSchema\Exception\JsonDecod
11b8a0 69 6e 67 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 45 78 63 ingException;.use.JsonSchema\Exc
11b8c0 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 63 65 70 74 69 6f 6e eption\ResourceNotFoundException
11b8e0 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 0a 0a 0a 0a ;.......class.UriRetriever.{....
11b900 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 0a protected.$uriRetriever.=.null;.
11b920 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 63 68 65 6d 61 43 61 63 68 65 20 3d 20 61 72 72 61 .....private.$schemaCache.=.arra
11b940 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e y();.........public.function.con
11b960 66 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 75 72 firmMediaType($uriRetriever,.$ur
11b980 69 29 0a 7b 0a 24 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 i).{.$contentType.=.$uriRetrieve
11b9a0 72 2d 3e 67 65 74 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 r->getContentType();..if.(is_nul
11b9c0 6c 28 24 63 6f 6e 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 l($contentType)).{...return;.}..
11b9e0 69 66 20 28 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 if.(Validator::SCHEMA_MEDIA_TYPE
11ba00 20 3d 3d 3d 20 24 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 .===.$contentType).{.return;.}..
11ba20 69 66 20 28 73 75 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 if.(substr($uri,.0,.23).==.'http
11ba40 3a 2f 2f 6a 73 6f 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 ://json-schema.org/').{...return
11ba60 20 74 72 75 65 3b 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 .true;.}..throw.new.InvalidSchem
11ba80 61 4d 65 64 69 61 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 aMediaTypeException(sprintf('Med
11baa0 69 61 20 74 79 70 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 ia.type.%s.expected',.Validator:
11bac0 3a 53 43 48 45 4d 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 :SCHEMA_MEDIA_TYPE));.}.........
11bae0 0a 70 75 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 .public.function.getUriRetriever
11bb00 28 29 0a 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 ().{.if.(is_null($this->uriRetri
11bb20 65 76 65 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 ever)).{.$this->setUriRetriever(
11bb40 6e 65 77 20 46 69 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 new.FileGetContents);.}..return.
11bb60 24 74 68 69 73 2d 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 $this->uriRetriever;.}..........
11bb80 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 50 6f 69 6e .....public.function.resolvePoin
11bba0 74 65 72 28 24 6a 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 ter($jsonSchema,.$uri).{.$resolv
11bbc0 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 70 61 72 73 65 64 20 er.=.new.UriResolver();.$parsed.
11bbe0 3d 20 24 72 65 73 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 =.$resolver->parse($uri);.if.(em
11bc00 70 74 79 28 24 70 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 pty($parsed['fragment'])).{.retu
11bc20 72 6e 20 24 6a 73 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 rn.$jsonSchema;.}..$path.=.explo
11bc40 64 65 28 27 2f 27 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 de('/',.$parsed['fragment']);.wh
11bc60 69 6c 65 20 28 24 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 ile.($path).{.$pathElement.=.arr
11bc80 61 79 5f 73 68 69 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 ay_shift($path);.if.(!.empty($pa
11bca0 74 68 45 6c 65 6d 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 thElement)).{.$pathElement.=.str
11bcc0 5f 72 65 70 6c 61 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 _replace('~1',.'/',.$pathElement
11bce0 29 3b 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 63 65 28 27 7e );.$pathElement.=.str_replace('~
11bd00 30 27 2c 20 27 7e 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 0',.'~',.$pathElement);.if.(!.em
11bd20 70 74 79 28 24 6a 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 pty($jsonSchema->$pathElement)).
11bd40 7b 0a 24 6a 73 6f 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 {.$jsonSchema.=.$jsonSchema->$pa
11bd60 74 68 45 6c 65 6d 65 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 65 thElement;.}.else.{.throw.new.Re
11bd80 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 28 0a 27 46 72 61 67 6d 65 sourceNotFoundException(.'Fragme
11bda0 6e 74 20 22 27 20 2e 20 24 70 61 72 73 65 64 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 2e 20 27 22 nt."'...$parsed['fragment']...'"
11bdc0 20 6e 6f 74 20 66 6f 75 6e 64 27 0a 2e 20 27 20 69 6e 20 27 20 2e 20 24 75 72 69 0a 29 3b 0a 7d .not.found'...'.in.'...$uri.);.}
11bde0 0a 0a 69 66 20 28 21 20 69 73 5f 6f 62 6a 65 63 74 28 24 6a 73 6f 6e 53 63 68 65 6d 61 29 29 20 ..if.(!.is_object($jsonSchema)).
11be00 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 64 45 78 63 65 {.throw.new.ResourceNotFoundExce
11be20 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 20 24 70 61 74 68 ption(.'Fragment.part."'...$path
11be40 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 27 0a 2e 20 27 20 Element...'".is.no.object.'...'.
11be60 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 72 6e 20 24 6a 73 in.'...$uri.);.}.}.}..return.$js
11be80 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 20 66 75 6e 63 74 onSchema;.}.........public.funct
11bea0 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 69 20 3d 20 6e 75 ion.retrieve($uri,.$baseUri.=.nu
11bec0 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 65 73 6f 6c 76 65 ll).{.$resolver.=.new.UriResolve
11bee0 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 55 72 69 20 3d 20 r();.$resolvedUri.=.$fetchUri.=.
11bf00 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 62 61 73 65 55 72 $resolver->resolve($uri,.$baseUr
11bf20 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 72 2d 3e 70 61 72 i);....$arParts.=.$resolver->par
11bf40 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 74 28 24 61 72 50 se($resolvedUri);.if.(isset($arP
11bf60 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 28 24 61 72 50 61 arts['fragment'])).{.unset($arPa
11bf80 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 69 20 3d 20 24 72 rts['fragment']);.$fetchUri.=.$r
11bfa0 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 29 3b 0a 7d 0a 0a esolver->generate($arParts);.}..
11bfc0 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 63 68 65 6d 61 28 $jsonSchema.=.$this->loadSchema(
11bfe0 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 20 3d 20 24 74 68 $fetchUri);....$jsonSchema.=.$th
11c000 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 68 65 6d 61 2c 20 is->resolvePointer($jsonSchema,.
11c020 24 72 65 73 6f 6c 76 65 64 55 72 69 29 3b 0a 0a 69 66 20 28 24 6a 73 6f 6e 53 63 68 65 6d 61 20 $resolvedUri);..if.($jsonSchema.
11c040 69 6e 73 74 61 6e 63 65 6f 66 20 5c 73 74 64 43 6c 61 73 73 29 20 7b 0a 24 6a 73 6f 6e 53 63 68 instanceof.\stdClass).{.$jsonSch
11c060 65 6d 61 2d 3e 69 64 20 3d 20 24 72 65 73 6f 6c 76 65 64 55 72 69 3b 0a 7d 0a 0a 72 65 74 75 72 ema->id.=.$resolvedUri;.}..retur
11c080 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 0a 70 72 6f 74 65 63 n.$jsonSchema;.}..........protec
11c0a0 74 65 64 20 66 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 ted.function.loadSchema($fetchUr
11c0c0 69 29 0a 7b 0a 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 i).{.if.(isset($this->schemaCach
11c0e0 65 5b 24 66 65 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 e[$fetchUri])).{.return.$this->s
11c100 63 68 65 6d 61 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 chemaCache[$fetchUri];.}..$uriRe
11c120 74 72 69 65 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 triever.=.$this->getUriRetriever
11c140 28 29 3b 0a 24 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 ();.$contents.=.$this->uriRetrie
11c160 76 65 72 2d 3e 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 ver->retrieve($fetchUri);.$this-
11c180 3e 63 6f 6e 66 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 >confirmMediaType($uriRetriever,
11c1a0 20 24 66 65 74 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 .$fetchUri);.$jsonSchema.=.json_
11c1c0 64 65 63 6f 64 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 decode($contents);..if.(JSON_ERR
11c1e0 4f 52 5f 4e 4f 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 OR_NONE.<.$error.=.json_last_err
11c200 6f 72 28 29 29 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 or()).{.throw.new.JsonDecodingEx
11c220 63 65 70 74 69 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 ception($error);.}..$this->schem
11c240 61 43 61 63 68 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 aCache[$fetchUri].=.$jsonSchema;
11c260 0a 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 ..return.$jsonSchema;.}........p
11c280 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 76 65 72 28 55 ublic.function.setUriRetriever(U
11c2a0 72 69 52 65 74 72 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 riRetrieverInterface.$uriRetriev
11c2c0 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
11c2e0 52 65 74 72 69 65 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 Retriever;..return.$this;.}.....
11c300 0a 0a 0a 70 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 ...public.function.parse($uri).{
11c320 0a 70 72 65 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 .preg_match('|^(([^:/?#]+):)?(//
11c340 28 5b 5e 2f 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 ([^/?#]*))?([^?#]*)(\?([^#]*))?(
11c360 23 28 2e 2a 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 #(.*))?|',.$uri,.$match);..$comp
11c380 6f 6e 65 6e 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 onents.=.array();.if.(5.<.count(
11c3a0 24 6d 61 74 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 $match)).{.$components.=.array(.
11c3c0 27 73 63 68 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 'scheme'.=>.$match[2],.'authorit
11c3e0 79 27 20 3d 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 y'.=>.$match[4],.'path'.=>.$matc
11c400 68 5b 35 5d 0a 29 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 h[5].);.}..if.(7.<.count($match)
11c420 29 20 7b 0a 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 ).{.$components['query'].=.$matc
11c440 68 5b 37 5d 3b 0a 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 h[7];.}..if.(9.<.count($match)).
11c460 7b 0a 24 63 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 6d 61 74 {.$components['fragment'].=.$mat
11c480 63 68 5b 39 5d 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 ch[9];.}..return.$components;.}.
11c4a0 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 6e 65 72 61 74 65 28 .......public.function.generate(
11c4c0 61 72 72 61 79 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 array.$components).{.$uri.=.$com
11c4e0 70 6f 6e 65 6e 74 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 ponents['scheme']...'://'...$com
11c500 70 6f 6e 65 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 ponents['authority']...$componen
11c520 74 73 5b 27 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 ts['path'];..if.(array_key_exist
11c540 73 28 27 71 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 s('query',.$components)).{.$uri.
11c560 2e 3d 20 24 63 6f 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 .=.$components['query'];.}..if.(
11c580 61 72 72 61 79 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 array_key_exists('fragment',.$co
11c5a0 6d 70 6f 6e 65 6e 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 mponents)).{.$uri..=.$components
11c5c0 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 0a ['fragment'];.}..return.$uri;.}.
11c5e0 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 28 ........public.function.resolve(
11c600 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 24 63 6f 6d 70 6f 6e $uri,.$baseUri.=.null).{.$compon
11c620 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 3b 0a 24 70 61 74 68 ents.=.$this->parse($uri);.$path
11c640 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 69 66 20 28 28 61 72 .=.$components['path'];..if.((ar
11c660 72 61 79 5f 6b 65 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 ray_key_exists('scheme',.$compon
11c680 65 6e 74 73 29 29 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 ents)).&&.('http'.===.$component
11c6a0 73 5b 27 73 63 68 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 s['scheme'])).{.return.$uri;.}..
11c6c0 24 62 61 73 65 43 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 $baseComponents.=.$this->parse($
11c6e0 62 61 73 65 55 72 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 baseUri);.$basePath.=.$baseCompo
11c700 6e 65 6e 74 73 5b 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 nents['path'];..$baseComponents[
11c720 27 70 61 74 68 27 5d 20 3d 20 55 72 69 52 65 73 6f 6c 76 65 72 3a 3a 63 6f 6d 62 69 6e 65 52 65 'path'].=.UriResolver::combineRe
11c740 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 42 61 73 65 50 61 74 68 28 24 70 61 74 68 2c 20 24 62 lativePathWithBasePath($path,.$b
11c760 61 73 65 50 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 asePath);..return.$this->generat
11c780 65 28 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 e($baseComponents);.}......publi
11c7a0 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 24 75 72 69 29 0a 7b 0a 24 63 6f 6d 70 c.function.isValid($uri).{.$comp
11c7c0 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 3b 0a 0a 72 65 onents.=.$this->parse($uri);..re
11c7e0 74 75 72 6e 20 21 65 6d 70 74 79 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 3c 3f turn.!empty($components);.}.}.<?
11c800 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 61 php.........namespace.JsonSchema
11c820 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c 53 63 ;..use.JsonSchema\Constraints\Sc
11c840 68 65 6d 61 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 hemaConstraint;.use.JsonSchema\C
11c860 6f 6e 73 74 72 61 69 6e 74 73 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 onstraints\Constraint;.........c
11c880 6c 61 73 73 20 56 61 6c 69 64 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e lass.Validator.extends.Constrain
11c8a0 74 0a 7b 0a 63 6f 6e 73 74 20 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 20 3d 20 27 61 t.{.const.SCHEMA_MEDIA_TYPE.=.'a
11c8c0 70 70 6c 69 63 61 74 69 6f 6e 2f 73 63 68 65 6d 61 2b 6a 73 6f 6e 27 3b 0a 0a 0a 0a 0a 0a 0a 0a pplication/schema+json';........
11c8e0 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 65 2c 20 24 .public.function.check($value,.$
11c900 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 schema.=.null,.$path.=.null,.$i.
11c920 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 63 68 65 6d =.null).{.$validator.=.new.Schem
11c940 61 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 74 aConstraint($this->checkMode,.$t
11c960 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 3e his->uriRetriever);.$validator->
11c980 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 29 3b 0a 0a 24 74 68 69 73 2d 3e check($value,.$schema);..$this->
11c9a0 61 64 64 45 72 72 6f 72 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 76 61 6c 69 64 61 74 6f addErrors(array_unique($validato
11c9c0 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 29 3b 0a r->getErrors(),.SORT_REGULAR));.
11c9e0 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 35 20 43 6f 6d 70 6f 73 65 72 0a }.}.Copyright.(C).2015.Composer.
11ca00 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
11ca20 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
11ca40 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 20 6f 66 0a 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 aining.a.copy.of.this.software.a
11ca60 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
11ca80 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 20 69 6e 0a 74 s.(the."Software"),.to.deal.in.t
11caa0 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,
11cac0 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
11cae0 65 20 72 69 67 68 74 73 20 74 6f 0a 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
11cb00 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
11cb20 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 20 63 6f 70 69 65 73 0a 6f 66 20 74 68 65 cense,.and/or.sell.copies.of.the
11cb40 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
11cb60 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
11cb80 65 64 20 74 6f 20 64 6f 0a 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
11cba0 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
11cbc0 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
11cbe0 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
11cc00 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
11cc20 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.
11cc40 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
11cc60 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
11cc80 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
11cca0 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
11ccc0 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.
11cce0 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.
11cd00 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
11cd20 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
11cd40 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
11cd60 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
11cd80 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
11cda0 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.
11cdc0 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.
11cde0 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 20 54 48 45 0a 53 4f 46 54 57 41 52 45 2e 0a OTHER.DEALINGS.IN.THE.SOFTWARE..
11ce00 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 43 6f 6d 70 6f 73 <?php...........namespace.Compos
11ce20 65 72 5c 53 70 64 78 3b 0a 0a 63 6c 61 73 73 20 53 70 64 78 4c 69 63 65 6e 73 65 73 0a 7b 0a 0a er\Spdx;..class.SpdxLicenses.{..
11ce40 63 6f 6e 73 74 20 4c 49 43 45 4e 53 45 53 5f 46 49 4c 45 20 3d 20 27 73 70 64 78 2d 6c 69 63 65 const.LICENSES_FILE.=.'spdx-lice
11ce60 6e 73 65 73 2e 6a 73 6f 6e 27 3b 0a 0a 0a 63 6f 6e 73 74 20 45 58 43 45 50 54 49 4f 4e 53 5f 46 nses.json';...const.EXCEPTIONS_F
11ce80 49 4c 45 20 3d 20 27 73 70 64 78 2d 65 78 63 65 70 74 69 6f 6e 73 2e 6a 73 6f 6e 27 3b 0a 0a 0a ILE.=.'spdx-exceptions.json';...
11cea0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 69 63 65 6e 73 65 73 3b 0a 0a ............private.$licenses;..
11cec0 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 69 63 65 6e 73 65 73 45 78 70 72 65 73 73 69 6f 6e 3b 0a ...private.$licensesExpression;.
11cee0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 78 63 65 70 74 69 6f 6e ..............private.$exception
11cf00 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 78 63 65 70 74 69 6f 6e 73 45 78 70 72 65 73 s;.....private.$exceptionsExpres
11cf20 73 69 6f 6e 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 sion;..public.function.__constru
11cf40 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 4c 69 63 65 6e 73 65 73 28 29 3b 0a 24 74 ct().{.$this->loadLicenses();.$t
11cf60 68 69 73 2d 3e 6c 6f 61 64 45 78 63 65 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a his->loadExceptions();.}........
11cf80 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 65 ......public.function.getLicense
11cfa0 42 79 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 69 66 20 28 ByIdentifier($identifier).{.if.(
11cfc0 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 5b 24 69 64 65 6e 74 69 66 69 !isset($this->licenses[$identifi
11cfe0 65 72 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 74 er])).{.return;.}..$license.=.$t
11d000 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 24 6c 69 63 his->licenses[$identifier];.$lic
11d020 65 6e 73 65 5b 5d 20 3d 20 27 68 74 74 70 73 3a 2f 2f 73 70 64 78 2e 6f 72 67 2f 6c 69 63 65 6e ense[].=.'https://spdx.org/licen
11d040 73 65 73 2f 27 20 2e 20 24 69 64 65 6e 74 69 66 69 65 72 20 2e 20 27 2e 68 74 6d 6c 23 6c 69 63 ses/'...$identifier...'.html#lic
11d060 65 6e 73 65 54 65 78 74 27 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a enseText';..return.$license;.}..
11d080 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 45 ............public.function.getE
11d0a0 78 63 65 70 74 69 6f 6e 42 79 49 64 65 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 xceptionByIdentifier($identifier
11d0c0 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 ).{.if.(!isset($this->exceptions
11d0e0 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6c 69 [$identifier])).{.return;.}..$li
11d100 63 65 6e 73 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 5b 24 69 64 65 6e 74 cense.=.$this->exceptions[$ident
11d120 69 66 69 65 72 5d 3b 0a 24 6c 69 63 65 6e 73 65 5b 5d 20 3d 20 27 68 74 74 70 73 3a 2f 2f 73 70 ifier];.$license[].=.'https://sp
11d140 64 78 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 27 20 2e 20 24 69 64 65 6e 74 69 66 69 65 72 20 dx.org/licenses/'...$identifier.
11d160 2e 20 27 2e 68 74 6d 6c 23 6c 69 63 65 6e 73 65 45 78 63 65 70 74 69 6f 6e 54 65 78 74 27 3b 0a ..'.html#licenseExceptionText';.
11d180 0a 72 65 74 75 72 6e 20 24 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .return.$license;.}.........publ
11d1a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 65 6e 74 69 66 69 65 72 42 79 4e 61 6d 65 28 ic.function.getIdentifierByName(
11d1c0 24 6e 61 6d 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 $name).{.foreach.($this->license
11d1e0 73 20 61 73 20 24 69 64 65 6e 74 69 66 69 65 72 20 3d 3e 20 24 6c 69 63 65 6e 73 65 44 61 74 61 s.as.$identifier.=>.$licenseData
11d200 29 20 7b 0a 69 66 20 28 24 6c 69 63 65 6e 73 65 44 61 74 61 5b 30 5d 20 3d 3d 3d 20 24 6e 61 6d ).{.if.($licenseData[0].===.$nam
11d220 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 7d 0a 0a 66 6f e).{.return.$identifier;.}.}..fo
11d240 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 20 61 73 20 24 69 64 65 reach.($this->exceptions.as.$ide
11d260 6e 74 69 66 69 65 72 20 3d 3e 20 24 6c 69 63 65 6e 73 65 44 61 74 61 29 20 7b 0a 69 66 20 28 24 ntifier.=>.$licenseData).{.if.($
11d280 6c 69 63 65 6e 73 65 44 61 74 61 5b 30 5d 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 licenseData[0].===.$name).{.retu
11d2a0 72 6e 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$identifier;.}.}.}.........pu
11d2c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4f 73 69 41 70 70 72 6f 76 65 64 42 79 49 64 65 blic.function.isOsiApprovedByIde
11d2e0 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ntifier($identifier).{.return.$t
11d300 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 5b 31 5d 3b 0a 7d his->licenses[$identifier][1];.}
11d320 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 ........public.function.validate
11d340 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 6c 69 63 65 6e ($license).{.if.(is_array($licen
11d360 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 6c 69 63 65 6e 73 65 29 3b se)).{.$count.=.count($license);
11d380 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d 20 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 .if.($count.!==.count(array_filt
11d3a0 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 73 5f 73 74 72 69 6e 67 27 29 29 29 20 7b 0a 74 68 er($license,.'is_string'))).{.th
11d3c0 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
11d3e0 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 20 65 78 70 65 63 74 65 64 2e 27 29 3b n('Array.of.strings.expected.');
11d400 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 63 6f 75 6e 74 20 3e 20 31 20 3f 20 27 28 27 20 2e .}.$license.=.$count.>.1.?.'('..
11d420 20 69 6d 70 6c 6f 64 65 28 27 20 4f 52 20 27 2c 20 24 6c 69 63 65 6e 73 65 29 20 2e 20 27 29 27 .implode('.OR.',.$license)...')'
11d440 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 0a .:.(string).reset($license);.}..
11d460 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 74 68 72 6f if.(!is_string($license)).{.thro
11d480 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(
11d4a0 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 74 72 69 6e 67 20 65 78 70 65 63 74 sprintf(.'Array.or.String.expect
11d4c0 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 0a 67 65 74 74 79 70 65 28 24 6c 69 63 65 6e 73 65 ed,.%s.given.',.gettype($license
11d4e0 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 ).));.}..return.$this->isValidLi
11d500 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 censeString($license);.}.....pub
11d520 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 73 6f 75 72 63 65 73 lic.static.function.getResources
11d540 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 20 Dir().{.return.dirname(__DIR__).
11d560 2e 20 27 2f 72 65 73 27 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f ..'/res';.}..private.function.lo
11d580 61 64 4c 69 63 65 6e 73 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 adLicenses().{.if.(null.===.$thi
11d5a0 73 2d 3e 6c 69 63 65 6e 73 65 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f s->licenses).{.$json.=.file_get_
11d5c0 63 6f 6e 74 65 6e 74 73 28 73 65 6c 66 3a 3a 67 65 74 52 65 73 6f 75 72 63 65 73 44 69 72 28 29 contents(self::getResourcesDir()
11d5e0 20 2e 20 27 2f 27 20 2e 20 73 65 6c 66 3a 3a 4c 49 43 45 4e 53 45 53 5f 46 49 4c 45 29 3b 0a 24 ...'/'...self::LICENSES_FILE);.$
11d600 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6a 73 this->licenses.=.json_decode($js
11d620 6f 6e 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e on,.true);.}.}..private.function
11d640 20 6c 6f 61 64 45 78 63 65 70 74 69 6f 6e 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d .loadExceptions().{.if.(null.===
11d660 20 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 .$this->exceptions).{.$json.=.fi
11d680 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 73 65 6c 66 3a 3a 67 65 74 52 65 73 6f 75 72 63 le_get_contents(self::getResourc
11d6a0 65 73 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 73 65 6c 66 3a 3a 45 58 43 45 50 54 49 4f 4e 53 esDir()...'/'...self::EXCEPTIONS
11d6c0 5f 46 49 4c 45 29 3b 0a 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 20 3d 20 6a 73 6f 6e _FILE);.$this->exceptions.=.json
11d6e0 5f 64 65 63 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 _decode($json,.true);.}.}.....pr
11d700 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 73 45 78 70 72 65 73 ivate.function.getLicensesExpres
11d720 73 69 6f 6e 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 6c 69 63 sion().{.if.(null.===.$this->lic
11d740 65 6e 73 65 73 45 78 70 72 65 73 73 69 6f 6e 29 20 7b 0a 24 6c 69 63 65 6e 73 65 73 20 3d 20 61 ensesExpression).{.$licenses.=.a
11d760 72 72 61 79 5f 6d 61 70 28 27 70 72 65 67 5f 71 75 6f 74 65 27 2c 20 61 72 72 61 79 5f 6b 65 79 rray_map('preg_quote',.array_key
11d780 73 28 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 29 29 3b 0a 72 73 6f 72 74 28 24 6c 69 63 65 s($this->licenses));.rsort($lice
11d7a0 6e 73 65 73 29 3b 0a 24 6c 69 63 65 6e 73 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 nses);.$licenses.=.implode('|',.
11d7c0 24 6c 69 63 65 6e 73 65 73 29 3b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 45 78 70 72 65 $licenses);.$this->licensesExpre
11d7e0 73 73 69 6f 6e 20 3d 20 24 6c 69 63 65 6e 73 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 ssion.=.$licenses;.}..return.$th
11d800 69 73 2d 3e 6c 69 63 65 6e 73 65 73 45 78 70 72 65 73 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 is->licensesExpression;.}.....pr
11d820 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 63 65 70 74 69 6f 6e 73 45 78 70 72 ivate.function.getExceptionsExpr
11d840 65 73 73 69 6f 6e 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 65 ession().{.if.(null.===.$this->e
11d860 78 63 65 70 74 69 6f 6e 73 45 78 70 72 65 73 73 69 6f 6e 29 20 7b 0a 24 65 78 63 65 70 74 69 6f xceptionsExpression).{.$exceptio
11d880 6e 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 27 70 72 65 67 5f 71 75 6f 74 65 27 2c 20 61 72 72 ns.=.array_map('preg_quote',.arr
11d8a0 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 29 29 3b 0a 72 73 6f ay_keys($this->exceptions));.rso
11d8c0 72 74 28 24 65 78 63 65 70 74 69 6f 6e 73 29 3b 0a 24 65 78 63 65 70 74 69 6f 6e 73 20 3d 20 69 rt($exceptions);.$exceptions.=.i
11d8e0 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 65 78 63 65 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d mplode('|',.$exceptions);.$this-
11d900 3e 65 78 63 65 70 74 69 6f 6e 73 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 24 65 78 63 65 70 74 69 >exceptionsExpression.=.$excepti
11d920 6f 6e 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 73 ons;.}..return.$this->exceptions
11d940 45 78 70 72 65 73 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e Expression;.}........private.fun
11d960 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 ction.isValidLicenseString($lice
11d980 6e 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 73 nse).{.if.(isset($this->licenses
11d9a0 5b 24 6c 69 63 65 6e 73 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 [$license])).{.return.true;.}..$
11d9c0 6c 69 63 65 6e 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 69 63 65 6e 73 65 73 45 78 70 licenses.=.$this->getLicensesExp
11d9e0 72 65 73 73 69 6f 6e 28 29 3b 0a 24 65 78 63 65 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e ression();.$exceptions.=.$this->
11da00 67 65 74 45 78 63 65 70 74 69 6f 6e 73 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a 0a 24 72 65 67 getExceptionsExpression();..$reg
11da20 65 78 20 3d 20 3c 3c 3c 52 45 47 45 58 0a 7b 0a 28 3f 28 44 45 46 49 4e 45 29 0a 20 20 20 20 23 ex.=.<<<REGEX.{.(?(DEFINE).....#
11da40 20 69 64 73 74 72 69 6e 67 3a 20 31 2a 28 20 41 4c 50 48 41 20 2f 20 44 49 47 49 54 20 2f 20 2d .idstring:.1*(.ALPHA./.DIGIT./.-
11da60 20 2f 20 2e 20 29 0a 20 20 20 20 28 3f 3c 69 64 73 74 72 69 6e 67 3e 5b 5c 70 4c 5c 70 4e 2e 2d ./...).....(?<idstring>[\pL\pN.-
11da80 5d 7b 31 2c 7d 29 0a 0a 20 20 20 20 23 20 6c 69 63 65 6e 73 65 2d 69 64 3a 20 74 61 6b 65 6e 20 ]{1,})......#.license-id:.taken.
11daa0 66 72 6f 6d 20 6c 69 73 74 0a 20 20 20 20 28 3f 3c 6c 69 63 65 6e 73 65 69 64 3e 24 7b 6c 69 63 from.list.....(?<licenseid>${lic
11dac0 65 6e 73 65 73 7d 29 0a 0a 20 20 20 20 23 20 6c 69 63 65 6e 73 65 2d 65 78 63 65 70 74 69 6f 6e enses})......#.license-exception
11dae0 2d 69 64 3a 20 74 61 6b 65 6e 20 66 72 6f 6d 20 6c 69 73 74 0a 20 20 20 20 28 3f 3c 6c 69 63 65 -id:.taken.from.list.....(?<lice
11db00 6e 73 65 65 78 63 65 70 74 69 6f 6e 69 64 3e 24 7b 65 78 63 65 70 74 69 6f 6e 73 7d 29 0a 0a 20 nseexceptionid>${exceptions})...
11db20 20 20 20 23 20 6c 69 63 65 6e 73 65 2d 72 65 66 3a 20 5b 44 6f 63 75 6d 65 6e 74 52 65 66 2d 31 ...#.license-ref:.[DocumentRef-1
11db40 2a 28 69 64 73 74 72 69 6e 67 29 3a 5d 4c 69 63 65 6e 73 65 52 65 66 2d 31 2a 28 69 64 73 74 72 *(idstring):]LicenseRef-1*(idstr
11db60 69 6e 67 29 0a 20 20 20 20 28 3f 3c 6c 69 63 65 6e 73 65 72 65 66 3e 28 3f 3a 44 6f 63 75 6d 65 ing).....(?<licenseref>(?:Docume
11db80 6e 74 52 65 66 2d 28 3f 26 69 64 73 74 72 69 6e 67 29 3a 29 3f 4c 69 63 65 6e 73 65 52 65 66 2d ntRef-(?&idstring):)?LicenseRef-
11dba0 28 3f 26 69 64 73 74 72 69 6e 67 29 29 0a 0a 20 20 20 20 23 20 73 69 6d 70 6c 65 2d 65 78 70 72 (?&idstring))......#.simple-expr
11dbc0 65 73 73 73 69 6f 6e 3a 20 6c 69 63 65 6e 73 65 2d 69 64 20 2f 20 6c 69 63 65 6e 73 65 2d 69 64 esssion:.license-id./.license-id
11dbe0 2b 20 2f 20 6c 69 63 65 6e 73 65 2d 72 65 66 0a 20 20 20 20 28 3f 3c 73 69 6d 70 6c 65 5f 65 78 +./.license-ref.....(?<simple_ex
11dc00 70 72 65 73 73 69 6f 6e 3e 28 3f 26 6c 69 63 65 6e 73 65 69 64 29 5c 2b 3f 20 7c 20 28 3f 26 6c pression>(?&licenseid)\+?.|.(?&l
11dc20 69 63 65 6e 73 65 69 64 29 20 7c 20 28 3f 26 6c 69 63 65 6e 73 65 72 65 66 29 29 0a 0a 20 20 20 icenseid).|.(?&licenseref)).....
11dc40 20 23 20 63 6f 6d 70 6f 75 6e 64 2d 65 78 70 72 65 73 73 69 6f 6e 3a 20 31 2a 28 0a 20 20 20 20 .#.compound-expression:.1*(.....
11dc60 23 20 20 20 73 69 6d 70 6c 65 2d 65 78 70 72 65 73 73 69 6f 6e 20 2f 0a 20 20 20 20 23 20 20 20 #...simple-expression./.....#...
11dc80 73 69 6d 70 6c 65 2d 65 78 70 72 65 73 73 69 6f 6e 20 57 49 54 48 20 6c 69 63 65 6e 73 65 2d 65 simple-expression.WITH.license-e
11dca0 78 63 65 70 74 69 6f 6e 2d 69 64 20 2f 0a 20 20 20 20 23 20 20 20 63 6f 6d 70 6f 75 6e 64 2d 65 xception-id./.....#...compound-e
11dcc0 78 70 72 65 73 73 69 6f 6e 20 41 4e 44 20 63 6f 6d 70 6f 75 6e 64 2d 65 78 70 72 65 73 73 69 6f xpression.AND.compound-expressio
11dce0 6e 20 2f 0a 20 20 20 20 23 20 20 20 63 6f 6d 70 6f 75 6e 64 2d 65 78 70 72 65 73 73 69 6f 6e 20 n./.....#...compound-expression.
11dd00 4f 52 20 63 6f 6d 70 6f 75 6e 64 2d 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 23 20 29 20 2f OR.compound-expression.....#.)./
11dd20 20 28 20 63 6f 6d 70 6f 75 6e 64 2d 65 78 70 72 65 73 73 69 6f 6e 20 29 20 29 0a 20 20 20 20 28 .(.compound-expression.).).....(
11dd40 3f 3c 63 6f 6d 70 6f 75 6e 64 5f 68 65 61 64 3e 0a 20 20 20 20 20 20 20 20 28 3f 26 73 69 6d 70 ?<compound_head>.........(?&simp
11dd60 6c 65 5f 65 78 70 72 65 73 73 69 6f 6e 29 20 28 20 5c 73 2b 20 28 3f 3a 77 69 74 68 7c 57 49 54 le_expression).(.\s+.(?:with|WIT
11dd80 48 29 20 5c 73 2b 20 28 3f 26 6c 69 63 65 6e 73 65 65 78 63 65 70 74 69 6f 6e 69 64 29 29 3f 0a H).\s+.(?&licenseexceptionid))?.
11dda0 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5c 28 20 5c 73 2a 20 28 3f 26 63 6f 6d 70 6f 75 6e 64 ............|.\(.\s*.(?&compound
11ddc0 5f 65 78 70 72 65 73 73 69 6f 6e 29 20 5c 73 2a 20 5c 29 0a 20 20 20 20 29 0a 20 20 20 20 28 3f _expression).\s*.\).....).....(?
11dde0 3c 63 6f 6d 70 6f 75 6e 64 5f 65 78 70 72 65 73 73 69 6f 6e 3e 0a 20 20 20 20 20 20 20 20 28 3f <compound_expression>.........(?
11de00 26 63 6f 6d 70 6f 75 6e 64 5f 68 65 61 64 29 20 28 3f 3a 20 5c 73 2b 20 28 3f 3a 61 6e 64 7c 41 &compound_head).(?:.\s+.(?:and|A
11de20 4e 44 7c 6f 72 7c 4f 52 29 20 5c 73 2b 20 28 3f 26 63 6f 6d 70 6f 75 6e 64 5f 65 78 70 72 65 73 ND|or|OR).\s+.(?&compound_expres
11de40 73 69 6f 6e 29 29 3f 0a 20 20 20 20 29 0a 0a 20 20 20 20 23 20 6c 69 63 65 6e 73 65 2d 65 78 70 sion))?.....)......#.license-exp
11de60 72 65 73 73 69 6f 6e 3a 20 31 2a 31 28 73 69 6d 70 6c 65 2d 65 78 70 72 65 73 73 69 6f 6e 20 2f ression:.1*1(simple-expression./
11de80 20 63 6f 6d 70 6f 75 6e 64 2d 65 78 70 72 65 73 73 69 6f 6e 29 0a 20 20 20 20 28 3f 3c 6c 69 63 .compound-expression).....(?<lic
11dea0 65 6e 73 65 5f 65 78 70 72 65 73 73 69 6f 6e 3e 28 3f 26 63 6f 6d 70 6f 75 6e 64 5f 65 78 70 72 ense_expression>(?&compound_expr
11dec0 65 73 73 69 6f 6e 29 20 7c 20 28 3f 26 73 69 6d 70 6c 65 5f 65 78 70 72 65 73 73 69 6f 6e 29 29 ession).|.(?&simple_expression))
11dee0 0a 29 20 23 20 65 6e 64 20 6f 66 20 64 65 66 69 6e 65 0a 0a 5e 28 4e 4f 4e 45 20 7c 20 4e 4f 41 .).#.end.of.define..^(NONE.|.NOA
11df00 53 53 45 52 54 49 4f 4e 20 7c 20 28 3f 26 6c 69 63 65 6e 73 65 5f 65 78 70 72 65 73 73 69 6f 6e SSERTION.|.(?&license_expression
11df20 29 29 24 0a 7d 78 0a 52 45 47 45 58 3b 0a 0a 24 6d 61 74 63 68 20 3d 20 70 72 65 67 5f 6d 61 74 ))$.}x.REGEX;..$match.=.preg_mat
11df40 63 68 28 24 72 65 67 65 78 2c 20 24 6c 69 63 65 6e 73 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d ch($regex,.$license);..if.(0.===
11df60 20 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 .$match).{.return.false;.}..if.(
11df80 66 61 6c 73 65 20 3d 3d 3d 20 24 6d 61 74 63 68 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 false.===.$match).{.throw.new.\R
11dfa0 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 67 65 78 20 66 61 69 6c 65 64 20 74 6f untimeException('Regex.failed.to
11dfc0 20 63 6f 6d 70 69 6c 65 2f 72 75 6e 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b .compile/run.');.}..return.true;
11dfe0 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 35 20 43 6f 6d 70 6f 73 65 72 .}.}.Copyright.(C).2015.Composer
11e000 0a 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 ..Permission.is.hereby.granted,.
11e020 66 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 free.of.charge,.to.any.person.ob
11e040 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 20 6f 66 0a 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 taining.a.copy.of.this.software.
11e060 61 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 and.associated.documentation.fil
11e080 65 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 20 69 6e 0a es.(the."Software"),.to.deal.in.
11e0a0 74 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 the.Software.without.restriction
11e0c0 2c 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 ,.including.without.limitation.t
11e0e0 68 65 20 72 69 67 68 74 73 20 74 6f 0a 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 he.rights.to.use,.copy,.modify,.
11e100 6d 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 merge,.publish,.distribute,.subl
11e120 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 20 63 6f 70 69 65 73 0a 6f 66 20 74 68 icense,.and/or.sell.copies.of.th
11e140 65 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 e.Software,.and.to.permit.person
11e160 73 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 s.to.whom.the.Software.is.furnis
11e180 68 65 64 20 74 6f 20 64 6f 0a 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c hed.to.do.so,.subject.to.the.fol
11e1a0 6c 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 lowing.conditions:..The.above.co
11e1c0 70 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 pyright.notice.and.this.permissi
11e1e0 6f 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 on.notice.shall.be.included.in.a
11e200 6c 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 ll.copies.or.substantial.portion
11e220 73 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 s.of.the.Software...THE.SOFTWARE
11e240 20 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 .IS.PROVIDED."AS.IS",.WITHOUT.WA
11e260 52 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 RRANTY.OF.ANY.KIND,.EXPRESS.OR.I
11e280 4d 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 MPLIED,.INCLUDING.BUT.NOT.LIMITE
11e2a0 44 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 D.TO.THE.WARRANTIES.OF.MERCHANTA
11e2c0 42 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 BILITY,.FITNESS.FOR.A.PARTICULAR
11e2e0 20 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 .PURPOSE.AND.NONINFRINGEMENT..IN
11e300 20 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 .NO.EVENT.SHALL.THE.AUTHORS.OR.C
11e320 4f 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 OPYRIGHT.HOLDERS.BE.LIABLE.FOR.A
11e340 4e 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 NY.CLAIM,.DAMAGES.OR.OTHER.LIABI
11e360 4c 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 LITY,.WHETHER.IN.AN.ACTION.OF.CO
11e380 4e 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 NTRACT,.TORT.OR.OTHERWISE,.ARISI
11e3a0 4e 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 NG.FROM,.OUT.OF.OR.IN.CONNECTION
11e3c0 20 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 .WITH.THE.SOFTWARE.OR.THE.USE.OR
11e3e0 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 20 54 48 45 0a 53 4f 46 54 57 41 52 45 2e .OTHER.DEALINGS.IN.THE.SOFTWARE.
11e400 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 43 6f 6d 70 6f .<?php...........namespace.Compo
11e420 73 65 72 5c 53 65 6d 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 ser\Semver;..use.Composer\Semver
11e440 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 43 \Constraint\Constraint;..class.C
11e460 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 omparator.{.........public.stati
11e480 63 20 66 75 6e 63 74 69 6f 6e 20 67 72 65 61 74 65 72 54 68 61 6e 28 24 76 65 72 73 69 6f 6e 31 c.function.greaterThan($version1
11e4a0 2c 20 24 76 65 72 73 69 6f 6e 32 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 63 6f 6d 70 ,.$version2).{.return.self::comp
11e4c0 61 72 65 28 24 76 65 72 73 69 6f 6e 31 2c 20 27 3e 27 2c 20 24 76 65 72 73 69 6f 6e 32 29 3b 0a are($version1,.'>',.$version2);.
11e4e0 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 6f }..........public.static.functio
11e500 6e 20 67 72 65 61 74 65 72 54 68 61 6e 4f 72 45 71 75 61 6c 54 6f 28 24 76 65 72 73 69 6f 6e 31 n.greaterThanOrEqualTo($version1
11e520 2c 20 24 76 65 72 73 69 6f 6e 32 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 63 6f 6d 70 ,.$version2).{.return.self::comp
11e540 61 72 65 28 24 76 65 72 73 69 6f 6e 31 2c 20 27 3e 3d 27 2c 20 24 76 65 72 73 69 6f 6e 32 29 3b are($version1,.'>=',.$version2);
11e560 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
11e580 6f 6e 20 6c 65 73 73 54 68 61 6e 28 24 76 65 72 73 69 6f 6e 31 2c 20 24 76 65 72 73 69 6f 6e 32 on.lessThan($version1,.$version2
11e5a0 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 63 6f 6d 70 61 72 65 28 24 76 65 72 73 69 6f ).{.return.self::compare($versio
11e5c0 6e 31 2c 20 27 3c 27 2c 20 24 76 65 72 73 69 6f 6e 32 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n1,.'<',.$version2);.}..........
11e5e0 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 73 73 54 68 61 6e 4f public.static.function.lessThanO
11e600 72 45 71 75 61 6c 54 6f 28 24 76 65 72 73 69 6f 6e 31 2c 20 24 76 65 72 73 69 6f 6e 32 29 0a 7b rEqualTo($version1,.$version2).{
11e620 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 63 6f 6d 70 61 72 65 28 24 76 65 72 73 69 6f 6e 31 2c .return.self::compare($version1,
11e640 20 27 3c 3d 27 2c 20 24 76 65 72 73 69 6f 6e 32 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .'<=',.$version2);.}..........pu
11e660 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 54 6f 28 24 76 65 blic.static.function.equalTo($ve
11e680 72 73 69 6f 6e 31 2c 20 24 76 65 72 73 69 6f 6e 32 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 rsion1,.$version2).{.return.self
11e6a0 3a 3a 63 6f 6d 70 61 72 65 28 24 76 65 72 73 69 6f 6e 31 2c 20 27 3d 3d 27 2c 20 24 76 65 72 73 ::compare($version1,.'==',.$vers
11e6c0 69 6f 6e 32 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 ion2);.}..........public.static.
11e6e0 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 45 71 75 61 6c 54 6f 28 24 76 65 72 73 69 6f 6e 31 2c 20 24 function.notEqualTo($version1,.$
11e700 76 65 72 73 69 6f 6e 32 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 63 6f 6d 70 61 72 65 version2).{.return.self::compare
11e720 28 24 76 65 72 73 69 6f 6e 31 2c 20 27 21 3d 27 2c 20 24 76 65 72 73 69 6f 6e 32 29 3b 0a 7d 0a ($version1,.'!=',.$version2);.}.
11e740 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 6f 6e ..........public.static.function
11e760 20 63 6f 6d 70 61 72 65 28 24 76 65 72 73 69 6f 6e 31 2c 20 24 6f 70 65 72 61 74 6f 72 2c 20 24 .compare($version1,.$operator,.$
11e780 76 65 72 73 69 6f 6e 32 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 43 6f version2).{.$constraint.=.new.Co
11e7a0 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e 32 29 3b 0a nstraint($operator,.$version2);.
11e7c0 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 6e 65 77 .return.$constraint->matches(new
11e7e0 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 76 65 72 73 69 6f 6e 31 29 29 3b 0a 7d .Constraint('==',.$version1));.}
11e800 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 43 6f 6d .}.<?php...........namespace.Com
11e820 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 74 72 69 67 67 65 poser\Semver\Constraint;..trigge
11e840 72 5f 65 72 72 6f 72 28 27 54 68 65 20 27 20 2e 20 5f 5f 43 4c 41 53 53 5f 5f 20 2e 20 27 20 61 r_error('The.'...__CLASS__...'.a
11e860 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 74 68 65 bstract.class.is.deprecated,.the
11e880 72 65 20 69 73 20 6e 6f 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 66 6f 72 20 69 74 2c 20 69 74 20 re.is.no.replacement.for.it,.it.
11e8a0 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 74 68 65 20 6e 65 78 74 20 6d 61 6a 6f will.be.removed.in.the.next.majo
11e8c0 72 20 76 65 72 73 69 6f 6e 2e 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b r.version.',.E_USER_DEPRECATED);
11e8e0 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 43 6f 6e 73 .....abstract.class.AbstractCons
11e900 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 74 65 traint.implements.ConstraintInte
11e920 72 66 61 63 65 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 rface.{..protected.$prettyString
11e940 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 ;.......public.function.matches(
11e960 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b ConstraintInterface.$provider).{
11e980 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 .if.($provider.instanceof.$this)
11e9a0 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 .{...return.$this->matchSpecific
11e9c0 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 ($provider);.}....return.$provid
11e9e0 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 er->matches($this);.}.....public
11ea00 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 .function.setPrettyString($prett
11ea20 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d yString).{.$this->prettyString.=
11ea40 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$prettyString;.}.....public.fun
11ea60 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 ction.getPrettyString().{.if.($t
11ea80 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 his->prettyString).{.return.$thi
11eaa0 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->prettyString;.}..return.$this
11eac0 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 7d 0a 3c 3f 70 68 70 0a ->__toString();.}.......}.<?php.
11eae0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d ..........namespace.Composer\Sem
11eb00 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 74 72 ver\Constraint;.....class.Constr
11eb20 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 74 65 72 66 aint.implements.ConstraintInterf
11eb40 61 63 65 0a 7b 0a 0a 63 6f 6e 73 74 20 4f 50 5f 45 51 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 50 ace.{..const.OP_EQ.=.0;.const.OP
11eb60 5f 4c 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 50 5f 4c 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 _LT.=.1;.const.OP_LE.=.2;.const.
11eb80 4f 50 5f 47 54 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 4f 50 5f 47 45 20 3d 20 34 3b 0a 63 6f 6e 73 OP_GT.=.3;.const.OP_GE.=.4;.cons
11eba0 74 20 4f 50 5f 4e 45 20 3d 20 35 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 t.OP_NE.=.5;.......private.stati
11ebc0 63 20 24 74 72 61 6e 73 4f 70 53 74 72 20 3d 20 61 72 72 61 79 28 0a 27 3d 27 20 3d 3e 20 73 65 c.$transOpStr.=.array(.'='.=>.se
11ebe0 6c 66 3a 3a 4f 50 5f 45 51 2c 0a 27 3d 3d 27 20 3d 3e 20 73 65 6c 66 3a 3a 4f 50 5f 45 51 2c 0a lf::OP_EQ,.'=='.=>.self::OP_EQ,.
11ec00 27 3c 27 20 3d 3e 20 73 65 6c 66 3a 3a 4f 50 5f 4c 54 2c 0a 27 3c 3d 27 20 3d 3e 20 73 65 6c 66 '<'.=>.self::OP_LT,.'<='.=>.self
11ec20 3a 3a 4f 50 5f 4c 45 2c 0a 27 3e 27 20 3d 3e 20 73 65 6c 66 3a 3a 4f 50 5f 47 54 2c 0a 27 3e 3d ::OP_LE,.'>'.=>.self::OP_GT,.'>=
11ec40 27 20 3d 3e 20 73 65 6c 66 3a 3a 4f 50 5f 47 45 2c 0a 27 3c 3e 27 20 3d 3e 20 73 65 6c 66 3a 3a '.=>.self::OP_GE,.'<>'.=>.self::
11ec60 4f 50 5f 4e 45 2c 0a 27 21 3d 27 20 3d 3e 20 73 65 6c 66 3a 3a 4f 50 5f 4e 45 2c 0a 29 3b 0a 0a OP_NE,.'!='.=>.self::OP_NE,.);..
11ec80 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 74 72 61 6e 73 4f 70 49 6e 74 20 .....private.static.$transOpInt.
11eca0 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 4f 50 5f 45 51 20 3d 3e 20 27 3d 3d 27 2c 0a 73 65 =.array(.self::OP_EQ.=>.'==',.se
11ecc0 6c 66 3a 3a 4f 50 5f 4c 54 20 3d 3e 20 27 3c 27 2c 0a 73 65 6c 66 3a 3a 4f 50 5f 4c 45 20 3d 3e lf::OP_LT.=>.'<',.self::OP_LE.=>
11ece0 20 27 3c 3d 27 2c 0a 73 65 6c 66 3a 3a 4f 50 5f 47 54 20 3d 3e 20 27 3e 27 2c 0a 73 65 6c 66 3a .'<=',.self::OP_GT.=>.'>',.self:
11ed00 3a 4f 50 5f 47 45 20 3d 3e 20 27 3e 3d 27 2c 0a 73 65 6c 66 3a 3a 4f 50 5f 4e 45 20 3d 3e 20 27 :OP_GE.=>.'>=',.self::OP_NE.=>.'
11ed20 21 3d 27 2c 0a 29 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 65 72 61 74 6f 72 3b 0a 0a !=',.);...protected.$operator;..
11ed40 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 .protected.$version;...protected
11ed60 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$prettyString;.......public.fun
11ed80 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 ction.matches(ConstraintInterfac
11eda0 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 e.$provider).{.if.($provider.ins
11edc0 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 74 68 69 73 2d 3e 6d tanceof.$this).{.return.$this->m
11ede0 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 7d 0a 0a 0a 20 72 65 atchSpecific($provider);.}....re
11ee00 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a turn.$provider->matches($this);.
11ee20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 }.....public.function.setPrettyS
11ee40 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 tring($prettyString).{.$this->pr
11ee60 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 0a ettyString.=.$prettyString;.}...
11ee80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e ..public.function.getPrettyStrin
11eea0 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 7b g().{.if.($this->prettyString).{
11eec0 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 0a .return.$this->prettyString;.}..
11eee0 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 0a return.$this->__toString();.}...
11ef00 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 ....public.static.function.getSu
11ef20 70 70 6f 72 74 65 64 4f 70 65 72 61 74 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 pportedOperators().{.return.arra
11ef40 79 5f 6b 65 79 73 28 73 65 6c 66 3a 3a 24 74 72 61 6e 73 4f 70 53 74 72 29 3b 0a 7d 0a 0a 0a 0a y_keys(self::$transOpStr);.}....
11ef60 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
11ef80 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 t($operator,.$version).{.if.(!is
11efa0 73 65 74 28 73 65 6c 66 3a 3a 24 74 72 61 6e 73 4f 70 53 74 72 5b 24 6f 70 65 72 61 74 6f 72 5d set(self::$transOpStr[$operator]
11efc0 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
11efe0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 xception(sprintf(.'Invalid.opera
11f000 74 6f 72 20 22 25 73 22 20 67 69 76 65 6e 2c 20 65 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a tor."%s".given,.expected.one.of:
11f020 20 25 73 27 2c 0a 24 6f 70 65 72 61 74 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 73 .%s',.$operator,.implode(',.',.s
11f040 65 6c 66 3a 3a 67 65 74 53 75 70 70 6f 72 74 65 64 4f 70 65 72 61 74 6f 72 73 28 29 29 0a 29 29 elf::getSupportedOperators()).))
11f060 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 73 65 6c 66 3a 3a 24 74 72 ;.}..$this->operator.=.self::$tr
11f080 61 6e 73 4f 70 53 74 72 5b 24 6f 70 65 72 61 74 6f 72 5d 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 ansOpStr[$operator];.$this->vers
11f0a0 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ion.=.$version;.}............pub
11f0c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 61 2c 20 lic.function.versionCompare($a,.
11f0e0 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 $b,.$operator,.$compareBranches.
11f100 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 74 72 61 =.false).{.if.(!isset(self::$tra
11f120 6e 73 4f 70 53 74 72 5b 24 6f 70 65 72 61 74 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 nsOpStr[$operator])).{.throw.new
11f140 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
11f160 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 25 73 22 20 67 69 76 65 6e tf(.'Invalid.operator."%s".given
11f180 2c 20 65 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a 20 25 73 27 2c 0a 24 6f 70 65 72 61 74 6f ,.expected.one.of:.%s',.$operato
11f1a0 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 73 65 6c 66 3a 3a 67 65 74 53 75 70 70 6f 72 r,.implode(',.',.self::getSuppor
11f1c0 74 65 64 4f 70 65 72 61 74 6f 72 73 28 29 29 0a 29 29 3b 0a 7d 0a 0a 24 61 49 73 42 72 61 6e 63 tedOperators()).));.}..$aIsBranc
11f1e0 68 20 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 h.=.'dev-'.===.substr($a,.0,.4);
11f200 0a 24 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 .$bIsBranch.=.'dev-'.===.substr(
11f220 24 62 2c 20 30 2c 20 34 29 3b 0a 0a 69 66 20 28 24 61 49 73 42 72 61 6e 63 68 20 26 26 20 24 62 $b,.0,.4);..if.($aIsBranch.&&.$b
11f240 49 73 42 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 3d IsBranch).{.return.$operator.===
11f260 20 27 3d 3d 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 .'=='.&&.$a.===.$b;.}....if.(!$c
11f280 6f 6d 70 61 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 ompareBranches.&&.($aIsBranch.||
11f2a0 20 24 62 49 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 .$bIsBranch)).{.return.false;.}.
11f2c0 0a 72 65 74 75 72 6e 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 .return.version_compare($a,.$b,.
11f2e0 24 6f 70 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $operator);.}........public.func
11f300 74 69 6f 6e 20 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 tion.matchSpecific(Constraint.$p
11f320 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 6c 73 rovider,.$compareBranches.=.fals
11f340 65 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d e).{.$noEqualOp.=.str_replace('=
11f360 27 2c 20 27 27 2c 20 73 65 6c 66 3a 3a 24 74 72 61 6e 73 4f 70 49 6e 74 5b 24 74 68 69 73 2d 3e ',.'',.self::$transOpInt[$this->
11f380 6f 70 65 72 61 74 6f 72 5d 29 3b 0a 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 3d operator]);.$providerNoEqualOp.=
11f3a0 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 73 65 6c 66 3a 3a 24 74 72 61 .str_replace('=',.'',.self::$tra
11f3c0 6e 73 4f 70 49 6e 74 5b 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 5d 29 3b 0a 0a nsOpInt[$provider->operator]);..
11f3e0 24 69 73 45 71 75 61 6c 4f 70 20 3d 20 73 65 6c 66 3a 3a 4f 50 5f 45 51 20 3d 3d 3d 20 24 74 68 $isEqualOp.=.self::OP_EQ.===.$th
11f400 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 73 65 is->operator;.$isNonEqualOp.=.se
11f420 6c 66 3a 3a 4f 50 5f 4e 45 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 lf::OP_NE.===.$this->operator;.$
11f440 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 20 3d 20 73 65 6c 66 3a 3a 4f 50 5f 45 51 20 isProviderEqualOp.=.self::OP_EQ.
11f460 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 6f 76 ===.$provider->operator;.$isProv
11f480 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 73 65 6c 66 3a 3a 4f 50 5f 4e 45 20 3d 3d 3d iderNonEqualOp.=.self::OP_NE.===
11f4a0 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 .$provider->operator;......if.($
11f4c0 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 isNonEqualOp.||.$isProviderNonEq
11f4e0 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c 4f 70 20 26 26 20 21 ualOp).{.return.!$isEqualOp.&&.!
11f500 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 69 73 2d 3e 76 65 72 $isProviderEqualOp.||.$this->ver
11f520 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 sionCompare($provider->version,.
11f540 24 74 68 69 73 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 $this->version,.'!=',.$compareBr
11f560 61 6e 63 68 65 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 anches);.}......if.($this->opera
11f580 74 6f 72 20 21 3d 3d 20 73 65 6c 66 3a 3a 4f 50 5f 45 51 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f tor.!==.self::OP_EQ.&&.$noEqualO
11f5a0 70 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 p.===.$providerNoEqualOp).{.retu
11f5c0 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f rn.true;.}..if.($this->versionCo
11f5e0 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 2d mpare($provider->version,.$this-
11f600 3e 76 65 72 73 69 6f 6e 2c 20 73 65 6c 66 3a 3a 24 74 72 61 6e 73 4f 70 49 6e 74 5b 24 74 68 69 >version,.self::$transOpInt[$thi
11f620 73 2d 3e 6f 70 65 72 61 74 6f 72 5d 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 29 s->operator],.$compareBranches))
11f640 20 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d .{.....if.($provider->version.==
11f660 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 0a 26 26 20 73 65 6c 66 3a 3a 24 74 72 61 6e 73 =.$this->version.&&.self::$trans
11f680 4f 70 49 6e 74 5b 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 5d 20 3d 3d 3d 20 24 OpInt[$provider->operator].===.$
11f6a0 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 0a 26 26 20 73 65 6c 66 3a 3a 24 74 72 61 6e providerNoEqualOp.&&.self::$tran
11f6c0 73 4f 70 49 6e 74 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 5d 20 21 3d 3d 20 24 6e 6f 45 sOpInt[$this->operator].!==.$noE
11f6e0 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 qualOp).{.return.false;.}..retur
11f700 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 70 n.true;.}..return.false;.}.....p
11f720 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 ublic.function.__toString().{.re
11f740 74 75 72 6e 20 73 65 6c 66 3a 3a 24 74 72 61 6e 73 4f 70 49 6e 74 5b 24 74 68 69 73 2d 3e 6f 70 turn.self::$transOpInt[$this->op
11f760 65 72 61 74 6f 72 5d 20 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a erator]...'.'...$this->version;.
11f780 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 43 6f }.}.<?php...........namespace.Co
11f7a0 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 69 6e 74 65 72 mposer\Semver\Constraint;..inter
11f7c0 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 7b 0a 0a 0a 0a 0a 0a face.ConstraintInterface.{......
11f7e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 43 6f 6e 73 74 72 61 69 public.function.matches(Constrai
11f800 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 0a 0a 0a 0a 70 75 62 6c ntInterface.$provider);.....publ
11f820 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 29 3b 0a 0a ic.function.getPrettyString();..
11f840 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 3b ...public.function.__toString();
11f860 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 43 6f 6d .}.<?php...........namespace.Com
11f880 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 63 6c 61 poser\Semver\Constraint;.....cla
11f8a0 73 73 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f ss.EmptyConstraint.implements.Co
11f8c0 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 nstraintInterface.{..protected.$
11f8e0 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 prettyString;.......public.funct
11f900 69 6f 6e 20 6d 61 74 63 68 65 73 28 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 ion.matches(ConstraintInterface.
11f920 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a $provider).{.return.true;.}.....
11f940 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(
11f960 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
11f980 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 0a 0a 0a 70 75 62 6c ring.=.$prettyString;.}.....publ
11f9a0 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 29 0a 7b 0a ic.function.getPrettyString().{.
11f9c0 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 if.($this->prettyString).{.retur
11f9e0 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e n.$this->prettyString;.}..return
11fa00 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .$this->__toString();.}.....publ
11fa20 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
11fa40 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 6e 61 6d 65 n.'[]';.}.}.<?php...........name
11fa60 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 space.Composer\Semver\Constraint
11fa80 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c ;.....class.MultiConstraint.impl
11faa0 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 70 72 ements.ConstraintInterface.{..pr
11fac0 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 otected.$constraints;...protecte
11fae0 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f d.$prettyString;...protected.$co
11fb00 6e 6a 75 6e 63 74 69 76 65 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 njunctive;......public.function.
11fb20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 __construct(array.$constraints,.
11fb40 24 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f $conjunctive.=.true).{.$this->co
11fb60 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 24 74 68 69 73 2d nstraints.=.$constraints;.$this-
11fb80 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 7d 0a 0a >conjunctive.=.$conjunctive;.}..
11fba0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 43 6f 6e .....public.function.matches(Con
11fbc0 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 69 66 straintInterface.$provider).{.if
11fbe0 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 29 20 .(false.===.$this->conjunctive).
11fc00 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 {.foreach.($this->constraints.as
11fc20 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 2d .$constraint).{.if.($constraint-
11fc40 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 >matches($provider)).{.return.tr
11fc60 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 ue;.}.}..return.false;.}..foreac
11fc80 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 h.($this->constraints.as.$constr
11fca0 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 aint).{.if.(!$constraint->matche
11fcc0 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a s($provider)).{.return.false;.}.
11fce0 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e }..return.true;.}.....public.fun
11fd00 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 ction.setPrettyString($prettyStr
11fd20 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 ing).{.$this->prettyString.=.$pr
11fd40 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ettyString;.}.....public.functio
11fd60 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d n.getPrettyString().{.if.($this-
11fd80 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 >prettyString).{.return.$this->p
11fda0 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f rettyString;.}..return.$this->__
11fdc0 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f toString();.}.....public.functio
11fde0 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 73 20 3d 20 n.__toString().{.$constraints.=.
11fe00 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 73 74 72 61 array();.foreach.($this->constra
11fe20 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 61 69 ints.as.$constraint).{.$constrai
11fe40 6e 74 73 5b 5d 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a nts[].=.(string).$constraint;.}.
11fe60 0a 72 65 74 75 72 6e 20 27 5b 27 20 2e 20 69 6d 70 6c 6f 64 65 28 24 74 68 69 73 2d 3e 63 6f 6e .return.'['...implode($this->con
11fe80 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 24 63 6f 6e 73 74 72 junctive.?.'.'.:.'.||.',.$constr
11fea0 61 69 6e 74 73 29 20 2e 20 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a aints)...']';.}.}.<?php.........
11fec0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 3b 0a 0a 75 73 ..namespace.Composer\Semver;..us
11fee0 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e e.Composer\Semver\Constraint\Con
11ff00 73 74 72 61 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 53 65 6d 76 65 72 0a 7b 0a 63 6f 6e 73 74 20 53 straint;..class.Semver.{.const.S
11ff20 4f 52 54 5f 41 53 43 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 44 45 53 43 20 3d 20 2d ORT_ASC.=.1;.const.SORT_DESC.=.-
11ff40 31 3b 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 76 65 72 73 69 6f 6e 50 61 72 73 1;...private.static.$versionPars
11ff60 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 er;..........public.static.funct
11ff80 69 6f 6e 20 73 61 74 69 73 66 69 65 73 28 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 ion.satisfies($version,.$constra
11ffa0 69 6e 74 73 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 73 65 6c 66 3a 3a 24 76 65 72 73 ints).{.if.(null.===.self::$vers
11ffc0 69 6f 6e 50 61 72 73 65 72 29 20 7b 0a 73 65 6c 66 3a 3a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 ionParser).{.self::$versionParse
11ffe0 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 24 76 65 72 r.=.new.VersionParser();.}..$ver
120000 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 73 65 6c 66 3a 3a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 sionParser.=.self::$versionParse
120020 72 3b 0a 24 70 72 6f 76 69 64 65 72 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d r;.$provider.=.new.Constraint('=
120040 3d 27 2c 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 =',.$versionParser->normalize($v
120060 65 72 73 69 6f 6e 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 76 65 72 73 69 6f ersion));.$constraints.=.$versio
120080 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 nParser->parseConstraints($const
1200a0 72 61 69 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2d 3e 6d raints);..return.$constraints->m
1200c0 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 atches($provider);.}..........pu
1200e0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 69 65 64 42 79 blic.static.function.satisfiedBy
120100 28 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a (array.$versions,.$constraints).
120120 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 76 65 72 73 {.$versions.=.array_filter($vers
120140 69 6f 6e 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 65 72 73 69 6f 6e 29 20 75 73 65 20 28 24 ions,.function.($version).use.($
120160 63 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 72 65 74 75 72 6e 20 53 65 6d 76 65 72 3a 3a 73 61 constraints).{.return.Semver::sa
120180 74 69 73 66 69 65 73 28 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 3b tisfies($version,.$constraints);
1201a0 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 76 65 72 73 69 .});..return.array_values($versi
1201c0 6f 6e 73 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 ons);.}.........public.static.fu
1201e0 6e 63 74 69 6f 6e 20 73 6f 72 74 28 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 29 0a 7b 0a 72 nction.sort(array.$versions).{.r
120200 65 74 75 72 6e 20 73 65 6c 66 3a 3a 75 73 6f 72 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 73 65 6c eturn.self::usort($versions,.sel
120220 66 3a 3a 53 4f 52 54 5f 41 53 43 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 f::SORT_ASC);.}.........public.s
120240 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 73 6f 72 74 28 61 72 72 61 79 20 24 76 65 72 73 tatic.function.rsort(array.$vers
120260 69 6f 6e 73 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 75 73 6f 72 74 28 24 76 65 72 73 ions).{.return.self::usort($vers
120280 69 6f 6e 73 2c 20 73 65 6c 66 3a 3a 53 4f 52 54 5f 44 45 53 43 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ions,.self::SORT_DESC);.}.......
1202a0 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 75 73 6f 72 74 28 61 .private.static.function.usort(a
1202c0 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 64 69 72 65 63 74 69 6f 6e 29 0a 7b 0a 69 66 rray.$versions,.$direction).{.if
1202e0 20 28 6e 75 6c 6c 20 3d 3d 3d 20 73 65 6c 66 3a 3a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 .(null.===.self::$versionParser)
120300 20 7b 0a 73 65 6c 66 3a 3a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 .{.self::$versionParser.=.new.Ve
120320 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 rsionParser();.}..$versionParser
120340 20 3d 20 73 65 6c 66 3a 3a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 6e 6f 72 6d 61 6c .=.self::$versionParser;.$normal
120360 69 7a 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 76 ized.=.array();......foreach.($v
120380 65 72 73 69 6f 6e 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 ersions.as.$key.=>.$version).{.$
1203a0 6e 6f 72 6d 61 6c 69 7a 65 64 5b 5d 20 3d 20 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 50 61 72 normalized[].=.array($versionPar
1203c0 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 2c 20 24 6b 65 79 29 3b ser->normalize($version),.$key);
1203e0 0a 7d 0a 0a 75 73 6f 72 74 28 24 6e 6f 72 6d 61 6c 69 7a 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 .}..usort($normalized,.function.
120400 28 61 72 72 61 79 20 24 6c 65 66 74 2c 20 61 72 72 61 79 20 24 72 69 67 68 74 29 20 75 73 65 20 (array.$left,.array.$right).use.
120420 28 24 64 69 72 65 63 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 6c 65 66 74 5b 30 5d 20 3d 3d 3d 20 ($direction).{.if.($left[0].===.
120440 24 72 69 67 68 74 5b 30 5d 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 43 6f $right[0]).{.return.0;.}..if.(Co
120460 6d 70 61 72 61 74 6f 72 3a 3a 6c 65 73 73 54 68 61 6e 28 24 6c 65 66 74 5b 30 5d 2c 20 24 72 69 mparator::lessThan($left[0],.$ri
120480 67 68 74 5b 30 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 24 64 69 72 65 63 74 69 6f 6e 3b 0a 7d ght[0])).{.return.-$direction;.}
1204a0 0a 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 69 6f 6e 3b 0a 7d 29 3b 0a 0a 0a 20 24 73 6f 72 ..return.$direction;.});....$sor
1204c0 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 6f 72 6d 61 6c 69 ted.=.array();.foreach.($normali
1204e0 7a 65 64 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 24 73 6f 72 74 65 64 5b 5d 20 3d 20 24 76 65 72 zed.as.$item).{.$sorted[].=.$ver
120500 73 69 6f 6e 73 5b 24 69 74 65 6d 5b 31 5d 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 6f 72 74 sions[$item[1]];.}..return.$sort
120520 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ed;.}.}.<?php...........namespac
120540 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Semver;..use.Composer
120560 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 \Semver\Constraint\ConstraintInt
120580 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 erface;.use.Composer\Semver\Cons
1205a0 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 traint\EmptyConstraint;.use.Comp
1205c0 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 74 72 61 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 oser\Semver\Constraint\MultiCons
1205e0 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 65 6d 76 65 72 5c 43 6f 6e 73 traint;.use.Composer\Semver\Cons
120600 74 72 61 69 6e 74 5c 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 traint\Constraint;.......class.V
120620 65 72 73 69 6f 6e 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 ersionParser.{..............priv
120640 61 74 65 20 73 74 61 74 69 63 20 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 3d 20 27 5b 2e 5f ate.static.$modifierRegex.=.'[._
120660 2d 5d 3f 28 3f 3a 28 73 74 61 62 6c 65 7c 62 65 74 61 7c 62 7c 52 43 7c 61 6c 70 68 61 7c 61 7c -]?(?:(stable|beta|b|RC|alpha|a|
120680 70 61 74 63 68 7c 70 6c 7c 70 29 28 28 3f 3a 5b 2e 2d 5d 3f 5c 64 2b 29 2a 2b 29 3f 29 3f 28 5b patch|pl|p)((?:[.-]?\d+)*+)?)?([
1206a0 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 .-]?dev)?';...private.static.$st
1206c0 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 27 73 74 61 62 6c 65 27 2c 20 27 52 43 27 abilities.=.array('stable',.'RC'
1206e0 2c 20 27 62 65 74 61 27 2c 20 27 61 6c 70 68 61 27 2c 20 27 64 65 76 27 29 3b 0a 0a 0a 0a 0a 0a ,.'beta',.'alpha',.'dev');......
120700 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 ...public.static.function.parseS
120720 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 tability($version).{.$version.=.
120740 70 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 preg_replace('{#.+$}i',.'',.$ver
120760 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 sion);..if.('dev-'.===.substr($v
120780 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 62 73 ersion,.0,.4).||.'-dev'.===.subs
1207a0 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 tr($version,.-4)).{.return.'dev'
1207c0 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 20 2e 20 73 65 6c 66 3a 3a 24 6d 6f 64 ;.}..preg_match('{'...self::$mod
1207e0 69 66 69 65 72 52 65 67 65 78 20 2e 20 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 ifierRegex...'$}i',.strtolower($
120800 76 65 72 73 69 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 version),.$match);.if.(!empty($m
120820 61 74 63 68 5b 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 atch[3])).{.return.'dev';.}..if.
120840 28 21 65 6d 70 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 (!empty($match[1])).{.if.('beta'
120860 20 3d 3d 3d 20 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 .===.$match[1].||.'b'.===.$match
120880 5b 31 5d 29 20 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 [1]).{.return.'beta';.}.if.('alp
1208a0 68 61 27 20 3d 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 ha'.===.$match[1].||.'a'.===.$ma
1208c0 74 63 68 5b 31 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 tch[1]).{.return.'alpha';.}.if.(
1208e0 27 72 63 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 52 43 'rc'.===.$match[1]).{.return.'RC
120900 27 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 0a 0a 0a 0a 0a ';.}.}..return.'stable';.}......
120920 0a 70 75 62 6c 69 63 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 .public.static.function.normaliz
120940 65 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c eStability($stability).{.$stabil
120960 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 ity.=.strtolower($stability);..r
120980 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 20 3f 20 27 52 43 27 eturn.$stability.===.'rc'.?.'RC'
1209a0 20 3a 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .:.$stability;.}............publ
1209c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 2c 20 ic.function.normalize($version,.
1209e0 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 $fullVersion.=.null).{.$version.
120a00 3d 20 74 72 69 6d 28 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 =.trim($version);.if.(null.===.$
120a20 66 75 6c 6c 56 65 72 73 69 6f 6e 29 20 7b 0a 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 76 fullVersion).{.$fullVersion.=.$v
120a40 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 ersion;.}....if.(preg_match('{^(
120a60 5b 5e 2c 5c 73 5d 2b 2b 29 20 2b 2b 61 73 20 2b 2b 28 5b 5e 2c 5c 73 5d 2b 2b 29 24 7d 27 2c 20 [^,\s]++).++as.++([^,\s]++)$}',.
120a80 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 $version,.$match)).{.$version.=.
120aa0 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 $match[1];.}....if.(preg_match('
120ac0 7b 5e 28 5b 5e 2c 5c 73 2b 5d 2b 2b 29 5c 2b 5b 5e 5c 73 5d 2b 2b 24 7d 27 2c 20 24 76 65 72 73 {^([^,\s+]++)\+[^\s]++$}',.$vers
120ae0 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 ion,.$match)).{.$version.=.$matc
120b00 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a h[1];.}....if.(preg_match('{^(?:
120b20 64 65 76 2d 29 3f 28 3f 3a 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 29 24 7d dev-)?(?:master|trunk|default)$}
120b40 69 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 39 39 39 39 39 39 39 i',.$version)).{.return.'9999999
120b60 2d 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f -dev';.}..if.('dev-'.===.strtolo
120b80 77 65 72 28 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 29 29 20 7b 0a 72 wer(substr($version,.0,.4))).{.r
120ba0 65 74 75 72 6e 20 27 64 65 76 2d 27 20 2e 20 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 eturn.'dev-'...substr($version,.
120bc0 34 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 4);.}....if.(preg_match('{^v?(\d
120be0 7b 31 2c 35 7d 29 28 5c 2e 5c 64 2b 2b 29 3f 28 5c 2e 5c 64 2b 2b 29 3f 28 5c 2e 5c 64 2b 2b 29 {1,5})(\.\d++)?(\.\d++)?(\.\d++)
120c00 3f 27 20 2e 20 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 2e 20 27 24 7d 69 ?'...self::$modifierRegex...'$}i
120c20 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 ',.$version,.$matches)).{.$versi
120c40 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 on.=.$matches[1]...(!empty($matc
120c60 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 20 hes[2]).?.$matches[2].:.'.0')...
120c80 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b (!empty($matches[3]).?.$matches[
120ca0 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 3].:.'.0')...(!empty($matches[4]
120cc0 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 ).?.$matches[4].:.'.0');.$index.
120ce0 3d 20 35 3b 0a 0a 20 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 =.5;...}.elseif.(preg_match('{^v
120d00 3f 28 5c 64 7b 34 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 32 7d 29 7b 31 2c 36 7d 28 3f 3a 5b 2e ?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.
120d20 3a 2d 5d 3f 5c 64 7b 31 2c 33 7d 29 3f 29 27 20 2e 20 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 :-]?\d{1,3})?)'...self::$modifie
120d40 72 52 65 67 65 78 20 2e 20 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 rRegex...'$}i',.$version,.$match
120d60 65 73 29 29 20 7b 0a 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 es)).{.$version.=.preg_replace('
120d80 7b 5c 44 7d 27 2c 20 27 2e 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
120da0 20 3d 20 32 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 69 6e 64 65 78 29 29 20 7b 0a .=.2;.}....if.(isset($index)).{.
120dc0 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 29 20 7b 0a if.(!empty($matches[$index])).{.
120de0 69 66 20 28 27 73 74 61 62 6c 65 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 if.('stable'.===.$matches[$index
120e00 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e ]).{.return.$version;.}.$version
120e20 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 ..=.'-'...$this->expandStability
120e40 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 ($matches[$index])...(!empty($ma
120e60 74 63 68 65 73 5b 24 69 6e 64 65 78 20 2b 20 31 5d 29 20 3f 20 6c 74 72 69 6d 28 24 6d 61 74 63 tches[$index.+.1]).?.ltrim($matc
120e80 68 65 73 5b 24 69 6e 64 65 78 20 2b 20 31 5d 2c 20 27 2e 2d 27 29 20 3a 20 27 27 29 3b 0a 7d 0a hes[$index.+.1],.'.-').:.'');.}.
120ea0 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 20 2b 20 32 5d .if.(!empty($matches[$index.+.2]
120ec0 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 )).{.$version..=.'-dev';.}..retu
120ee0 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 rn.$version;.}....if.(preg_match
120f00 28 27 7b 28 2e 2a 3f 29 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 ('{(.*?)[.-]?dev$}i',.$version,.
120f20 24 6d 61 74 63 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e $match)).{.try.{.return.$this->n
120f40 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 ormalizeBranch($match[1]);.}.cat
120f60 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 78 74 72 61 ch.(\Exception.$e).{.}.}..$extra
120f80 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 28 27 7b 20 Message.=.'';.if.(preg_match('{.
120fa0 2b 61 73 20 2b 27 20 2e 20 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 20 2e 20 +as.+'...preg_quote($version)...
120fc0 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
120fe0 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 20 2e 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 2e 20 sage.=.'.in."'...$fullVersion...
121000 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 6d 75 73 74 20 62 65 20 61 6e 20 65 78 61 63 74 20 76 '",.the.alias.must.be.an.exact.v
121020 65 72 73 69 6f 6e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ersion';.}.elseif.(preg_match('{
121040 5e 27 20 2e 20 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 20 2e 20 27 20 2b 61 ^'...preg_quote($version)...'.+a
121060 73 20 2b 7d 27 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 29 20 7b 0a 24 65 78 74 72 61 4d 65 s.+}',.$fullVersion)).{.$extraMe
121080 73 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 20 2e 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 2e ssage.=.'.in."'...$fullVersion..
1210a0 20 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 73 6f 75 72 63 65 20 6d 75 73 74 20 62 65 20 61 6e .'",.the.alias.source.must.be.an
1210c0 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20 61 20 62 72 61 6e 63 .exact.version,.if.it.is.a.branc
1210e0 68 20 6e 61 6d 65 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 72 65 66 69 78 20 69 74 20 77 69 74 68 h.name.you.should.prefix.it.with
121100 20 64 65 76 2d 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 .dev-';.}..throw.new.\Unexpected
121120 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 ValueException('Invalid.version.
121140 73 74 72 69 6e 67 20 22 27 20 2e 20 24 76 65 72 73 69 6f 6e 20 2e 20 27 22 27 20 2e 20 24 65 78 string."'...$version...'"'...$ex
121160 74 72 61 4d 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 traMessage);.}.........public.fu
121180 6e 63 74 69 6f 6e 20 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 nction.parseNumericAliasPrefix($
1211a0 62 72 61 6e 63 68 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 50 3c branch).{.if.(preg_match('{^(?P<
1211c0 76 65 72 73 69 6f 6e 3e 28 5c 64 2b 2b 5c 5c 2e 29 2a 5c 64 2b 2b 29 28 3f 3a 5c 2e 78 29 3f 2d version>(\d++\\.)*\d++)(?:\.x)?-
1211e0 64 65 76 24 7d 69 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 dev$}i',.$branch,.$matches)).{.r
121200 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 2e 20 27 2e 27 3b eturn.$matches['version']...'.';
121220 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .}..return.false;.}.........publ
121240 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6e 61 6d ic.function.normalizeBranch($nam
121260 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 69 e).{.$name.=.trim($name);..if.(i
121280 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 6d 61 73 74 65 72 27 2c 20 27 n_array($name,.array('master',.'
1212a0 74 72 75 6e 6b 27 2c 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 trunk',.'default'))).{.return.$t
1212c0 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 his->normalize($name);.}..if.(pr
1212e0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 2b 2b 29 28 5c 2e 28 3f 3a 5c 64 2b 2b 7c 5b eg_match('{^v?(\d++)(\.(?:\d++|[
121300 78 58 2a 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 2b 7c 5b 78 58 2a 5d 29 29 3f 28 5c 2e 28 3f 3a xX*]))?(\.(?:\d++|[xX*]))?(\.(?:
121320 5c 64 2b 2b 7c 5b 78 58 2a 5d 29 29 3f 24 7d 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d 61 74 63 68 \d++|[xX*]))?$}i',.$name,.$match
121340 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 24 69 20 3d 20 es)).{.$version.=.'';.for.($i.=.
121360 31 3b 20 24 69 20 3c 20 35 3b 20 2b 2b 24 69 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 69 1;.$i.<.5;.++$i).{.$version..=.i
121380 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 70 6c 61 63 65 sset($matches[$i]).?.str_replace
1213a0 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 63 68 65 73 5b (array('*',.'X'),.'x',.$matches[
1213c0 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 72 65 70 6c 61 $i]).:.'.x';.}..return.str_repla
1213e0 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 29 20 2e 20 27 ce('x',.'9999999',.$version)...'
121400 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 20 2e 20 24 6e 61 6d 65 3b -dev';.}..return.'dev-'...$name;
121420 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 65 .}.........public.function.parse
121440 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 70 72 65 Constraints($constraints).{.$pre
121460 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 69 ttyConstraint.=.$constraints;..i
121480 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2a 3f 29 40 28 27 20 2e f.(preg_match('{^([^,\s]*?)@('..
1214a0 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 73 65 6c 66 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 .implode('|',.self::$stabilities
1214c0 29 20 2e 20 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 )...')$}i',.$constraints,.$match
1214e0 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
121500 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
121520 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@]+?|[^,\
121540 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
121560 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
121580 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
1215a0 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
1215c0 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(
1215e0 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
121600 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.=.
121620 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|[=><.,]).*
121640 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|$)}',.$
121660 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
121680 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
1216a0 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
1216c0 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 66 6f 72 65 61 63 68 raints.as.$constraint).{.foreach
1216e0 20 28 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 .($this->parseConstraint($constr
121700 61 69 6e 74 29 20 61 73 20 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 aint).as.$parsedConstraint).{.$c
121720 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 5b 5d 20 3d 20 24 70 61 72 73 65 64 43 6f 6e 73 onstraintObjects[].=.$parsedCons
121740 74 72 61 69 6e 74 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 traint;.}.}.}.else.{.$constraint
121760 4f 62 6a 65 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 Objects.=.$this->parseConstraint
121780 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d ($andConstraints[0]);.}..if.(1.=
1217a0 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 29 20 7b 0a ==.count($constraintObjects)).{.
1217c0 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 $constraint.=.$constraintObjects
1217e0 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 [0];.}.else.{.$constraint.=.new.
121800 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 MultiConstraint($constraintObjec
121820 74 73 29 3b 0a 7d 0a 0a 24 6f 72 47 72 6f 75 70 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e ts);.}..$orGroups[].=.$constrain
121840 74 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6f 72 47 72 6f 75 70 73 29 t;.}..if.(1.===.count($orGroups)
121860 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6f 72 47 72 6f 75 70 73 5b 30 5d 3b 0a ).{.$constraint.=.$orGroups[0];.
121880 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 4d 75 6c 74 69 }.else.{.$constraint.=.new.Multi
1218a0 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 72 47 72 6f 75 70 73 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a Constraint($orGroups,.false);.}.
1218c0 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 .$constraint->setPrettyString($p
1218e0 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 rettyConstraint);..return.$const
121900 72 61 69 6e 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 6f raint;.}.........private.functio
121920 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 29 0a 7b n.parseConstraint($constraint).{
121940 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 40 28 27 .if.(preg_match('{^([^,\s]+?)@('
121960 20 2e 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 73 65 6c 66 3a 3a 24 73 74 61 62 69 6c 69 74 69 ...implode('|',.self::$stabiliti
121980 65 73 29 20 2e 20 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 es)...')$}i',.$constraint,.$matc
1219a0 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 h)).{.$constraint.=.$match[1];.i
1219c0 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 73 74 f.($match[2].!==.'stable').{.$st
1219e0 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d abilityModifier.=.$match[2];.}.}
121a00 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 5b 78 58 2a 5d 28 5c 2e 5b 78 ..if.(preg_match('{^v?[xX*](\.[x
121a20 58 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 X*])*$}i',.$constraint)).{.retur
121a40 6e 20 61 72 72 61 79 28 6e 65 77 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a n.array(new.EmptyConstraint());.
121a60 7d 0a 0a 24 76 65 72 73 69 6f 6e 52 65 67 65 78 20 3d 20 27 76 3f 28 5c 64 2b 2b 29 28 3f 3a 5c }..$versionRegex.=.'v?(\d++)(?:\
121a80 2e 28 5c 64 2b 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 2b .(\d++))?(?:\.(\d++))?(?:\.(\d++
121aa0 29 29 3f 27 20 2e 20 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 2e 20 27 28 ))?'...self::$modifierRegex...'(
121ac0 3f 3a 5c 2b 5b 5e 5c 73 5d 2b 29 3f 27 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 69 66 20 28 70 72 ?:\+[^\s]+)?';............if.(pr
121ae0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 7e 3e 3f 27 20 2e 20 24 76 65 72 73 69 6f 6e 52 65 67 65 78 eg_match('{^~>?'...$versionRegex
121b00 20 2e 20 27 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 ...'$}i',.$constraint,.$matches)
121b20 29 20 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 30 2c 20 32 ).{.if.(substr($constraint,.0,.2
121b40 29 20 3d 3d 3d 20 27 7e 3e 27 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 ).===.'~>').{.throw.new.\Unexpec
121b60 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 tedValueException(.'Could.not.pa
121b80 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 20 2e 20 24 63 6f 6e 73 rse.version.constraint.'...$cons
121ba0 74 72 61 69 6e 74 20 2e 20 27 3a 20 27 20 2e 0a 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f traint...':.'...'Invalid.operato
121bc0 72 20 22 7e 3e 22 2c 20 79 6f 75 20 70 72 6f 62 61 62 6c 79 20 6d 65 61 6e 74 20 74 6f 20 75 73 r."~>",.you.probably.meant.to.us
121be0 65 20 74 68 65 20 22 7e 22 20 6f 70 65 72 61 74 6f 72 27 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 e.the."~".operator'.);.}....if.(
121c00 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 isset($matches[4]).&&.''.!==.$ma
121c20 74 63 68 65 73 5b 34 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 34 3b 0a 7d 20 65 6c 73 tches[4]).{.$position.=.4;.}.els
121c40 65 69 66 20 28 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 eif.(isset($matches[3]).&&.''.!=
121c60 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 20 33 3b 0a =.$matches[3]).{.$position.=.3;.
121c80 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 32 5d 29 20 26 26 20 }.elseif.(isset($matches[2]).&&.
121ca0 27 27 20 21 3d 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 ''.!==.$matches[2]).{.$position.
121cc0 3d 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 31 3b 0a 7d 0a 0a =.2;.}.else.{.$position.=.1;.}..
121ce0 0a 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 21 65 6d ..$stabilitySuffix.=.'';.if.(!em
121d00 70 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 pty($matches[5])).{.$stabilitySu
121d20 66 66 69 78 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 ffix..=.'-'...$this->expandStabi
121d40 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 lity($matches[5])...(!empty($mat
121d60 63 68 65 73 5b 36 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 36 5d 20 3a 20 27 27 29 3b 0a 7d 0a ches[6]).?.$matches[6].:.'');.}.
121d80 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 37 5d 29 29 20 7b 0a 24 73 74 61 .if.(!empty($matches[7])).{.$sta
121da0 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 bilitySuffix..=.'-dev';.}..if.(!
121dc0 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 $stabilitySuffix).{.$stabilitySu
121de0 66 66 69 78 20 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 ffix.=.'-dev';.}..$lowVersion.=.
121e00 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 $this->manipulateVersionString($
121e20 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 30 29 20 2e 20 24 73 74 61 62 69 6c matches,.$position,.0)...$stabil
121e40 69 74 79 53 75 66 66 69 78 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 43 6f 6e itySuffix;.$lowerBound.=.new.Con
121e60 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a straint('>=',.$lowVersion);.....
121e80 20 24 68 69 67 68 50 6f 73 69 74 69 6f 6e 20 3d 20 6d 61 78 28 31 2c 20 24 70 6f 73 69 74 69 6f .$highPosition.=.max(1,.$positio
121ea0 6e 20 2d 20 31 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 n.-.1);.$highVersion.=.$this->ma
121ec0 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 74 63 68 65 73 2c 20 nipulateVersionString($matches,.
121ee0 24 68 69 67 68 50 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 24 75 70 70 $highPosition,.1)...'-dev';.$upp
121f00 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 erBound.=.new.Constraint('<',.$h
121f20 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 6c 6f 77 ighVersion);..return.array(.$low
121f40 65 72 42 6f 75 6e 64 2c 0a 24 75 70 70 65 72 42 6f 75 6e 64 2c 0a 29 3b 0a 7d 0a 0a 0a 20 0a 20 erBound,.$upperBound,.);.}......
121f60 0a 20 0a 20 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 5e 27 20 2e 20 24 76 ......if.(preg_match('{^\^'...$v
121f80 65 72 73 69 6f 6e 52 65 67 65 78 20 2e 20 27 28 24 29 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 ersionRegex...'($)}i',.$constrai
121fa0 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 27 30 27 20 21 3d 3d 20 24 nt,.$matches)).{...if.('0'.!==.$
121fc0 6d 61 74 63 68 65 73 5b 31 5d 20 7c 7c 20 27 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d matches[1].||.''.===.$matches[2]
121fe0 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 30 27 ).{.$position.=.1;.}.elseif.('0'
122000 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 7c 7c 20 27 27 20 3d 3d 3d 20 24 6d 61 74 63 .!==.$matches[2].||.''.===.$matc
122020 68 65 73 5b 33 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 20 hes[3]).{.$position.=.2;.}.else.
122040 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 0a 0a 0a 20 24 73 74 61 62 69 6c 69 74 79 {.$position.=.3;.}....$stability
122060 53 75 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 Suffix.=.'';.if.(empty($matches[
122080 35 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 37 5d 29 29 20 7b 0a 24 73 74 5]).&&.empty($matches[7])).{.$st
1220a0 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 24 6c 6f 77 abilitySuffix..=.'-dev';.}..$low
1220c0 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 73 75 62 73 74 Version.=.$this->normalize(subst
1220e0 72 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 2e 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 r($constraint...$stabilitySuffix
122100 2c 20 31 29 29 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 ,.1));.$lowerBound.=.new.Constra
122120 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 int('>=',.$lowVersion);......$hi
122140 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 ghVersion.=.$this->manipulateVer
122160 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 sionString($matches,.$position,.
122180 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 43 1)...'-dev';.$upperBound.=.new.C
1221a0 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 0a 72 onstraint('<',.$highVersion);..r
1221c0 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 70 65 72 eturn.array(.$lowerBound,.$upper
1221e0 42 6f 75 6e 64 2c 0a 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 Bound,.);.}..........if.(preg_ma
122200 74 63 68 28 27 7b 5e 76 3f 28 5c 64 2b 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 2b 29 29 3f 28 3f 3a 5c tch('{^v?(\d++)(?:\.(\d++))?(?:\
122220 2e 28 5c 64 2b 2b 29 29 3f 28 3f 3a 5c 2e 5b 78 58 2a 5d 29 2b 2b 24 7d 27 2c 20 24 63 6f 6e 73 .(\d++))?(?:\.[xX*])++$}',.$cons
122240 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 traint,.$matches)).{.if.(isset($
122260 6d 61 74 63 68 65 73 5b 33 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 33 matches[3]).&&.''.!==.$matches[3
122280 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 ]).{.$position.=.3;.}.elseif.(is
1222a0 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 set($matches[2]).&&.''.!==.$matc
1222c0 68 65 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 20 hes[2]).{.$position.=.2;.}.else.
1222e0 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 65 72 73 69 6f 6e 20 {.$position.=.1;.}..$lowVersion.
122300 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 53 74 72 69 6e 67 =.$this->manipulateVersionString
122320 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 29 20 2e 20 27 2d 64 65 76 27 3b 0a ($matches,.$position)...'-dev';.
122340 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 61 74 65 $highVersion.=.$this->manipulate
122360 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f VersionString($matches,.$positio
122380 6e 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 0a 69 66 20 28 24 6c 6f 77 56 65 72 73 69 6f 6e n,.1)...'-dev';..if.($lowVersion
1223a0 20 3d 3d 3d 20 27 30 2e 30 2e 30 2e 30 2d 64 65 76 27 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 .===.'0.0.0.0-dev').{.return.arr
1223c0 61 79 28 6e 65 77 20 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 ay(new.Constraint('<',.$highVers
1223e0 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 6e 65 77 20 43 6f 6e 73 ion));.}..return.array(.new.Cons
122400 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c 0a 6e 65 77 20 43 traint('>=',.$lowVersion),.new.C
122420 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 2c 0a 29 3b onstraint('<',.$highVersion),.);
122440 0a 7d 0a 0a 0a 20 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 .}..............if.(preg_match('
122460 7b 5e 28 3f 50 3c 66 72 6f 6d 3e 27 20 2e 20 24 76 65 72 73 69 6f 6e 52 65 67 65 78 20 2e 20 27 {^(?P<from>'...$versionRegex...'
122480 29 20 2b 2d 20 2b 28 3f 50 3c 74 6f 3e 27 20 2e 20 24 76 65 72 73 69 6f 6e 52 65 67 65 78 20 2e ).+-.+(?P<to>'...$versionRegex..
1224a0 20 27 29 28 24 29 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 .')($)}i',.$constraint,.$matches
1224c0 29 29 20 7b 0a 0a 20 24 6c 6f 77 53 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 27 27 3b )).{...$lowStabilitySuffix.=.'';
1224e0 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 26 26 20 65 6d 70 74 79 .if.(empty($matches[6]).&&.empty
122500 28 24 6d 61 74 63 68 65 73 5b 38 5d 29 29 20 7b 0a 24 6c 6f 77 53 74 61 62 69 6c 69 74 79 53 75 ($matches[8])).{.$lowStabilitySu
122520 66 66 69 78 20 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 ffix.=.'-dev';.}..$lowVersion.=.
122540 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 65 73 5b 27 66 72 6f 6d 27 $this->normalize($matches['from'
122560 5d 29 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 ]);.$lowerBound.=.new.Constraint
122580 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 20 2e 20 24 6c 6f 77 53 74 61 62 69 6c 69 ('>=',.$lowVersion...$lowStabili
1225a0 74 79 53 75 66 66 69 78 29 3b 0a 0a 24 65 6d 70 74 79 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 tySuffix);..$empty.=.function.($
1225c0 78 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 78 20 3d 3d 3d 20 30 20 7c 7c 20 24 78 20 3d 3d 3d 20 x).{.return.($x.===.0.||.$x.===.
1225e0 27 30 27 29 20 3f 20 66 61 6c 73 65 20 3a 20 65 6d 70 74 79 28 24 78 29 3b 0a 7d 3b 0a 0a 69 66 '0').?.false.:.empty($x);.};..if
122600 20 28 28 21 24 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 31 5d 29 20 26 26 20 21 24 65 6d .((!$empty($matches[11]).&&.!$em
122620 70 74 79 28 24 6d 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 pty($matches[12])).||.!empty($ma
122640 74 63 68 65 73 5b 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 tches[14]).||.!empty($matches[16
122660 5d 29 29 20 7b 0a 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 ])).{.$highVersion.=.$this->norm
122680 61 6c 69 7a 65 28 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 alize($matches['to']);.$upperBou
1226a0 6e 64 20 3d 20 6e 65 77 20 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 3d 27 2c 20 24 68 69 67 68 56 nd.=.new.Constraint('<=',.$highV
1226c0 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 61 ersion);.}.else.{.$highMatch.=.a
1226e0 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 5b rray('',.$matches[10],.$matches[
122700 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 29 11],.$matches[12],.$matches[13])
122720 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 61 ;.$highVersion.=.$this->manipula
122740 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 24 65 6d 70 teVersionString($highMatch,.$emp
122760 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)...'
122780 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 43 6f 6e 73 74 72 61 -dev';.$upperBound.=.new.Constra
1227a0 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 0a 0a 72 65 74 75 72 int('<',.$highVersion);.}..retur
1227c0 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 70 65 72 42 6f 75 6e n.array(.$lowerBound,.$upperBoun
1227e0 64 2c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3c 3e d,.);.}....if.(preg_match('{^(<>
122800 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 2c 20 24 63 6f 6e |!=|>=?|<=?|==?)?\s*(.*)}',.$con
122820 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 7b 0a 24 76 65 72 straint,.$matches)).{.try.{.$ver
122840 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 68 65 73 sion.=.$this->normalize($matches
122860 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 74 79 4d 6f 64 69 [2]);..if.(!empty($stabilityModi
122880 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 6c 69 74 79 28 24 fier).&&.$this->parseStability($
1228a0 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 76 65 72 73 69 6f version).===.'stable').{.$versio
1228c0 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 69 65 72 3b 0a 7d n..=.'-'...$stabilityModifier;.}
1228e0 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 31 5d 20 7c 7c 20 .elseif.('<'.===.$matches[1].||.
122900 27 3e 3d 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 7b 0a 69 66 20 28 21 70 72 65 '>='.===.$matches[1]).{.if.(!pre
122920 67 5f 6d 61 74 63 68 28 27 2f 2d 27 20 2e 20 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 g_match('/-'...self::$modifierRe
122940 67 65 78 20 2e 20 27 24 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b gex...'$/',.strtolower($matches[
122960 32 5d 29 29 29 20 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 2]))).{.if.(substr($matches[2],.
122980 30 2c 20 34 29 20 21 3d 3d 20 27 64 65 76 2d 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 0,.4).!==.'dev-').{.$version..=.
1229a0 27 2d 64 65 76 27 3b 0a 7d 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.
1229c0 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 20 27 3d 27 2c 20 24 Constraint($matches[1].?:.'=',.$
1229e0 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 70 74 69 6f 6e 20 24 version));.}.catch.(\Exception.$
122a00 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 6c 64 20 6e 6f 74 20 e).{.}.}..$message.=.'Could.not.
122a20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 20 2e 20 24 63 6f parse.version.constraint.'...$co
122a40 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 24 6d 65 73 73 nstraint;.if.(isset($e)).{.$mess
122a60 61 67 65 20 2e 3d 20 27 3a 20 27 20 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a age..=.':.'...$e->getMessage();.
122a80 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 }..throw.new.\UnexpectedValueExc
122aa0 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 0a 0a 0a 0a eption($message);.}.............
122ac0 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 65 72 73 .private.function.manipulateVers
122ae0 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 24 ionString($matches,.$position,.$
122b00 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 66 6f 72 increment.=.0,.$pad.=.'0').{.for
122b20 20 28 24 69 20 3d 20 34 3b 20 24 69 20 3e 20 30 3b 20 2d 2d 24 69 29 20 7b 0a 69 66 20 28 24 69 .($i.=.4;.$i.>.0;.--$i).{.if.($i
122b40 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 3d 20 24 .>.$position).{.$matches[$i].=.$
122b60 70 61 64 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 20 3d 3d 3d 20 24 70 6f 73 69 74 69 6f 6e 20 pad;.}.elseif.($i.===.$position.
122b80 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 2b 3d &&.$increment).{.$matches[$i].+=
122ba0 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 5d 20 .$increment;...if.($matches[$i].
122bc0 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 2d 2d 24 70 <.0).{.$matches[$i].=.$pad;.--$p
122be0 6f 73 69 74 69 6f 6e 3b 0a 0a 0a 20 69 66 20 28 24 69 20 3d 3d 3d 20 31 29 20 7b 0a 72 65 74 75 osition;....if.($i.===.1).{.retu
122c00 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 20 rn;.}.}.}.}..return.$matches[1].
122c20 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 74 ..'.'...$matches[2]...'.'...$mat
122c40 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 0a ches[3]...'.'...$matches[4];.}..
122c60 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 70 61 6e 64 53 74 .......private.function.expandSt
122c80 61 62 69 6c 69 74 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 ability($stability).{.$stability
122ca0 20 3d 20 73 74 72 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 .=.strtolower($stability);..swit
122cc0 63 68 20 28 24 73 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 ch.($stability).{.case.'a':.retu
122ce0 72 6e 20 27 61 6c 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 rn.'alpha';.case.'b':.return.'be
122d00 74 61 27 3b 0a 63 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 ta';.case.'p':.case.'pl':.return
122d20 20 27 70 61 74 63 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 .'patch';.case.'rc':.return.'RC'
122d40 3b 0a 64 65 66 61 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 ;.default:.return.$stability;.}.
122d60 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 5f 5f 44 49 52 5f }.}.<?php....require_once.__DIR_
122d80 5f 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 _...'/composer'...'/autoload_rea
122da0 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 l.php';..return.ComposerAutoload
122dc0 65 72 49 6e 69 74 43 6f 6d 70 6f 73 65 72 50 68 61 72 31 34 34 39 31 35 39 34 37 38 3a 3a 67 65 erInitComposerPhar1449159478::ge
122de0 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.=
122e00 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
122e20 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
122e40 74 75 72 6e 20 61 72 72 61 79 28 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 turn.array(.);.<?php....$vendorD
122e60 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b ir.=.dirname(dirname(__FILE__));
122e80 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);
122ea0 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e ..return.array(.'Symfony\\Compon
122ec0 65 6e 74 5c 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 ent\\Process\\'.=>.array($vendor
122ee0 44 69 72 20 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 Dir...'/symfony/process'),.'Symf
122f00 6f 6e 79 5c 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 ony\\Component\\Finder\\'.=>.arr
122f20 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 66 69 6e 64 65 72 ay($vendorDir...'/symfony/finder
122f40 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 46 69 6c 65 73 79 73 '),.'Symfony\\Component\\Filesys
122f60 74 65 6d 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 tem\\'.=>.array($vendorDir...'/s
122f80 79 6d 66 6f 6e 79 2f 66 69 6c 65 73 79 73 74 65 6d 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 ymfony/filesystem'),.'Symfony\\C
122fa0 6f 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 omponent\\Console\\'.=>.array($v
122fc0 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 27 29 2c 0a endorDir...'/symfony/console'),.
122fe0 27 53 65 6c 64 5c 5c 50 68 61 72 55 74 69 6c 73 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 'Seld\\PharUtils\\'.=>.array($ve
123000 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 65 6c 64 2f 70 68 61 72 2d 75 74 69 6c 73 2f 73 72 63 27 ndorDir...'/seld/phar-utils/src'
123020 29 2c 0a 27 53 65 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 ),.'Seld\\JsonLint\\'.=>.array($
123040 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f vendorDir...'/seld/jsonlint/src/
123060 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 27 29 2c 0a 27 53 65 6c 64 5c 5c 43 6c 69 50 72 6f 6d 70 Seld/JsonLint'),.'Seld\\CliPromp
123080 74 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 65 6c t\\'.=>.array($vendorDir...'/sel
1230a0 64 2f 63 6c 69 2d 70 72 6f 6d 70 74 2f 73 72 63 27 29 2c 0a 27 4a 73 6f 6e 53 63 68 65 6d 61 5c d/cli-prompt/src'),.'JsonSchema\
1230c0 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 6a 75 73 74 69 \'.=>.array($vendorDir...'/justi
1230e0 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
123100 65 6d 61 27 29 2c 0a 27 43 6f 6d 70 6f 73 65 72 5c 5c 53 70 64 78 5c 5c 27 20 3d 3e 20 61 72 72 ema'),.'Composer\\Spdx\\'.=>.arr
123120 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2f 73 70 64 78 2d ay($vendorDir...'/composer/spdx-
123140 6c 69 63 65 6e 73 65 73 2f 73 72 63 27 29 2c 0a 27 43 6f 6d 70 6f 73 65 72 5c 5c 53 65 6d 76 65 licenses/src'),.'Composer\\Semve
123160 72 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 63 6f 6d r\\'.=>.array($vendorDir...'/com
123180 70 6f 73 65 72 2f 73 65 6d 76 65 72 2f 73 72 63 27 29 2c 0a 27 43 6f 6d 70 6f 73 65 72 5c 5c 27 poser/semver/src'),.'Composer\\'
1231a0 20 3d 3e 20 61 72 72 61 79 28 24 62 61 73 65 44 69 72 20 2e 20 27 2f 73 72 63 2f 43 6f 6d 70 6f .=>.array($baseDir...'/src/Compo
1231c0 73 65 72 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 72 20 3d 20 ser'),.);.<?php....$vendorDir.=.
1231e0 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 73 dirname(dirname(__FILE__));.$bas
123200 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 74 eDir.=.dirname($vendorDir);..ret
123220 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 20 43 6f 6d urn.array(.);.<?php....class.Com
123240 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 43 6f 6d 70 6f 73 65 72 50 68 61 72 31 poserAutoloaderInitComposerPhar1
123260 34 34 39 31 35 39 34 37 38 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 61 64 449159478.{.private.static.$load
123280 65 72 3b 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 6c 6f 61 64 er;..public.static.function.load
1232a0 43 6c 61 73 73 4c 6f 61 64 65 72 28 24 63 6c 61 73 73 29 0a 7b 0a 69 66 20 28 27 43 6f 6d 70 6f ClassLoader($class).{.if.('Compo
1232c0 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 20 3d 3d 3d 20 24 63 ser\Autoload\ClassLoader'.===.$c
1232e0 6c 61 73 73 29 20 7b 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 lass).{.require.__DIR__...'/Clas
123300 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 sLoader.php';.}.}..public.static
123320 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c .function.getLoader().{.if.(null
123340 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c .!==.self::$loader).{.return.sel
123360 66 3a 3a 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 f::$loader;.}..spl_autoload_regi
123380 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 6e ster(array('ComposerAutoloaderIn
1233a0 69 74 43 6f 6d 70 6f 73 65 72 50 68 61 72 31 34 34 39 31 35 39 34 37 38 27 2c 20 27 6c 6f 61 64 itComposerPhar1449159478',.'load
1233c0 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 73 65 6c 66 ClassLoader'),.true,.true);.self
1233e0 3a 3a 24 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f ::$loader.=.$loader.=.new.\Compo
123400 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 73 70 6c 5f ser\Autoload\ClassLoader();.spl_
123420 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f autoload_unregister(array('Compo
123440 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 43 6f 6d 70 6f 73 65 72 50 68 61 72 31 34 34 serAutoloaderInitComposerPhar144
123460 39 31 35 39 34 37 38 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b 0a 0a 9159478',.'loadClassLoader'));..
123480 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 6f 6c $map.=.require.__DIR__...'/autol
1234a0 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 24 6d oad_namespaces.php';.foreach.($m
1234c0 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 6c 6f ap.as.$namespace.=>.$path).{.$lo
1234e0 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 7d 0a ader->set($namespace,.$path);.}.
123500 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 6f .$map.=.require.__DIR__...'/auto
123520 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 61 73 load_psr4.php';.foreach.($map.as
123540 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d .$namespace.=>.$path).{.$loader-
123560 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 0a 0a >setPsr4($namespace,.$path);.}..
123580 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 27 2f $classMap.=.require.__DIR__...'/
1235a0 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 6c 61 autoload_classmap.php';.if.($cla
1235c0 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 24 63 ssMap).{.$loader->addClassMap($c
1235e0 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 28 74 lassMap);.}..$loader->register(t
123600 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 68 70 rue);..return.$loader;.}.}.<?php
123620 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 41 ............namespace.Composer\A
123640 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 0a utoload;........................
123660 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 76 ......class.ClassLoader.{...priv
123680 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 29 ate.$prefixLengthsPsr4.=.array()
1236a0 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 61 ;.private.$prefixDirsPsr4.=.arra
1236c0 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 3d y();.private.$fallbackDirsPsr4.=
1236e0 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 73 .array();....private.$prefixesPs
123700 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 44 r0.=.array();.private.$fallbackD
123720 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 65 irsPsr0.=.array();..private.$use
123740 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 6c IncludePath.=.false;.private.$cl
123760 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6c 61 73 assMap.=.array();..private.$clas
123780 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 75 62 6c sMapAuthoritative.=.false;..publ
1237a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 69 66 20 28 ic.function.getPrefixes().{.if.(
1237c0 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 30 29 29 20 7b 0a 72 !empty($this->prefixesPsr0)).{.r
1237e0 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
123800 79 5f 6d 65 72 67 65 27 2c 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a y_merge',.$this->prefixesPsr0);.
123820 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e }..return.array();.}..public.fun
123840 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 72 6e ction.getPrefixesPsr4().{.return
123860 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 6c 69 .$this->prefixDirsPsr4;.}..publi
123880 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 0a 72 c.function.getFallbackDirs().{.r
1238a0 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 0a 7d eturn.$this->fallbackDirsPsr0;.}
1238c0 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 69 72 ..public.function.getFallbackDir
1238e0 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 63 6b sPsr4().{.return.$this->fallback
123900 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 65 74 DirsPsr4;.}..public.function.get
123920 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 73 73 ClassMap().{.return.$this->class
123940 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 43 6c Map;.}.....public.function.addCl
123960 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 24 74 assMap(array.$classMap).{.if.($t
123980 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 61 70 his->classMap).{.$this->classMap
1239a0 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 2c 20 .=.array_merge($this->classMap,.
1239c0 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 61 73 $classMap);.}.else.{.$this->clas
1239e0 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 0a 70 sMap.=.$classMap;.}.}..........p
123a00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 ublic.function.add($prefix,.$pat
123a20 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 70 72 hs,.$prepend.=.false).{.if.(!$pr
123a40 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 3e 66 efix).{.if.($prepend).{.$this->f
123a60 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 0a 28 allbackDirsPsr0.=.array_merge(.(
123a80 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 44 69 array).$paths,.$this->fallbackDi
123aa0 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 62 61 rsPsr0.);.}.else.{.$this->fallba
123ac0 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 73 2d ckDirsPsr0.=.array_merge(.$this-
123ae0 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 74 68 >fallbackDirsPsr0,.(array).$path
123b00 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 72 65 s.);.}..return;.}..$first.=.$pre
123b20 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 69 78 fix[0];.if.(!isset($this->prefix
123b40 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 68 69 esPsr0[$first][$prefix])).{.$thi
123b60 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d s->prefixesPsr0[$first][$prefix]
123b80 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 69 66 .=.(array).$paths;..return;.}.if
123ba0 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 73 72 .($prepend).{.$this->prefixesPsr
123bc0 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 0[$first][$prefix].=.array_merge
123be0 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 78 65 (.(array).$paths,.$this->prefixe
123c00 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 73 65 sPsr0[$first][$prefix].);.}.else
123c20 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 5b 24 .{.$this->prefixesPsr0[$first][$
123c40 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 70 72 prefix].=.array_merge(.$this->pr
123c60 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 61 72 efixesPsr0[$first][$prefix],.(ar
123c80 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 0a 0a 70 75 ray).$paths.);.}.}............pu
123ca0 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,.$
123cc0 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.(!
123ce0 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
123d00 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
123d20 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
123d40 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
123d60 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(.$
123d80 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).
123da0 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
123dc0 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])).{.
123de0 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.
123e00 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]).
123e20 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
123e40 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.
123e60 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
123e80 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
123ea0 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
123ec0 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
123ee0 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
123f00 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
123f20 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
123f40 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[
123f60 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
123f80 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
123fa0 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
123fc0 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.);.}.}......
123fe0 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,.
124000 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-
124020 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
124040 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
124060 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).
124080 24 70 61 74 68 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $paths;.}.}...........public.fun
1240a0 63 74 69 6f 6e 20 73 65 74 50 73 72 34 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a 7b ction.setPsr4($prefix,.$paths).{
1240c0 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b .if.(!$prefix).{.$this->fallback
1240e0 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 7d 20 65 6c 73 DirsPsr4.=.(array).$paths;.}.els
124100 65 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 3b 0a 69 e.{.$length.=.strlen($prefix);.i
124120 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]
124140 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
124160 63 65 70 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 ception("A.non-empty.PSR-4.prefi
124180 78 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 x.must.end.with.a.namespace.sepa
1241a0 72 61 74 6f 72 2e 22 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 rator.");.}.$this->prefixLengths
1241c0 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 6e Psr4[$prefix[0]][$prefix].=.$len
1241e0 67 74 68 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 gth;.$this->prefixDirsPsr4[$pref
124200 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a ix].=.(array).$paths;.}.}.......
124220 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 public.function.setUseIncludePat
124240 68 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 73 65 49 h($useIncludePath).{.$this->useI
124260 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a ncludePath.=.$useIncludePath;.}.
124280 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 .......public.function.getUseInc
1242a0 6c 75 64 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e ludePath().{.return.$this->useIn
1242c0 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cludePath;.}........public.funct
1242e0 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 63 6c ion.setClassMapAuthoritative($cl
124300 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c assMapAuthoritative).{.$this->cl
124320 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 20 3d 20 24 63 6c 61 73 73 4d 61 70 41 assMapAuthoritative.=.$classMapA
124340 75 74 68 6f 72 69 74 61 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e uthoritative;.}.......public.fun
124360 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 28 29 0a ction.isClassMapAuthoritative().
124380 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 {.return.$this->classMapAuthorit
1243a0 61 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ative;.}.......public.function.r
1243c0 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 70 6c 5f egister($prepend.=.false).{.spl_
1243e0 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 autoload_register(array($this,.'
124400 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 7d 0a loadClass'),.true,.$prepend);.}.
124420 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 ....public.function.unregister()
124440 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 .{.spl_autoload_unregister(array
124460 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ($this,.'loadClass'));.}........
124480 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 public.function.loadClass($class
1244a0 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 ).{.if.($file.=.$this->findFile(
1244c0 24 63 6c 61 73 73 29 29 20 7b 0a 69 6e 63 6c 75 64 65 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 0a $class)).{.includeFile($file);..
1244e0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 return.true;.}.}.........public.
124500 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 0a 7b 0a 0a 20 69 66 function.findFile($class).{...if
124520 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 .('\\'.==.$class[0]).{.$class.=.
124540 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 substr($class,.1);.}....if.(isse
124560 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 72 65 t($this->classMap[$class])).{.re
124580 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 7d 0a turn.$this->classMap[$class];.}.
1245a0 69 66 20 28 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 65 if.($this->classMapAuthoritative
1245c0 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 20 3d 20 24 74 68 ).{.return.false;.}..$file.=.$th
1245e0 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 73 73 is->findFileWithExtension($class
124600 2c 20 27 2e 70 68 70 27 29 3b 0a 0a 0a 20 69 66 20 28 24 66 69 6c 65 20 3d 3d 3d 20 6e 75 6c 6c ,.'.php');....if.($file.===.null
124620 20 26 26 20 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 24 .&&.defined('HHVM_VERSION')).{.$
124640 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 73 file.=.$this->findFileWithExtens
124660 69 6f 6e 28 24 63 6c 61 73 73 2c 20 27 2e 68 68 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 66 69 6c 65 ion($class,.'.hh');.}..if.($file
124680 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 .===.null).{...return.$this->cla
1246a0 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ssMap[$class].=.false;.}..return
1246c0 20 24 66 69 6c 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 .$file;.}..private.function.find
1246e0 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 29 0a FileWithExtension($class,.$ext).
124700 7b 0a 0a 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 20 3d 20 73 74 72 74 72 28 24 63 6c {...$logicalPathPsr4.=.strtr($cl
124720 61 73 73 2c 20 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 ass,.'\\',.DIRECTORY_SEPARATOR).
124740 2e 20 24 65 78 74 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 ..$ext;..$first.=.$class[0];.if.
124760 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b (isset($this->prefixLengthsPsr4[
124780 24 66 69 72 73 74 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 $first])).{.foreach.($this->pref
1247a0 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
1247c0 20 3d 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 .=>.$length).{.if.(0.===.strpos(
1247e0 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 74 68 $class,.$prefix)).{.foreach.($th
124800 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 61 73 20 24 is->prefixDirsPsr4[$prefix].as.$
124820 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.=.$
124840 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 73 75 62 73 dir...DIRECTORY_SEPARATOR...subs
124860 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 6c 65 6e 67 74 68 29 29 29 20 tr($logicalPathPsr4,.$length))).
124880 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 {.return.$file;.}.}.}.}.}....for
1248a0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 61 73 each.($this->fallbackDirsPsr4.as
1248c0 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d .$dir).{.if.(file_exists($file.=
1248e0 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c .$dir...DIRECTORY_SEPARATOR...$l
124900 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b ogicalPathPsr4)).{.return.$file;
124920 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 .}.}....if.(false.!==.$pos.=.str
124940 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 0a 20 24 6c 6f 67 69 63 61 6c rpos($class,.'\\')).{...$logical
124960 50 61 74 68 50 73 72 30 20 3d 20 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 PathPsr0.=.substr($logicalPathPs
124980 72 34 2c 20 30 2c 20 24 70 6f 73 20 2b 20 31 29 0a 2e 20 73 74 72 74 72 28 73 75 62 73 74 72 28 r4,.0,.$pos.+.1)...strtr(substr(
1249a0 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 70 6f 73 20 2b 20 31 29 2c 20 27 5f 27 $logicalPathPsr4,.$pos.+.1),.'_'
1249c0 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 3b 0a 7d 20 65 6c 73 65 20 7b ,.DIRECTORY_SEPARATOR);.}.else.{
1249e0 0a 0a 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 20 3d 20 73 74 72 74 72 28 24 63 6c 61 ...$logicalPathPsr0.=.strtr($cla
124a00 73 73 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 ss,.'_',.DIRECTORY_SEPARATOR)...
124a20 24 65 78 74 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 $ext;.}..if.(isset($this->prefix
124a40 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
124a60 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
124a80 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(
124aa0 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
124ac0 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
124ae0 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
124b00 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.$
124b20 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
124b40 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
124b60 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
124b80 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
124ba0 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
124bc0 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
124be0 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($
124c00 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
124c20 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 46 69 ;.}.}.}.......function.includeFi
124c40 6c 65 28 24 66 69 6c 65 29 0a 7b 0a 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 7d 0a 3c 3f 70 le($file).{.include.$file;.}.<?p
124c60 68 70 0a 0a 69 66 20 28 50 48 50 5f 53 41 50 49 20 21 3d 3d 20 27 63 6c 69 27 29 20 7b 0a 20 20 hp..if.(PHP_SAPI.!==.'cli').{...
124c80 20 20 65 63 68 6f 20 27 57 61 72 6e 69 6e 67 3a 20 43 6f 6d 70 6f 73 65 72 20 73 68 6f 75 6c 64 ..echo.'Warning:.Composer.should
124ca0 20 62 65 20 69 6e 76 6f 6b 65 64 20 76 69 61 20 74 68 65 20 43 4c 49 20 76 65 72 73 69 6f 6e 20 .be.invoked.via.the.CLI.version.
124cc0 6f 66 20 50 48 50 2c 20 6e 6f 74 20 74 68 65 20 27 2e 50 48 50 5f 53 41 50 49 2e 27 20 53 41 50 of.PHP,.not.the.'.PHP_SAPI.'.SAP
124ce0 49 27 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 I'.PHP_EOL;.}..require.__DIR__.'
124d00 2f 2e 2e 2f 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d /../src/bootstrap.php';..use.Com
124d20 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 0a 65 72 72 6f poser\Console\Application;..erro
124d40 72 5f 72 65 70 6f 72 74 69 6e 67 28 2d 31 29 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 r_reporting(-1);..if.(function_e
124d60 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 29 20 7b 0a 20 20 20 20 40 69 6e 69 5f 73 65 74 xists('ini_set')).{.....@ini_set
124d80 28 27 64 69 73 70 6c 61 79 5f 65 72 72 6f 72 73 27 2c 20 31 29 3b 0a 0a 20 20 20 20 24 6d 65 6d ('display_errors',.1);......$mem
124da0 6f 72 79 49 6e 42 79 74 65 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b oryInBytes.=.function.($value).{
124dc0 0a 20 20 20 20 20 20 20 20 24 75 6e 69 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 .........$unit.=.strtolower(subs
124de0 74 72 28 24 76 61 6c 75 65 2c 20 2d 31 2c 20 31 29 29 3b 0a 20 20 20 20 20 20 20 20 24 76 61 6c tr($value,.-1,.1));.........$val
124e00 75 65 20 3d 20 28 69 6e 74 29 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 ue.=.(int).$value;.........switc
124e20 68 28 24 75 6e 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 67 27 3a h($unit).{.............case.'g':
124e40 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;
124e60 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
124e80 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)............
124ea0 20 63 61 73 65 20 27 6d 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 .case.'m':.................$valu
124ec0 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f e.*=.1024;.................//.no
124ee0 20 62 72 65 61 6b 20 28 63 75 6d 75 6c 61 74 69 76 65 20 6d 75 6c 74 69 70 6c 69 65 72 29 0a 20 .break.(cumulative.multiplier)..
124f00 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6b 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 ...........case.'k':............
124f20 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 7d 0a 0a .....$value.*=.1024;.........}..
124f40 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 7d 3b 0a 0a 20 ........return.$value;.....};...
124f60 20 20 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 3d 20 74 72 69 6d 28 69 6e 69 5f 67 65 74 28 27 ...$memoryLimit.=.trim(ini_get('
124f80 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 29 29 3b 0a 20 20 20 20 2f 2f 20 49 6e 63 72 65 61 73 65 memory_limit'));.....//.Increase
124fa0 20 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 20 69 66 20 69 74 20 69 73 20 6c 6f 77 65 72 20 74 68 61 .memory_limit.if.it.is.lower.tha
124fc0 6e 20 31 47 42 0a 20 20 20 20 69 66 20 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 n.1GB.....if.($memoryLimit.!=.-1
124fe0 20 26 26 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 .&&.$memoryInBytes($memoryLimit)
125000 20 3c 20 31 30 32 34 20 2a 20 31 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 20 20 20 20 20 20 20 .<.1024.*.1024.*.1024).{........
125020 20 40 69 6e 69 5f 73 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 2c 20 27 31 47 27 29 3b .@ini_set('memory_limit',.'1G');
125040 0a 20 20 20 20 7d 0a 20 20 20 20 75 6e 73 65 74 28 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c .....}.....unset($memoryInBytes,
125060 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 3b 0a 7d 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f .$memoryLimit);.}..//.run.the.co
125080 6d 6d 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d mmand.application.$application.=
1250a0 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e .new.Application();.$application
1250c0 2d 3e 72 75 6e 28 29 3b 0a 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 35 20 4e 69 6c ->run();..Copyright.(c).2015.Nil
1250e0 73 20 41 64 65 72 6d 61 6e 6e 2c 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d s.Adermann,.Jordi.Boggiano..Perm
125100 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 72 65 65 20 6f ission.is.hereby.granted,.free.o
125120 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 61 69 6e 69 6e f.charge,.to.any.person.obtainin
125140 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 6e 64 20 61 73 g.a.copy.of.this.software.and.as
125160 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 73 20 28 74 68 sociated.documentation.files.(th
125180 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 68 65 20 53 6f e."Software"),.to.deal.in.the.So
1251a0 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 20 69 6e 63 6c ftware.without.restriction,.incl
1251c0 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 65 20 72 69 67 uding.without.limitation.the.rig
1251e0 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 65 72 67 65 2c hts.to.use,.copy,.modify,.merge,
125200 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 63 65 6e 73 65 .publish,.distribute,.sublicense
125220 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 20 53 6f 66 74 ,.and/or.sell.copies.of.the.Soft
125240 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 20 74 6f 20 77 ware,.and.to.permit.persons.to.w
125260 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 65 64 0a 74 6f hom.the.Software.is.furnished.to
125280 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 6f 77 69 6e 67 .do.so,.subject.to.the.following
1252a0 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 79 72 69 67 68 .conditions:..The.above.copyrigh
1252c0 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 6e 20 6e 6f 74 t.notice.and.this.permission.not
1252e0 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 6c 0a 63 6f 70 ice.shall.be.included.in.all.cop
125300 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 20 6f 66 20 74 ies.or.substantial.portions.of.t
125320 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 49 53 20 50 52 he.Software...THE.SOFTWARE.IS.PR
125340 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 52 41 4e 54 59 OVIDED."AS.IS",.WITHOUT.WARRANTY
125360 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 50 4c 49 45 44 .OF.ANY.KIND,.EXPRESS.OR.IMPLIED
125380 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 20 54 4f 20 54 ,.INCLUDING.BUT.NOT.LIMITED.TO.T
1253a0 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 49 4c 49 54 59 HE.WARRANTIES.OF.MERCHANTABILITY
1253c0 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 50 55 52 50 4f ,.FITNESS.FOR.A.PARTICULAR.PURPO
1253e0 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 4e 4f 20 45 56 SE.AND.NONINFRINGEMENT..IN.NO.EV
125400 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 50 59 52 49 47 ENT.SHALL.THE.AUTHORS.OR.COPYRIG
125420 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 59 20 43 4c 41 HT.HOLDERS.BE.LIABLE.FOR.ANY.CLA
125440 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 49 54 59 2c 20 IM,.DAMAGES.OR.OTHER.LIABILITY,.
125460 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 54 52 41 43 54 WHETHER.IN.AN.ACTION.OF.CONTRACT
125480 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 47 20 46 52 4f ,.TORT.OR.OTHERWISE,.ARISING.FRO
1254a0 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 57 49 54 48 20 M,.OUT.OF.OR.IN.CONNECTION.WITH.
1254c0 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 4f 54 48 45 52 THE.SOFTWARE.OR.THE.USE.OR.OTHER
1254e0 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 0a f5 07 10 3f .DEALINGS.IN.THE.SOFTWARE......?
125500 a7 fd a6 a1 db ff 75 34 8b c1 db d2 ed 2a 14 cd 02 00 00 00 47 42 4d 42 ......u4.....*......GBMB