<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[38394] trunk: Bootstrap: add `composer.lock` and `src/wp-vendor` files.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/38394">38394</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/38394","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>wonderboymusic</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2016-08-27 03:48:08 +0000 (Sat, 27 Aug 2016)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Bootstrap: add `composer.lock` and `src/wp-vendor` files. Nothing is using this code yet, just going through the motions. Ignore the files in `src/wp-vendor/composer` that will explode in PHP 5.2.

See <a href="https://core.trac.wordpress.org/ticket/36335">#36335</a>.</pre>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkcomposerlock">trunk/composer.lock</a></li>
<li>trunk/src/wp-vendor/</li>
<li><a href="#trunksrcwpvendorautoload_52php">trunk/src/wp-vendor/autoload_52.php</a></li>
<li>trunk/src/wp-vendor/composer/</li>
<li><a href="#trunksrcwpvendorcomposerClassLoader52php">trunk/src/wp-vendor/composer/ClassLoader52.php</a></li>
<li><a href="#trunksrcwpvendorcomposerLICENSE">trunk/src/wp-vendor/composer/LICENSE</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_classmapphp">trunk/src/wp-vendor/composer/autoload_classmap.php</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_namespacesphp">trunk/src/wp-vendor/composer/autoload_namespaces.php</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_psr4php">trunk/src/wp-vendor/composer/autoload_psr4.php</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_real_52php">trunk/src/wp-vendor/composer/autoload_real_52.php</a></li>
<li><a href="#trunksrcwpvendorcomposerinstalledjson">trunk/src/wp-vendor/composer/installed.json</a></li>
<li>trunk/src/wp-vendor/xrstf/</li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/</li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52LICENSE">trunk/src/wp-vendor/xrstf/composer-php52/LICENSE</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52READMEmd">trunk/src/wp-vendor/xrstf/composer-php52/README.md</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52composerjson">trunk/src/wp-vendor/xrstf/composer-php52/composer.json</a></li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/lib/</li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/</li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/</li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52AutoloadGeneratorphp">trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52ClassLoaderphp">trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52Generatorphp">trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php</a></li>
</ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#trunk">trunk/</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<span class="cx" style="display: block; padding: 0 10px">Index: trunk
</span><span class="cx" style="display: block; padding: 0 10px">===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- trunk        2016-08-27 03:35:35 UTC (rev 38393)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ trunk 2016-08-27 03:48:08 UTC (rev 38394)
</ins><a id="trunk"></a>
<div class="propset"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Property changes: trunk</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnignore"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: svn:ignore</h4></div>
<span class="cx" style="display: block; padding: 0 10px"> npm-debug.log
</span><span class="cx" style="display: block; padding: 0 10px"> build
</span><span class="cx" style="display: block; padding: 0 10px"> wp-cli.local.yml 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+# Composer-generated files that do not pass the 5.2 linter
+src/wp-vendor/autoload.php
+src/wp-vendor/composer/autoload_real.php
+src/wp-vendor/composer/autoload_static.php
+src/wp-vendor/composer/ClassLoader.php
</ins><a id="trunkcomposerlock"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/composer.lock</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/composer.lock                               (rev 0)
+++ trunk/composer.lock 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,50 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+        "This file is @generated automatically"
+    ],
+    "hash": "a72f57ac77499086388d3fd01787fc07",
+    "content-hash": "4b675f5b2ea4e6f58fcbdf81132e35bb",
+    "packages": [
+        {
+            "name": "xrstf/composer-php52",
+            "version": "v1.0.20",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/composer-php52/composer-php52.git",
+                "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
+                "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
+                "shasum": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-default": "1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "xrstf\\Composer52": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "time": "2016-04-16 21:52:24"
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": []
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorautoload_52php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/autoload_52.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/autoload_52.php                               (rev 0)
+++ trunk/src/wp-vendor/autoload_52.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,7 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_52.php generated by xrstf/composer-php52
+
+require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
+
+return ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420::getLoader();
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerClassLoader52php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/ClassLoader52.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/ClassLoader52.php                            (rev 0)
+++ trunk/src/wp-vendor/composer/ClassLoader52.php      2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,271 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * --------------------------------------------------------------------------
+ *
+ * 99% of this is copied as-is from the original Composer source code and is
+ * released under MIT license as well. Copyright goes to:
+ *
+ * - Fabien Potencier <fabien@symfony.com>
+ * - Jordi Boggiano <j.boggiano@seld.be>
+ */
+
+class xrstf_Composer52_ClassLoader {
+       private $prefixes              = array();
+       private $fallbackDirs          = array();
+       private $useIncludePath        = false;
+       private $classMap              = array();
+       private $classMapAuthoratative = false;
+       private $allowUnderscore       = false;
+
+       /**
+        * @param boolean $flag  true to allow class names with a leading underscore, false to disable
+        */
+       public function setAllowUnderscore($flag) {
+               $this->allowUnderscore = (boolean) $flag;
+       }
+
+       /**
+        * @return array
+        */
+       public function getPrefixes() {
+               return $this->prefixes;
+       }
+
+       /**
+        * Turns off searching the prefix and fallback directories for classes
+        * that have not been registered with the class map.
+        *
+        * @param bool $classMapAuthoratative
+        */
+       public function setClassMapAuthoritative($classMapAuthoratative) {
+               $this->classMapAuthoratative = $classMapAuthoratative;
+       }
+
+       /**
+        * Should class lookup fail if not found in the current class map?
+        *
+        * @return bool
+        */
+       public function getClassMapAuthoratative() {
+               return $this->classMapAuthoratative;
+       }
+
+       /**
+        * @return array
+        */
+       public function getFallbackDirs() {
+               return $this->fallbackDirs;
+       }
+
+       /**
+        * @return array
+        */
+       public function getClassMap() {
+               return $this->classMap;
+       }
+
+       /**
+        * @param array $classMap  class to filename map
+        */
+       public function addClassMap(array $classMap) {
+               if ($this->classMap) {
+                       $this->classMap = array_merge($this->classMap, $classMap);
+               }
+               else {
+                       $this->classMap = $classMap;
+               }
+       }
+
+       /**
+        * Registers a set of classes, merging with any others previously set.
+        *
+        * @param string       $prefix   the classes prefix
+        * @param array|string $paths    the location(s) of the classes
+        * @param bool         $prepend  prepend the location(s)
+        */
+       public function add($prefix, $paths, $prepend = false) {
+               if (!$prefix) {
+                       if ($prepend) {
+                               $this->fallbackDirs = array_merge(
+                                       (array) $paths,
+                                       $this->fallbackDirs
+                               );
+                       }
+                       else {
+                               $this->fallbackDirs = array_merge(
+                                       $this->fallbackDirs,
+                                       (array) $paths
+                               );
+                       }
+
+                       return;
+               }
+
+               if (!isset($this->prefixes[$prefix])) {
+                       $this->prefixes[$prefix] = (array) $paths;
+                       return;
+               }
+
+               if ($prepend) {
+                       $this->prefixes[$prefix] = array_merge(
+                               (array) $paths,
+                               $this->prefixes[$prefix]
+                       );
+               }
+               else {
+                       $this->prefixes[$prefix] = array_merge(
+                               $this->prefixes[$prefix],
+                               (array) $paths
+                       );
+               }
+       }
+
+       /**
+        * Registers a set of classes, replacing any others previously set.
+        *
+        * @param string       $prefix  the classes prefix
+        * @param array|string $paths   the location(s) of the classes
+        */
+       public function set($prefix, $paths) {
+               if (!$prefix) {
+                       $this->fallbackDirs = (array) $paths;
+                       return;
+               }
+
+               $this->prefixes[$prefix] = (array) $paths;
+       }
+
+       /**
+        * Turns on searching the include path for class files.
+        *
+        * @param bool $useIncludePath
+        */
+       public function setUseIncludePath($useIncludePath) {
+               $this->useIncludePath = $useIncludePath;
+       }
+
+       /**
+        * Can be used to check if the autoloader uses the include path to check
+        * for classes.
+        *
+        * @return bool
+        */
+       public function getUseIncludePath() {
+               return $this->useIncludePath;
+       }
+
+       /**
+        * Registers this instance as an autoloader.
+        */
+       public function register() {
+               spl_autoload_register(array($this, 'loadClass'), true);
+       }
+
+       /**
+        * Unregisters this instance as an autoloader.
+        */
+       public function unregister() {
+               spl_autoload_unregister(array($this, 'loadClass'));
+       }
+
+       /**
+        * Loads the given class or interface.
+        *
+        * @param  string $class  the name of the class
+        * @return bool|null      true, if loaded
+        */
+       public function loadClass($class) {
+               if ($file = $this->findFile($class)) {
+                       include $file;
+                       return true;
+               }
+       }
+
+       /**
+        * Finds the path to the file where the class is defined.
+        *
+        * @param  string $class  the name of the class
+        * @return string|null    the path, if found
+        */
+       public function findFile($class) {
+               if ('\\' === $class[0]) {
+                       $class = substr($class, 1);
+               }
+
+               if (isset($this->classMap[$class])) {
+                       return $this->classMap[$class];
+               }
+               elseif ($this->classMapAuthoratative) {
+                       return false;
+               }
+
+               $classPath = $this->getClassPath($class);
+
+               foreach ($this->prefixes as $prefix => $dirs) {
+                       if (0 === strpos($class, $prefix)) {
+                               foreach ($dirs as $dir) {
+                                       if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+                                               return $dir.DIRECTORY_SEPARATOR.$classPath;
+                                       }
+                               }
+                       }
+               }
+
+               foreach ($this->fallbackDirs as $dir) {
+                       if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+                               return $dir.DIRECTORY_SEPARATOR.$classPath;
+                       }
+               }
+
+               if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
+                       return $file;
+               }
+
+               return $this->classMap[$class] = false;
+       }
+
+       private function getClassPath($class) {
+               if (false !== $pos = strrpos($class, '\\')) {
+                       // namespaced class name
+                       $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
+                       $className = substr($class, $pos + 1);
+               }
+               else {
+                       // PEAR-like class name
+                       $classPath = null;
+                       $className = $class;
+               }
+
+               $className = str_replace('_', DIRECTORY_SEPARATOR, $className);
+
+               // restore the prefix
+               if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
+                       $className[0] = '_';
+               }
+
+               $classPath .= $className.'.php';
+
+               return $classPath;
+       }
+
+       public static function resolveIncludePath($classPath) {
+               $paths = explode(PATH_SEPARATOR, get_include_path());
+
+               foreach ($paths as $path) {
+                       $path = rtrim($path, '/\\');
+
+                       if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
+                               return $file;
+                       }
+               }
+
+               return false;
+       }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerLICENSE"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/LICENSE</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/LICENSE                              (rev 0)
+++ trunk/src/wp-vendor/composer/LICENSE        2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,21 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+Copyright (c) 2016 Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_classmapphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_classmap.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_classmap.php                                (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_classmap.php  2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,201 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_classmap.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
+
+return array(
+    'Automatic_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-automatic-upgrader-skin.php',
+    'Bulk_Plugin_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-plugin-upgrader-skin.php',
+    'Bulk_Theme_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-theme-upgrader-skin.php',
+    'Bulk_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-upgrader-skin.php',
+    'Core_Upgrader' => $baseDir . '/src/wp-admin/includes/class-core-upgrader.php',
+    'Custom_Background' => $baseDir . '/src/wp-admin/custom-background.php',
+    'Custom_Image_Header' => $baseDir . '/src/wp-admin/custom-header.php',
+    'File_Upload_Upgrader' => $baseDir . '/src/wp-admin/includes/class-file-upload-upgrader.php',
+    'IXR_Base64' => $baseDir . '/src/wp-includes/IXR/class-IXR-base64.php',
+    'IXR_Client' => $baseDir . '/src/wp-includes/IXR/class-IXR-client.php',
+    'IXR_ClientMulticall' => $baseDir . '/src/wp-includes/IXR/class-IXR-clientmulticall.php',
+    'IXR_Date' => $baseDir . '/src/wp-includes/IXR/class-IXR-date.php',
+    'IXR_Error' => $baseDir . '/src/wp-includes/IXR/class-IXR-error.php',
+    'IXR_IntrospectionServer' => $baseDir . '/src/wp-includes/IXR/class-IXR-introspectionserver.php',
+    'IXR_Message' => $baseDir . '/src/wp-includes/IXR/class-IXR-message.php',
+    'IXR_Request' => $baseDir . '/src/wp-includes/IXR/class-IXR-request.php',
+    'IXR_Server' => $baseDir . '/src/wp-includes/IXR/class-IXR-server.php',
+    'IXR_Value' => $baseDir . '/src/wp-includes/IXR/class-IXR-value.php',
+    'Language_Pack_Upgrader' => $baseDir . '/src/wp-admin/includes/class-language-pack-upgrader.php',
+    'Language_Pack_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-language-pack-upgrader-skin.php',
+    'PHPMailer' => $baseDir . '/src/wp-includes/class-phpmailer.php',
+    'POP3' => $baseDir . '/src/wp-includes/class-pop3.php',
+    'PasswordHash' => $baseDir . '/src/wp-includes/class-phpass.php',
+    'PclZip' => $baseDir . '/src/wp-admin/includes/class-pclzip.php',
+    'Plugin_Installer_Skin' => $baseDir . '/src/wp-admin/includes/class-plugin-installer-skin.php',
+    'Plugin_Upgrader' => $baseDir . '/src/wp-admin/includes/class-plugin-upgrader.php',
+    'Plugin_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-plugin-upgrader-skin.php',
+    'Requests' => $baseDir . '/src/wp-includes/class-requests.php',
+    'SMTP' => $baseDir . '/src/wp-includes/class-smtp.php',
+    'Services_JSON' => $baseDir . '/src/wp-includes/class-json.php',
+    'Services_JSON_Error' => $baseDir . '/src/wp-includes/class-json.php',
+    'SimplePie' => $baseDir . '/src/wp-includes/class-simplepie.php',
+    'Theme_Installer_Skin' => $baseDir . '/src/wp-admin/includes/class-theme-installer-skin.php',
+    'Theme_Upgrader' => $baseDir . '/src/wp-admin/includes/class-theme-upgrader.php',
+    'Theme_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-theme-upgrader-skin.php',
+    'WP' => $baseDir . '/src/wp-includes/class-wp.php',
+    'WP_Admin_Bar' => $baseDir . '/src/wp-includes/class-wp-admin-bar.php',
+    'WP_Ajax_Response' => $baseDir . '/src/wp-includes/class-wp-ajax-response.php',
+    'WP_Ajax_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-wp-ajax-upgrader-skin.php',
+    'WP_Automatic_Updater' => $baseDir . '/src/wp-admin/includes/class-wp-automatic-updater.php',
+    'WP_Comment' => $baseDir . '/src/wp-includes/class-wp-comment.php',
+    'WP_Comment_Query' => $baseDir . '/src/wp-includes/class-wp-comment-query.php',
+    'WP_Comments_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-comments-list-table.php',
+    'WP_Customize_Background_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-background-image-control.php',
+    'WP_Customize_Background_Image_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-background-image-setting.php',
+    'WP_Customize_Color_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-color-control.php',
+    'WP_Customize_Control' => $baseDir . '/src/wp-includes/class-wp-customize-control.php',
+    'WP_Customize_Cropped_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-cropped-image-control.php',
+    'WP_Customize_Filter_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-filter-setting.php',
+    'WP_Customize_Header_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-header-image-control.php',
+    'WP_Customize_Header_Image_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-header-image-setting.php',
+    'WP_Customize_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-image-control.php',
+    'WP_Customize_Manager' => $baseDir . '/src/wp-includes/class-wp-customize-manager.php',
+    'WP_Customize_Media_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-media-control.php',
+    'WP_Customize_Nav_Menu_Auto_Add_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php',
+    'WP_Customize_Nav_Menu_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-control.php',
+    'WP_Customize_Nav_Menu_Item_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php',
+    'WP_Customize_Nav_Menu_Item_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php',
+    'WP_Customize_Nav_Menu_Location_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-location-control.php',
+    'WP_Customize_Nav_Menu_Name_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-name-control.php',
+    'WP_Customize_Nav_Menu_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-section.php',
+    'WP_Customize_Nav_Menu_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-setting.php',
+    'WP_Customize_Nav_Menus' => $baseDir . '/src/wp-includes/class-wp-customize-nav-menus.php',
+    'WP_Customize_Nav_Menus_Panel' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php',
+    'WP_Customize_New_Menu_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-new-menu-control.php',
+    'WP_Customize_New_Menu_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-new-menu-section.php',
+    'WP_Customize_Panel' => $baseDir . '/src/wp-includes/class-wp-customize-panel.php',
+    'WP_Customize_Partial' => $baseDir . '/src/wp-includes/customize/class-wp-customize-partial.php',
+    'WP_Customize_Section' => $baseDir . '/src/wp-includes/class-wp-customize-section.php',
+    'WP_Customize_Selective_Refresh' => $baseDir . '/src/wp-includes/customize/class-wp-customize-selective-refresh.php',
+    'WP_Customize_Setting' => $baseDir . '/src/wp-includes/class-wp-customize-setting.php',
+    'WP_Customize_Sidebar_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-sidebar-section.php',
+    'WP_Customize_Site_Icon_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-site-icon-control.php',
+    'WP_Customize_Theme_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-theme-control.php',
+    'WP_Customize_Themes_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-themes-section.php',
+    'WP_Customize_Upload_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-upload-control.php',
+    'WP_Customize_Widgets' => $baseDir . '/src/wp-includes/class-wp-customize-widgets.php',
+    'WP_Date_Query' => $baseDir . '/src/wp-includes/date.php',
+    'WP_Dependencies' => $baseDir . '/src/wp-includes/class.wp-dependencies.php',
+    'WP_Embed' => $baseDir . '/src/wp-includes/class-wp-embed.php',
+    'WP_Error' => $baseDir . '/src/wp-includes/class-wp-error.php',
+    'WP_Feed_Cache' => $baseDir . '/src/wp-includes/class-wp-feed-cache.php',
+    'WP_Feed_Cache_Transient' => $baseDir . '/src/wp-includes/class-wp-feed-cache-transient.php',
+    'WP_Filesystem_Base' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-base.php',
+    'WP_Filesystem_Direct' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-direct.php',
+    'WP_Filesystem_FTPext' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ftpext.php',
+    'WP_Filesystem_SSH2' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ssh2.php',
+    'WP_Filesystem_ftpsockets' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php',
+    'WP_HTTP_Fsockopen' => $baseDir . '/src/wp-includes/class-wp-http-streams.php',
+    'WP_HTTP_IXR_Client' => $baseDir . '/src/wp-includes/class-wp-http-ixr-client.php',
+    'WP_HTTP_Proxy' => $baseDir . '/src/wp-includes/class-wp-http-proxy.php',
+    'WP_HTTP_Requests_Response' => $baseDir . '/src/wp-includes/class-wp-http-requests-response.php',
+    'WP_HTTP_Response' => $baseDir . '/src/wp-includes/class-wp-http-response.php',
+    'WP_Http' => $baseDir . '/src/wp-includes/class-http.php',
+    'WP_Http_Cookie' => $baseDir . '/src/wp-includes/class-wp-http-cookie.php',
+    'WP_Http_Curl' => $baseDir . '/src/wp-includes/class-wp-http-curl.php',
+    'WP_Http_Encoding' => $baseDir . '/src/wp-includes/class-wp-http-encoding.php',
+    'WP_Http_Streams' => $baseDir . '/src/wp-includes/class-wp-http-streams.php',
+    'WP_Image_Editor' => $baseDir . '/src/wp-includes/class-wp-image-editor.php',
+    'WP_Image_Editor_GD' => $baseDir . '/src/wp-includes/class-wp-image-editor-gd.php',
+    'WP_Image_Editor_Imagick' => $baseDir . '/src/wp-includes/class-wp-image-editor-imagick.php',
+    'WP_Importer' => $baseDir . '/src/wp-admin/includes/class-wp-importer.php',
+    'WP_Internal_Pointers' => $baseDir . '/src/wp-admin/includes/class-wp-internal-pointers.php',
+    'WP_Links_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-links-list-table.php',
+    'WP_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-list-table.php',
+    'WP_Locale' => $baseDir . '/src/wp-includes/class-wp-locale.php',
+    'WP_MS_Sites_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-sites-list-table.php',
+    'WP_MS_Themes_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-themes-list-table.php',
+    'WP_MS_Users_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-users-list-table.php',
+    'WP_MatchesMapRegex' => $baseDir . '/src/wp-includes/class-wp-matchesmapregex.php',
+    'WP_Media_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-media-list-table.php',
+    'WP_Meta_Query' => $baseDir . '/src/wp-includes/class-wp-meta-query.php',
+    'WP_Metadata_Lazyloader' => $baseDir . '/src/wp-includes/class-wp-metadata-lazyloader.php',
+    'WP_Nav_Menu_Widget' => $baseDir . '/src/wp-includes/widgets/class-wp-nav-menu-widget.php',
+    'WP_Network' => $baseDir . '/src/wp-includes/class-wp-network.php',
+    'WP_Network_Query' => $baseDir . '/src/wp-includes/class-wp-network-query.php',
+    'WP_Plugin_Install_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-plugin-install-list-table.php',
+    'WP_Plugins_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-plugins-list-table.php',
+    'WP_Post' => $baseDir . '/src/wp-includes/class-wp-post.php',
+    'WP_Post_Comments_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-post-comments-list-table.php',
+    'WP_Post_Type' => $baseDir . '/src/wp-includes/class-wp-post-type.php',
+    'WP_Posts_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-posts-list-table.php',
+    'WP_Press_This' => $baseDir . '/src/wp-admin/includes/class-wp-press-this.php',
+    'WP_Query' => $baseDir . '/src/wp-includes/class-wp-query.php',
+    'WP_REST_Request' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-request.php',
+    'WP_REST_Response' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-response.php',
+    'WP_REST_Server' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-server.php',
+    'WP_Rewrite' => $baseDir . '/src/wp-includes/class-wp-rewrite.php',
+    'WP_Role' => $baseDir . '/src/wp-includes/class-wp-role.php',
+    'WP_Roles' => $baseDir . '/src/wp-includes/class-wp-roles.php',
+    'WP_Screen' => $baseDir . '/src/wp-admin/includes/class-wp-screen.php',
+    'WP_Scripts' => $baseDir . '/src/wp-includes/class.wp-scripts.php',
+    'WP_Session_Tokens' => $baseDir . '/src/wp-includes/class-wp-session-tokens.php',
+    'WP_SimplePie_File' => $baseDir . '/src/wp-includes/class-wp-simplepie-file.php',
+    'WP_SimplePie_Sanitize_KSES' => $baseDir . '/src/wp-includes/class-wp-simplepie-sanitize-kses.php',
+    'WP_Site' => $baseDir . '/src/wp-includes/class-wp-site.php',
+    'WP_Site_Icon' => $baseDir . '/src/wp-admin/includes/class-wp-site-icon.php',
+    'WP_Site_Query' => $baseDir . '/src/wp-includes/class-wp-site-query.php',
+    'WP_Styles' => $baseDir . '/src/wp-includes/class.wp-styles.php',
+    'WP_Tax_Query' => $baseDir . '/src/wp-includes/class-wp-tax-query.php',
+    'WP_Term' => $baseDir . '/src/wp-includes/class-wp-term.php',
+    'WP_Term_Query' => $baseDir . '/src/wp-includes/class-wp-term-query.php',
+    'WP_Terms_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-terms-list-table.php',
+    'WP_Text_Diff_Renderer_Table' => $baseDir . '/src/wp-includes/class-wp-text-diff-renderer-table.php',
+    'WP_Text_Diff_Renderer_inline' => $baseDir . '/src/wp-includes/class-wp-text-diff-renderer-inline.php',
+    'WP_Theme' => $baseDir . '/src/wp-includes/class-wp-theme.php',
+    'WP_Theme_Install_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-theme-install-list-table.php',
+    'WP_Themes_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-themes-list-table.php',
+    'WP_Upgrader' => $baseDir . '/src/wp-admin/includes/class-wp-upgrader.php',
+    'WP_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-wp-upgrader-skin.php',
+    'WP_User' => $baseDir . '/src/wp-includes/class-wp-user.php',
+    'WP_User_Meta_Session_Tokens' => $baseDir . '/src/wp-includes/class-wp-user-meta-session-tokens.php',
+    'WP_User_Query' => $baseDir . '/src/wp-includes/class-wp-user-query.php',
+    'WP_Users_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-users-list-table.php',
+    'WP_Widget' => $baseDir . '/src/wp-includes/class-wp-widget.php',
+    'WP_Widget_Archives' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-archives.php',
+    'WP_Widget_Area_Customize_Control' => $baseDir . '/src/wp-includes/customize/class-wp-widget-area-customize-control.php',
+    'WP_Widget_Calendar' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-calendar.php',
+    'WP_Widget_Categories' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-categories.php',
+    'WP_Widget_Factory' => $baseDir . '/src/wp-includes/class-wp-widget-factory.php',
+    'WP_Widget_Form_Customize_Control' => $baseDir . '/src/wp-includes/customize/class-wp-widget-form-customize-control.php',
+    'WP_Widget_Links' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-links.php',
+    'WP_Widget_Meta' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-meta.php',
+    'WP_Widget_Pages' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-pages.php',
+    'WP_Widget_RSS' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-rss.php',
+    'WP_Widget_Recent_Comments' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-recent-comments.php',
+    'WP_Widget_Recent_Posts' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-recent-posts.php',
+    'WP_Widget_Search' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-search.php',
+    'WP_Widget_Tag_Cloud' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-tag-cloud.php',
+    'WP_Widget_Text' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-text.php',
+    'WP_oEmbed' => $baseDir . '/src/wp-includes/class-oembed.php',
+    'WP_oEmbed_Controller' => $baseDir . '/src/wp-includes/class-wp-oembed-controller.php',
+    'Walker' => $baseDir . '/src/wp-includes/class-wp-walker.php',
+    'Walker_Category' => $baseDir . '/src/wp-includes/class-walker-category.php',
+    'Walker_CategoryDropdown' => $baseDir . '/src/wp-includes/class-walker-category-dropdown.php',
+    'Walker_Category_Checklist' => $baseDir . '/src/wp-admin/includes/class-walker-category-checklist.php',
+    'Walker_Comment' => $baseDir . '/src/wp-includes/class-walker-comment.php',
+    'Walker_Nav_Menu' => $baseDir . '/src/wp-includes/class-walker-nav-menu.php',
+    'Walker_Nav_Menu_Checklist' => $baseDir . '/src/wp-admin/includes/class-walker-nav-menu-checklist.php',
+    'Walker_Nav_Menu_Edit' => $baseDir . '/src/wp-admin/includes/class-walker-nav-menu-edit.php',
+    'Walker_Page' => $baseDir . '/src/wp-includes/class-walker-page.php',
+    'Walker_PageDropdown' => $baseDir . '/src/wp-includes/class-walker-page-dropdown.php',
+    '_WP_Dependency' => $baseDir . '/src/wp-includes/class-wp-dependency.php',
+    '_WP_Editors' => $baseDir . '/src/wp-includes/class-wp-editor.php',
+    '_WP_List_Table_Compat' => $baseDir . '/src/wp-admin/includes/class-wp-list-table-compat.php',
+    'ftp' => $baseDir . '/src/wp-admin/includes/class-ftp.php',
+    'ftp_base' => $baseDir . '/src/wp-admin/includes/class-ftp.php',
+    'ftp_pure' => $baseDir . '/src/wp-admin/includes/class-ftp-pure.php',
+    'ftp_sockets' => $baseDir . '/src/wp-admin/includes/class-ftp-sockets.php',
+    'phpmailerException' => $baseDir . '/src/wp-includes/class-phpmailer.php',
+    'wp_xmlrpc_server' => $baseDir . '/src/wp-includes/class-wp-xmlrpc-server.php',
+    'wpdb' => $baseDir . '/src/wp-includes/wp-db.php',
+);
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_namespacesphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_namespaces.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_namespaces.php                              (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_namespaces.php        2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,10 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_namespaces.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
+
+return array(
+    'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
+);
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_psr4php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_psr4.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_psr4.php                            (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_psr4.php      2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,9 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_psr4.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
+
+return array(
+);
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_real_52php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_real_52.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_real_52.php                         (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_real_52.php   2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,44 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_real_52.php generated by xrstf/composer-php52
+
+class ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420 {
+       private static $loader;
+
+       public static function loadClassLoader($class) {
+               if ('xrstf_Composer52_ClassLoader' === $class) {
+                       require dirname(__FILE__).'/ClassLoader52.php';
+               }
+       }
+
+       /**
+        * @return xrstf_Composer52_ClassLoader
+        */
+       public static function getLoader() {
+               if (null !== self::$loader) {
+                       return self::$loader;
+               }
+
+               spl_autoload_register(array('ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420', 'loadClassLoader'), true /*, true */);
+               self::$loader = $loader = new xrstf_Composer52_ClassLoader();
+               spl_autoload_unregister(array('ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420', 'loadClassLoader'));
+
+               $vendorDir = dirname(dirname(__FILE__));
+               $baseDir   = dirname(dirname($vendorDir));
+               $dir       = dirname(__FILE__);
+
+               $map = require $dir.'/autoload_namespaces.php';
+               foreach ($map as $namespace => $path) {
+                       $loader->add($namespace, $path);
+               }
+
+               $classMap = require $dir.'/autoload_classmap.php';
+               if ($classMap) {
+                       $loader->addClassMap($classMap);
+               }
+
+               $loader->register(true);
+
+               return $loader;
+       }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerinstalledjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/installed.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/installed.json                               (rev 0)
+++ trunk/src/wp-vendor/composer/installed.json 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,35 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+[
+    {
+        "name": "xrstf/composer-php52",
+        "version": "v1.0.20",
+        "version_normalized": "1.0.20.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/composer-php52/composer-php52.git",
+            "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
+            "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
+            "shasum": ""
+        },
+        "time": "2016-04-16 21:52:24",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-default": "1.x-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "xrstf\\Composer52": "lib/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ]
+    }
+]
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52LICENSE"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/LICENSE</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/LICENSE                          (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/LICENSE    2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,19 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+Copyright (c) 2013 Christoph Mewes
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52READMEmd"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/README.md</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/README.md                                (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/README.md  2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,37 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+PHP 5.2 Autoloading for Composer
+================================
+
+This package provides an easy way to get a PHP 5.2 compatible autoloader out of Composer. The generated autoloader is fully compatible to the original and is written into separate files, each ending with `_52.php`.
+
+Legacy
+------
+
+Please do not use this, if you can avoid it. It's a horrible hack, often breaks and is extremely tied to Composer's interna. This package was originally developed in 2012, when PHP 5.2 was much more common on cheap webhosts.
+
+In 2016, this package has been moved from Bitbucket to a Github organization, because the original developer could no longer reliably maintain it. This is the reason for this legacy package name ``xrstf/...``.
+
+Usage
+-----
+
+In your project's `composer.json`, add the following lines:
+
+```json
+{
+    "require": {
+        "xrstf/composer-php52": "1.*"
+    },
+    "scripts": {
+        "post-install-cmd": [
+            "xrstf\\Composer52\\Generator::onPostInstallCmd"
+        ],
+        "post-update-cmd": [
+            "xrstf\\Composer52\\Generator::onPostInstallCmd"
+        ],
+        "post-autoload-dump": [
+            "xrstf\\Composer52\\Generator::onPostInstallCmd"
+        ]
+    }
+}
+```
+
+After the next update/install, you will have a `vendor/autoload_52.php` file, that you can simply include and use in PHP 5.2 projects.
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52composerjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/composer.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/composer.json                            (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/composer.json      2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,26 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+    "name": "xrstf/composer-php52",
+    "license": "MIT",
+    "support": {
+        "source": "https://github.com/composer-php52/composer-php52",
+        "issues": "https://github.com/composer-php52/composer-php52/issues"
+    },
+    "autoload": {
+        "psr-0": {
+            "xrstf\\Composer52": "lib/"
+        }
+    },
+    "scripts": {
+        "post-install-cmd": [
+            "xrstf\\Composer52\\Generator::onPostInstallCmd"
+        ],
+        "post-update-cmd": [
+            "xrstf\\Composer52\\Generator::onPostInstallCmd"
+        ]
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-default": "1.x-dev"
+        }
+    }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52AutoloadGeneratorphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php                               (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,346 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * --------------------------------------------------------------------------
+ *
+ * 99% of this is copied as-is from the original Composer source code and is
+ * released under MIT license as well. Copyright goes to:
+ *
+ * - Igor Wiedler <igor@wiedler.ch>
+ * - Jordi Boggiano <j.boggiano@seld.be>
+ */
+
+namespace xrstf\Composer52;
+
+use Composer\Autoload\AutoloadGenerator as BaseGenerator;
+use Composer\Autoload\ClassMapGenerator;
+use Composer\Config;
+use Composer\Installer\InstallationManager;
+use Composer\Package\AliasPackage;
+use Composer\Package\PackageInterface;
+use Composer\Repository\InstalledRepositoryInterface;
+use Composer\Util\Filesystem;
+
+class AutoloadGenerator extends BaseGenerator {
+
+       /**
+        * @var bool
+        */
+       private $classMapAuthoritative = false;
+
+       public function __construct() {
+               // do nothing (but keep this constructor so we can build an instance without the need for an event dispatcher)
+       }
+
+       /**
+        * Whether or not generated autoloader considers the class map
+        * authoritative.
+        *
+        * @param bool $classMapAuthoritative
+        */
+       public function setClassMapAuthoritative($classMapAuthoritative)
+       {
+               $this->classMapAuthoritative = (boolean) $classMapAuthoritative;
+       }
+
+       public function dump(Config $config, InstalledRepositoryInterface $localRepo, PackageInterface $mainPackage, InstallationManager $installationManager, $targetDir, $scanPsr0Packages = false, $suffix = '') {
+               if ($this->classMapAuthoritative) {
+                       // Force scanPsr0Packages when classmap is authoritative
+                       $scanPsr0Packages = true;
+               }
+
+               $filesystem = new Filesystem();
+               $filesystem->ensureDirectoryExists($config->get('vendor-dir'));
+
+               $cwd        = getcwd();
+               $basePath   = $filesystem->normalizePath($cwd);
+               $vendorPath = $filesystem->normalizePath(realpath($config->get('vendor-dir')));
+               $targetDir  = $vendorPath.'/'.$targetDir;
+               $filesystem->ensureDirectoryExists($targetDir);
+
+               $useGlobalIncludePath  = (bool) $config->get('use-include-path');
+               $prependAutoloader     = $config->get('prepend-autoloader') === false ? 'false' : 'true';
+               $classMapAuthoritative = $config->get('classmap-authoritative');
+
+               $vendorPathCode            = $filesystem->findShortestPathCode(realpath($targetDir), $vendorPath, true);
+               $vendorPathToTargetDirCode = $filesystem->findShortestPathCode($vendorPath, realpath($targetDir), true);
+
+               $appBaseDirCode = $filesystem->findShortestPathCode($vendorPath, $basePath, true);
+               $appBaseDirCode = str_replace('__DIR__', '$vendorDir', $appBaseDirCode);
+
+               // add 5.2 compat
+               $vendorPathCode            = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathCode);
+               $vendorPathToTargetDirCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathToTargetDirCode);
+
+               $packageMap = $this->buildPackageMap($installationManager, $mainPackage, $localRepo->getCanonicalPackages());
+               $autoloads = $this->parseAutoloads($packageMap, $mainPackage);
+
+               // add custom psr-0 autoloading if the root package has a target dir
+               $targetDirLoader = null;
+               $mainAutoload = $mainPackage->getAutoload();
+               if ($mainPackage->getTargetDir() && !empty($mainAutoload['psr-0'])) {
+                       $levels   = count(explode('/', $filesystem->normalizePath($mainPackage->getTargetDir())));
+                       $prefixes = implode(', ', array_map(function ($prefix) {
+                               return var_export($prefix, true);
+                       }, array_keys($mainAutoload['psr-0'])));
+
+                       $baseDirFromTargetDirCode = $filesystem->findShortestPathCode($targetDir, $basePath, true);
+
+                       $targetDirLoader = <<<EOF
+
+       public static function autoload(\$class) {
+               \$dir      = $baseDirFromTargetDirCode.'/';
+               \$prefixes = array($prefixes);
+
+               foreach (\$prefixes as \$prefix) {
+                       if (0 !== strpos(\$class, \$prefix)) {
+                               continue;
+                       }
+
+                       \$path = explode(DIRECTORY_SEPARATOR, self::getClassPath(\$class));
+                       \$path = \$dir.implode('/', array_slice(\$path, $levels));
+
+                       if (!\$path = self::resolveIncludePath(\$path)) {
+                               return false;
+                       }
+
+                       require \$path;
+                       return true;
+               }
+       }
+
+EOF;
+               }
+
+               $filesCode = "";
+               $autoloads['files'] = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($autoloads['files']));
+               foreach ($autoloads['files'] as $functionFile) {
+                       // don't include file if it is using PHP 5.3+ syntax
+                       // https://bitbucket.org/xrstf/composer-php52/issue/4
+                       if ($this->isPHP53($functionFile)) {
+                               $filesCode .= '//               require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile)."; // disabled because of PHP 5.3 syntax\n";
+                       }
+                       else {
+                               $filesCode .= '         require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile).";\n";
+                       }
+               }
+
+               if (!$suffix) {
+                       $suffix = md5(uniqid('', true));
+               }
+
+               $includePathFile = $this->getIncludePathsFile($packageMap, $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode);
+
+               file_put_contents($vendorPath.'/autoload_52.php', $this->getAutoloadFile($vendorPathToTargetDirCode, $suffix));
+               file_put_contents($targetDir.'/autoload_real_52.php', $this->getAutoloadRealFile(true, (bool) $includePathFile, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader));
+
+               // use stream_copy_to_stream instead of copy
+               // to work around https://bugs.php.net/bug.php?id=64634
+               $sourceLoader = fopen(__DIR__.'/ClassLoader.php', 'r');
+               $targetLoader = fopen($targetDir.'/ClassLoader52.php', 'w+');
+               stream_copy_to_stream($sourceLoader, $targetLoader);
+               fclose($sourceLoader);
+               fclose($targetLoader);
+               unset($sourceLoader, $targetLoader);
+       }
+
+       protected function isPHP53($file) {
+               $tokens = token_get_all(file_get_contents($file));
+               $php53  = array(T_DIR, T_GOTO, T_NAMESPACE, T_NS_C, T_NS_SEPARATOR, T_USE);
+
+               // PHP 5.4+
+               if (defined('T_TRAIT')) {
+                       $php53[] = T_TRAIT;
+                       $php53[] = T_TRAIT_C;
+                       $php53[] = T_TRAIT_C;
+               }
+
+               // PHP 5.5+
+               if (defined('T_FINALLY')) {
+                       $php53[] = T_FINALLY;
+                       $php53[] = T_YIELD;
+               }
+
+               foreach ($tokens as $token) {
+                       if (is_array($token) && in_array($token[0], $php53)) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
+       protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode) {
+               $includePaths = array();
+
+               foreach ($packageMap as $item) {
+                       list($package, $installPath) = $item;
+
+                       if (null !== $package->getTargetDir() && strlen($package->getTargetDir()) > 0) {
+                               $installPath = substr($installPath, 0, -strlen('/'.$package->getTargetDir()));
+                       }
+
+                       foreach ($package->getIncludePaths() as $includePath) {
+                               $includePath = trim($includePath, '/');
+                               $includePaths[] = empty($installPath) ? $includePath : $installPath.'/'.$includePath;
+                       }
+               }
+
+               if (!$includePaths) {
+                       return;
+               }
+
+               $includePathsFile = <<<EOF
+<?php
+
+// include_paths_52.php generated by xrstf/composer-php52
+
+\$vendorDir = $vendorPathCode;
+\$baseDir = $appBaseDirCode;
+
+return array(
+
+EOF;
+
+               foreach ($includePaths as $path) {
+                       $includePathsFile .= "\t" . $this->getPathCode($filesystem, $basePath, $vendorPath, $path) . ",\n";
+               }
+
+               return $includePathsFile . ");\n";
+       }
+
+       protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix) {
+               return <<<AUTOLOAD
+<?php
+
+// autoload_52.php generated by xrstf/composer-php52
+
+require_once $vendorPathToTargetDirCode.'/autoload_real_52.php';
+
+return ComposerAutoloaderInit$suffix::getLoader();
+
+AUTOLOAD;
+       }
+
+       protected function getAutoloadRealFile($useClassMap, $useIncludePath, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion = 70000) {
+               // TODO the class ComposerAutoloaderInit should be revert to a closure
+               // when APC has been fixed:
+               // - https://github.com/composer/composer/issues/959
+               // - https://bugs.php.net/bug.php?id=52144
+               // - https://bugs.php.net/bug.php?id=61576
+               // - https://bugs.php.net/bug.php?id=59298
+
+               if ($filesCode) {
+                               $filesCode = "\n\n".rtrim($filesCode);
+               }
+
+               $file = <<<HEADER
+<?php
+
+// autoload_real_52.php generated by xrstf/composer-php52
+
+class ComposerAutoloaderInit$suffix {
+       private static \$loader;
+
+       public static function loadClassLoader(\$class) {
+               if ('xrstf_Composer52_ClassLoader' === \$class) {
+                       require dirname(__FILE__).'/ClassLoader52.php';
+               }
+       }
+
+       /**
+        * @return xrstf_Composer52_ClassLoader
+        */
+       public static function getLoader() {
+               if (null !== self::\$loader) {
+                       return self::\$loader;
+               }
+
+               spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'), true /*, true */);
+               self::\$loader = \$loader = new xrstf_Composer52_ClassLoader();
+               spl_autoload_unregister(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'));
+
+               \$vendorDir = $vendorPathCode;
+               \$baseDir   = $appBaseDirCode;
+               \$dir       = dirname(__FILE__);
+
+
+HEADER;
+
+               if ($useIncludePath) {
+                       $file .= <<<'INCLUDE_PATH'
+               $includePaths = require $dir.'/include_paths.php';
+               array_push($includePaths, get_include_path());
+               set_include_path(implode(PATH_SEPARATOR, $includePaths));
+
+
+INCLUDE_PATH;
+               }
+
+               $file .= <<<'PSR0'
+               $map = require $dir.'/autoload_namespaces.php';
+               foreach ($map as $namespace => $path) {
+                       $loader->add($namespace, $path);
+               }
+
+
+PSR0;
+
+               if ($useClassMap) {
+                       $file .= <<<'CLASSMAP'
+               $classMap = require $dir.'/autoload_classmap.php';
+               if ($classMap) {
+                       $loader->addClassMap($classMap);
+               }
+
+
+CLASSMAP;
+               }
+
+               if ($this->classMapAuthoritative) {
+                       $file .= <<<'CLASSMAPAUTHORITATIVE'
+               $loader->setClassMapAuthoritative(true);
+
+CLASSMAPAUTHORITATIVE;
+               }
+
+               if ($useGlobalIncludePath) {
+                       $file .= <<<'INCLUDEPATH'
+               $loader->setUseIncludePath(true);
+
+
+INCLUDEPATH;
+               }
+
+               if ($targetDirLoader) {
+                       $file .= <<<REGISTER_AUTOLOAD
+               spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'autoload'), true);
+
+
+REGISTER_AUTOLOAD;
+
+               }
+
+               $file .= <<<METHOD_FOOTER
+               \$loader->register($prependAutoloader);{$filesCode}
+
+               return \$loader;
+       }
+
+METHOD_FOOTER;
+
+               $file .= $targetDirLoader;
+
+               return $file . <<<FOOTER
+}
+
+FOOTER;
+
+       }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52ClassLoaderphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php                             (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php       2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,271 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * --------------------------------------------------------------------------
+ *
+ * 99% of this is copied as-is from the original Composer source code and is
+ * released under MIT license as well. Copyright goes to:
+ *
+ * - Fabien Potencier <fabien@symfony.com>
+ * - Jordi Boggiano <j.boggiano@seld.be>
+ */
+
+class xrstf_Composer52_ClassLoader {
+       private $prefixes              = array();
+       private $fallbackDirs          = array();
+       private $useIncludePath        = false;
+       private $classMap              = array();
+       private $classMapAuthoratative = false;
+       private $allowUnderscore       = false;
+
+       /**
+        * @param boolean $flag  true to allow class names with a leading underscore, false to disable
+        */
+       public function setAllowUnderscore($flag) {
+               $this->allowUnderscore = (boolean) $flag;
+       }
+
+       /**
+        * @return array
+        */
+       public function getPrefixes() {
+               return $this->prefixes;
+       }
+
+       /**
+        * Turns off searching the prefix and fallback directories for classes
+        * that have not been registered with the class map.
+        *
+        * @param bool $classMapAuthoratative
+        */
+       public function setClassMapAuthoritative($classMapAuthoratative) {
+               $this->classMapAuthoratative = $classMapAuthoratative;
+       }
+
+       /**
+        * Should class lookup fail if not found in the current class map?
+        *
+        * @return bool
+        */
+       public function getClassMapAuthoratative() {
+               return $this->classMapAuthoratative;
+       }
+
+       /**
+        * @return array
+        */
+       public function getFallbackDirs() {
+               return $this->fallbackDirs;
+       }
+
+       /**
+        * @return array
+        */
+       public function getClassMap() {
+               return $this->classMap;
+       }
+
+       /**
+        * @param array $classMap  class to filename map
+        */
+       public function addClassMap(array $classMap) {
+               if ($this->classMap) {
+                       $this->classMap = array_merge($this->classMap, $classMap);
+               }
+               else {
+                       $this->classMap = $classMap;
+               }
+       }
+
+       /**
+        * Registers a set of classes, merging with any others previously set.
+        *
+        * @param string       $prefix   the classes prefix
+        * @param array|string $paths    the location(s) of the classes
+        * @param bool         $prepend  prepend the location(s)
+        */
+       public function add($prefix, $paths, $prepend = false) {
+               if (!$prefix) {
+                       if ($prepend) {
+                               $this->fallbackDirs = array_merge(
+                                       (array) $paths,
+                                       $this->fallbackDirs
+                               );
+                       }
+                       else {
+                               $this->fallbackDirs = array_merge(
+                                       $this->fallbackDirs,
+                                       (array) $paths
+                               );
+                       }
+
+                       return;
+               }
+
+               if (!isset($this->prefixes[$prefix])) {
+                       $this->prefixes[$prefix] = (array) $paths;
+                       return;
+               }
+
+               if ($prepend) {
+                       $this->prefixes[$prefix] = array_merge(
+                               (array) $paths,
+                               $this->prefixes[$prefix]
+                       );
+               }
+               else {
+                       $this->prefixes[$prefix] = array_merge(
+                               $this->prefixes[$prefix],
+                               (array) $paths
+                       );
+               }
+       }
+
+       /**
+        * Registers a set of classes, replacing any others previously set.
+        *
+        * @param string       $prefix  the classes prefix
+        * @param array|string $paths   the location(s) of the classes
+        */
+       public function set($prefix, $paths) {
+               if (!$prefix) {
+                       $this->fallbackDirs = (array) $paths;
+                       return;
+               }
+
+               $this->prefixes[$prefix] = (array) $paths;
+       }
+
+       /**
+        * Turns on searching the include path for class files.
+        *
+        * @param bool $useIncludePath
+        */
+       public function setUseIncludePath($useIncludePath) {
+               $this->useIncludePath = $useIncludePath;
+       }
+
+       /**
+        * Can be used to check if the autoloader uses the include path to check
+        * for classes.
+        *
+        * @return bool
+        */
+       public function getUseIncludePath() {
+               return $this->useIncludePath;
+       }
+
+       /**
+        * Registers this instance as an autoloader.
+        */
+       public function register() {
+               spl_autoload_register(array($this, 'loadClass'), true);
+       }
+
+       /**
+        * Unregisters this instance as an autoloader.
+        */
+       public function unregister() {
+               spl_autoload_unregister(array($this, 'loadClass'));
+       }
+
+       /**
+        * Loads the given class or interface.
+        *
+        * @param  string $class  the name of the class
+        * @return bool|null      true, if loaded
+        */
+       public function loadClass($class) {
+               if ($file = $this->findFile($class)) {
+                       include $file;
+                       return true;
+               }
+       }
+
+       /**
+        * Finds the path to the file where the class is defined.
+        *
+        * @param  string $class  the name of the class
+        * @return string|null    the path, if found
+        */
+       public function findFile($class) {
+               if ('\\' === $class[0]) {
+                       $class = substr($class, 1);
+               }
+
+               if (isset($this->classMap[$class])) {
+                       return $this->classMap[$class];
+               }
+               elseif ($this->classMapAuthoratative) {
+                       return false;
+               }
+
+               $classPath = $this->getClassPath($class);
+
+               foreach ($this->prefixes as $prefix => $dirs) {
+                       if (0 === strpos($class, $prefix)) {
+                               foreach ($dirs as $dir) {
+                                       if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+                                               return $dir.DIRECTORY_SEPARATOR.$classPath;
+                                       }
+                               }
+                       }
+               }
+
+               foreach ($this->fallbackDirs as $dir) {
+                       if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+                               return $dir.DIRECTORY_SEPARATOR.$classPath;
+                       }
+               }
+
+               if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
+                       return $file;
+               }
+
+               return $this->classMap[$class] = false;
+       }
+
+       private function getClassPath($class) {
+               if (false !== $pos = strrpos($class, '\\')) {
+                       // namespaced class name
+                       $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
+                       $className = substr($class, $pos + 1);
+               }
+               else {
+                       // PEAR-like class name
+                       $classPath = null;
+                       $className = $class;
+               }
+
+               $className = str_replace('_', DIRECTORY_SEPARATOR, $className);
+
+               // restore the prefix
+               if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
+                       $className[0] = '_';
+               }
+
+               $classPath .= $className.'.php';
+
+               return $classPath;
+       }
+
+       public static function resolveIncludePath($classPath) {
+               $paths = explode(PATH_SEPARATOR, get_include_path());
+
+               foreach ($paths as $path) {
+                       $path = rtrim($path, '/\\');
+
+                       if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
+                               return $file;
+                       }
+               }
+
+               return false;
+       }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52Generatorphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php                               (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,39 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+namespace xrstf\Composer52;
+
+use Composer\Repository\CompositeRepository;
+use Composer\Script\Event;
+
+class Generator {
+       public static function onPostInstallCmd(Event $event) {
+               $composer            = $event->getComposer();
+               $installationManager = $composer->getInstallationManager();
+               $repoManager         = $composer->getRepositoryManager();
+               $localRepo           = $repoManager->getLocalRepository();
+               $package             = $composer->getPackage();
+               $config              = $composer->getConfig();
+
+               // We can't gain access to the Command's input object, so we have to look
+               // for -o / --optimize-autoloader ourselves. Sadly, neither getopt() works
+               // (always returns an empty array), nor does Symfony's Console Input, as
+               // it expects a full definition of the current command line and we can't
+               // provide that.
+
+               $args     = $_SERVER['argv'];
+               $optimize = in_array('-o', $args) || in_array('--optimize-autoloader', $args) || in_array('--optimize', $args);
+
+               $suffix   = $config->get('autoloader-suffix');
+
+               $generator = new AutoloadGenerator();
+               $generator->dump($config, $localRepo, $package, $installationManager, 'composer', $optimize, $suffix);
+       }
+}
</ins></span></pre>
</div>
</div>

</body>
</html>